{"version":3,"mappings":"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jH,EAAM,CAC9B,OAAOsC,GAAsBtC,CAAI,EAAI,IAAIA,CAAI,IAAMA,CACrD,CC/+CO,SAASwH,GAAYlG,EAAK,CAC/B,MAAO,IAAIA,EAAI,QAAQmG,GAAeC,EAAe,CAAC,GACxD,CAEA,MAAMD,GAAgB,gCAEtB,SAASC,GAAgBpG,EAAK,CAC5B,OAAOqG,GAAgBrG,EAAI,WAAW,CAAC,CAAC,CAC1C,CAEA,MAAMqG,GAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,ECtKaC,GAAQ,OAAO,OAAO,EAAE,EAgF9B,SAASC,GAAMpwD,EAAMqwD,EAASC,EAAc9H,GAAmB,CACpE,MAAM+H,EAAgB,IAAI,IAE1B,UAAWhI,KAAQ,OAAO,OAAOQ,EAAI,EACnCwH,EAAc,IAAIhI,EAAMiI,GAAqBH,EAAS9H,CAAI,CAAC,EAI7D,IAAIjQ,EACAmY,EAAU,MAAM,QAAQzwD,CAAI,EAC5BviB,EAAO,CAACuiB,CAAI,EACZ1gC,EAAQ,GACRoxF,EAAQ,GACRptE,EAAO0c,EACPjmC,EACA6M,EACJ,MAAM2O,EAAO,GACPo7E,EAAY,GAGlB,EAAG,CACDrxF,IACA,MAAMsxF,EAAYtxF,IAAUme,EAAK,OAC3BozE,EAAWD,GAAaF,EAAM,SAAW,EAE/C,GAAIE,EAAW,CAKb,GAJA72F,EAAM42F,EAAU,SAAW,EAAI,OAAYp7E,EAAKA,EAAK,OAAS,CAAC,EAC/D+N,EAAO1c,EACPA,EAAS+pF,EAAU,MAEfE,EACF,GAAIJ,EAAS,CACXntE,EAAOA,EAAK,QACZ,IAAIwtE,EAAa,EAEjB,SAAW,CAACC,EAASC,CAAS,IAAKN,EAAO,CACxC,MAAMO,EAAWF,EAAUD,EAEvBE,IAAc,MAChB1tE,EAAK,OAAO2tE,EAAU,CAAC,EACvBH,KAEAxtE,EAAK2tE,CAAQ,EAAID,CAEpB,CACX,KAAe,CACL1tE,EAAO,OAAO,iBACZ,CAAE,EACF,OAAO,0BAA0BA,CAAI,CACjD,EAEU,SAAW,CAACytE,EAASC,CAAS,IAAKN,EACjCptE,EAAKytE,CAAO,EAAIC,CAEnB,CAGH1xF,EAAQg5E,EAAM,MACd76D,EAAO66D,EAAM,KACboY,EAAQpY,EAAM,MACdmY,EAAUnY,EAAM,QAChBA,EAAQA,EAAM,IACf,SAAU1xE,EAAQ,CAIjB,GAHA7M,EAAM02F,EAAUnxF,EAAQme,EAAKne,CAAK,EAClCgkB,EAAO1c,EAAO7M,CAAG,EAEbupB,GAAS,KACX,SAGF/N,EAAK,KAAKxb,CAAG,CACd,CAED,IAAIa,EAEJ,GAAI,CAAC,MAAM,QAAQ0oB,CAAI,EAAG,CACxB,IAAI4tE,EAAoBC,EAExBzI,GAAOplE,CAAI,GAAKwiE,GAAU,GAAO,qBAAqB6G,GAAQrpE,CAAI,CAAC,GAAG,EACtE,MAAM8tE,EAAUR,GACXM,EAAqBX,EAAc,IAAIjtE,EAAK,IAAI,KAAO,MACxD4tE,IAAuB,OACrB,OACAA,EAAmB,OACpBC,EAAsBZ,EAAc,IAAIjtE,EAAK,IAAI,KAAO,MACzD6tE,IAAwB,OACxB,OACAA,EAAoB,MAMxB,GALAv2F,EACEw2F,GAAY,KACR,OACAA,EAAQ,KAAKf,EAAS/sE,EAAMvpB,EAAK6M,EAAQ2O,EAAMo7E,CAAS,EAE1D/1F,IAAWu1F,GACb,MAGF,GAAIv1F,IAAW,IACb,GAAI,CAACg2F,EAAW,CACdr7E,EAAK,IAAG,EACR,QACD,UACQ3a,IAAW,SACpB81F,EAAM,KAAK,CAAC32F,EAAKa,CAAM,CAAC,EAEpB,CAACg2F,GACH,GAAIlI,GAAO9tF,CAAM,EACf0oB,EAAO1oB,MACF,CACL2a,EAAK,IAAG,EACR,QACD,CAGN,CAMD,GAJI3a,IAAW,QAAai2F,GAC1BH,EAAM,KAAK,CAAC32F,EAAKupB,CAAI,CAAC,EAGpBstE,EACFr7E,EAAK,IAAG,MACH,CACL,IAAI87E,EAEJ/Y,EAAQ,CACN,QAAAmY,EACA,MAAAnxF,EACA,KAAAme,EACA,MAAAizE,EACA,KAAMpY,CACd,EACMmY,EAAU,MAAM,QAAQntE,CAAI,EAC5B7F,EAAOgzE,EACHntE,GACC+tE,EAAaf,EAAYhtE,EAAK,IAAI,KAAO,MAC1C+tE,IAAe,OACfA,EACA,GACJ/xF,EAAQ,GACRoxF,EAAQ,GAEJ9pF,GACF+pF,EAAU,KAAK/pF,CAAM,EAGvBA,EAAS0c,CACV,CACL,OAAWg1D,IAAU,QAEnB,OAAIoY,EAAM,SAAW,EAEZA,EAAMA,EAAM,OAAS,CAAC,EAAE,CAAC,EAG3B1wD,CACT,CAQO,SAASsxD,IAAgBC,EAAU,CACxC,MAAMC,EAAW,IAAI,MAAMD,EAAS,MAAM,EAAE,KAAK,IAAI,EAC/CE,EAAgB,OAAO,OAAO,IAAI,EAExC,UAAWlJ,KAAQ,OAAO,OAAOQ,EAAI,EAAG,CACtC,IAAI2I,EAAa,GACjB,MAAMC,EAAY,IAAI,MAAMJ,EAAS,MAAM,EAAE,KAAK,MAAS,EACrDK,EAAY,IAAI,MAAML,EAAS,MAAM,EAAE,KAAK,MAAS,EAE3D,QAAS73F,EAAI,EAAGA,EAAI63F,EAAS,OAAQ,EAAE73F,EAAG,CACxC,KAAM,CAAE,MAAAm4F,EAAO,MAAAC,GAAUtB,GAAqBe,EAAS73F,CAAC,EAAG6uF,CAAI,EAC/DmJ,IAAeA,EAAaG,GAAS,MAAQC,GAAS,MACtDH,EAAUj4F,CAAC,EAAIm4F,EACfD,EAAUl4F,CAAC,EAAIo4F,CAChB,CAED,GAAI,CAACJ,EACH,SAGF,MAAMK,EAAmB,CACvB,SAASv0F,EAAM,CACb,MAAM8lB,EAAO9lB,EAAK,CAAC,EAEnB,QAAS9D,EAAI,EAAGA,EAAI63F,EAAS,OAAQ73F,IACnC,GAAI83F,EAAS93F,CAAC,IAAM,KAAM,CACxB,IAAIs4F,EAEJ,MAAMp3F,GACHo3F,EAAeL,EAAUj4F,CAAC,KAAO,MAAQs4F,IAAiB,OACvD,OACAA,EAAa,MAAMT,EAAS73F,CAAC,EAAG8D,CAAI,EAE1C,GAAI5C,IAAW,GACb42F,EAAS93F,CAAC,EAAI4pB,UACL1oB,IAAWu1F,GACpBqB,EAAS93F,CAAC,EAAIy2F,WACLv1F,IAAW,OACpB,OAAOA,CAEV,CAEJ,EAED,SAAS4C,EAAM,CACb,MAAM8lB,EAAO9lB,EAAK,CAAC,EAEnB,QAAS9D,EAAI,EAAGA,EAAI63F,EAAS,OAAQ73F,IACnC,GAAI83F,EAAS93F,CAAC,IAAM,KAAM,CACxB,IAAIu4F,EAEJ,MAAMr3F,GACHq3F,EAAeL,EAAUl4F,CAAC,KAAO,MAAQu4F,IAAiB,OACvD,OACAA,EAAa,MAAMV,EAAS73F,CAAC,EAAG8D,CAAI,EAE1C,GAAI5C,IAAWu1F,GACbqB,EAAS93F,CAAC,EAAIy2F,WACLv1F,IAAW,QAAaA,IAAW,GAC5C,OAAOA,CAEV,MAAU42F,EAAS93F,CAAC,IAAM4pB,IACzBkuE,EAAS93F,CAAC,EAAI,KAGnB,CACP,EACI+3F,EAAclJ,CAAI,EAAIwJ,CACvB,CAED,OAAON,CACT,CAKO,SAASjB,GAAqBH,EAAS9H,EAAM,CAClD,MAAM2J,EAAc7B,EAAQ9H,CAAI,EAEhC,OAAI,OAAO2J,GAAgB,SAElBA,EACE,OAAOA,GAAgB,WAEzB,CACL,MAAOA,EACP,MAAO,MACb,EAGS,CACL,MAAO7B,EAAQ,MACf,MAAOA,EAAQ,KACnB,CACA,CCnVO,SAAS8B,GAAMC,EAAK,CACzB,OAAOhC,GAAMgC,EAAKC,EAAkB,CACtC,CACA,MAAMC,GAAkB,GAClBD,GAAqB,CACzB,KAAM,CACJ,MAAQ/uE,GAASA,EAAK,KACvB,EACD,SAAU,CACR,MAAQA,GAAS,IAAMA,EAAK,IAC7B,EAED,SAAU,CACR,MAAQA,GAASivE,GAAKjvE,EAAK,YAAa;AAAA;AAAA,CAAM,CAC/C,EACD,oBAAqB,CACnB,MAAMA,EAAM,CACV,MAAMkvE,EAAUC,GAAK,IAAKF,GAAKjvE,EAAK,oBAAqB,IAAI,EAAG,GAAG,EAC7DhmB,EAASi1F,GACb,CACEjvE,EAAK,UACLivE,GAAK,CAACjvE,EAAK,KAAMkvE,CAAO,CAAC,EACzBD,GAAKjvE,EAAK,WAAY,GAAG,CAC1B,EACD,GACR,EAGM,OAAQhmB,IAAW,QAAU,GAAKA,EAAS,KAAOgmB,EAAK,YACxD,CACF,EACD,mBAAoB,CAClB,MAAO,CAAC,CAAE,SAAAm/D,EAAU,KAAA7kB,EAAM,aAAAhvD,EAAc,WAAAkgF,CAAY,IAClDrM,EACA,KACA7kB,EACA60B,GAAK,MAAO7jF,CAAY,EACxB6jF,GAAK,IAAKF,GAAKzD,EAAY,GAAG,CAAC,CAClC,EACD,aAAc,CACZ,MAAO,CAAC,CAAE,WAAA4D,KAAiBC,GAAMD,CAAU,CAC5C,EACD,MAAO,CACL,MAAM,CAAE,MAAAhE,EAAO,KAAA3uF,EAAM,UAAWvC,EAAM,WAAAsxF,EAAY,aAAA8D,GAAgB,CAChE,MAAMt1F,EAASm1F,GAAK,GAAI/D,EAAO,IAAI,EAAI3uF,EACvC,IAAI8yF,EAAWv1F,EAASm1F,GAAK,IAAKF,GAAK/0F,EAAM,IAAI,EAAG,GAAG,EAEvD,OAAIq1F,EAAS,OAASP,KACpBO,EAAWv1F,EAASm1F,GAAK;AAAA,EAAO9I,GAAO4I,GAAK/0F,EAAM;AAAA,CAAI,CAAC,EAAG;AAAA,EAAK,GAG1D+0F,GAAK,CAACM,EAAUN,GAAKzD,EAAY,GAAG,EAAG8D,CAAY,EAAG,GAAG,CACjE,CACF,EACD,SAAU,CACR,MAAO,CAAC,CAAE,KAAA7yF,EAAM,MAAAzF,CAAK,IAAOyF,EAAO,KAAOzF,CAC3C,EAED,eAAgB,CACd,MAAO,CAAC,CAAE,KAAAyF,EAAM,WAAA+uF,CAAY,IAC1B,MAAQ/uF,EAAO0yF,GAAK,IAAKF,GAAKzD,EAAY,GAAG,CAAC,CACjD,EACD,eAAgB,CACd,MAAO,CAAC,CAAE,cAAAgE,EAAe,WAAAhE,EAAY,aAAA8D,CAAc,IACjDL,GACE,CACE,MACAE,GAAK,MAAOK,CAAa,EACzBP,GAAKzD,EAAY,GAAG,EACpB8D,CACD,EACD,GACD,CACJ,EACD,mBAAoB,CAClB,MAAO,CACL,CAAE,KAAA7yF,EAAM,cAAA+yF,EAAe,oBAAAC,EAAqB,WAAAjE,EAAY,aAAA8D,CAAc,IAGtE,YAAY7yF,CAAI,GAAG0yF,GAAK,IAAKF,GAAKQ,EAAqB,IAAI,EAAG,GAAG,CAAC,OAC5DD,CAAa,IAAIL,GAAK,GAAIF,GAAKzD,EAAY,GAAG,EAAG,GAAG,CAAC,GAC3D8D,CACH,EAED,SAAU,CACR,MAAO,CAAC,CAAE,MAAAt4F,CAAK,IAAOA,CACvB,EACD,WAAY,CACV,MAAO,CAAC,CAAE,MAAAA,CAAK,IAAOA,CACvB,EACD,YAAa,CACX,MAAO,CAAC,CAAE,MAAAA,EAAO,MAAO04F,CAAe,IACrCA,EAAgBlJ,GAAiBxvF,CAAK,EAAIy1F,GAAYz1F,CAAK,CAC9D,EACD,aAAc,CACZ,MAAO,CAAC,CAAE,MAAAA,CAAK,IAAQA,EAAQ,OAAS,OACzC,EACD,UAAW,CACT,MAAO,IAAM,MACd,EACD,UAAW,CACT,MAAO,CAAC,CAAE,MAAAA,CAAK,IAAOA,CACvB,EACD,UAAW,CACT,MAAO,CAAC,CAAE,OAAA60F,KAAa,IAAMoD,GAAKpD,EAAQ,IAAI,EAAI,GACnD,EACD,YAAa,CACX,MAAO,CAAC,CAAE,OAAArzE,KAAa,IAAMy2E,GAAKz2E,EAAQ,IAAI,EAAI,GACnD,EACD,YAAa,CACX,MAAO,CAAC,CAAE,KAAA/b,EAAM,MAAAzF,CAAK,IAAOyF,EAAO,KAAOzF,CAC3C,EAED,UAAW,CACT,MAAO,CAAC,CAAE,KAAAyF,EAAM,UAAWvC,CAAM,IAC/B,IAAMuC,EAAO0yF,GAAK,IAAKF,GAAK/0F,EAAM,IAAI,EAAG,GAAG,CAC/C,EAED,UAAW,CACT,MAAO,CAAC,CAAE,KAAAuC,CAAI,IAAOA,CACtB,EACD,SAAU,CACR,MAAO,CAAC,CAAE,KAAA69D,CAAM,IAAK,IAAMA,EAAO,GACnC,EACD,YAAa,CACX,MAAO,CAAC,CAAE,KAAAA,CAAM,IAAKA,EAAO,GAC7B,EAED,iBAAkB,CAChB,MAAO,CAAC,CAAE,YAAAgN,EAAa,WAAAkkB,EAAY,eAAAE,CAAgB,IACjDyD,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GAAK,CAAC,SAAUA,GAAKzD,EAAY,GAAG,EAAG6D,GAAM3D,CAAc,CAAC,EAAG,GAAG,CACrE,EACD,wBAAyB,CACvB,MAAO,CAAC,CAAE,UAAAT,EAAW,KAAA3wB,CAAI,IAAO2wB,EAAY,KAAO3wB,CACpD,EACD,qBAAsB,CACpB,MAAO,CAAC,CAAE,YAAAgN,EAAa,KAAA7qE,EAAM,WAAA+uF,CAAY,IACvC2D,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GAAK,CAAC,SAAUxyF,EAAMwyF,GAAKzD,EAAY,GAAG,CAAC,EAAG,GAAG,CACpD,EACD,qBAAsB,CACpB,MAAO,CAAC,CAAE,YAAAlkB,EAAa,KAAA7qE,EAAM,WAAAkvF,EAAY,WAAAH,EAAY,OAAAhzE,CAAQ,IAC3D22E,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GACE,CACE,OACAxyF,EACA0yF,GAAK,cAAeF,GAAKtD,EAAY,KAAK,CAAC,EAC3CsD,GAAKzD,EAAY,GAAG,EACpB6D,GAAM72E,CAAM,CACb,EACD,GACD,CACJ,EACD,gBAAiB,CACf,MAAO,CAAC,CAAE,YAAA8uD,EAAa,KAAA7qE,EAAM,UAAWvC,EAAM,KAAAogE,EAAM,WAAAkxB,CAAY,IAC9D2D,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B7qE,GACCkzF,GAAkBz1F,CAAI,EACnBi1F,GAAK;AAAA,EAAO9I,GAAO4I,GAAK/0F,EAAM;AAAA,CAAI,CAAC,EAAG;AAAA,EAAK,EAC3Ci1F,GAAK,IAAKF,GAAK/0F,EAAM,IAAI,EAAG,GAAG,GACnC,KACAogE,EACA60B,GAAK,IAAKF,GAAKzD,EAAY,GAAG,CAAC,CAClC,EACD,qBAAsB,CACpB,MAAO,CAAC,CAAE,YAAAlkB,EAAa,KAAA7qE,EAAM,KAAA69D,EAAM,aAAAhvD,EAAc,WAAAkgF,CAAY,IAC3D2D,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GACE,CAACxyF,EAAO,KAAO69D,EAAM60B,GAAK,KAAM7jF,CAAY,EAAG2jF,GAAKzD,EAAY,GAAG,CAAC,EACpE,GACD,CACJ,EACD,wBAAyB,CACvB,MAAO,CAAC,CAAE,YAAAlkB,EAAa,KAAA7qE,EAAM,WAAAkvF,EAAY,WAAAH,EAAY,OAAAhzE,CAAQ,IAC3D22E,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GACE,CACE,YACAxyF,EACA0yF,GAAK,cAAeF,GAAKtD,EAAY,KAAK,CAAC,EAC3CsD,GAAKzD,EAAY,GAAG,EACpB6D,GAAM72E,CAAM,CACb,EACD,GACD,CACJ,EACD,oBAAqB,CACnB,MAAO,CAAC,CAAE,YAAA8uD,EAAa,KAAA7qE,EAAM,WAAA+uF,EAAY,MAAAI,CAAO,IAC9CuD,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GACE,CAAC,QAASxyF,EAAMwyF,GAAKzD,EAAY,GAAG,EAAG2D,GAAK,KAAMF,GAAKrD,EAAO,KAAK,CAAC,CAAC,EACrE,GACD,CACJ,EACD,mBAAoB,CAClB,MAAO,CAAC,CAAE,YAAAtkB,EAAa,KAAA7qE,EAAM,WAAA+uF,EAAY,OAAAK,CAAQ,IAC/CsD,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GAAK,CAAC,OAAQxyF,EAAMwyF,GAAKzD,EAAY,GAAG,EAAG6D,GAAMxD,CAAM,CAAC,EAAG,GAAG,CACjE,EACD,oBAAqB,CACnB,MAAO,CAAC,CAAE,YAAAvkB,EAAa,KAAA7qE,EAAM,WAAA+uF,CAAY,IACvC2D,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAAI2nB,GAAK,CAACxyF,EAAMwyF,GAAKzD,EAAY,GAAG,CAAC,EAAG,GAAG,CACxE,EACD,0BAA2B,CACzB,MAAO,CAAC,CAAE,YAAAlkB,EAAa,KAAA7qE,EAAM,WAAA+uF,EAAY,OAAAhzE,CAAQ,IAC/C22E,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B2nB,GAAK,CAAC,QAASxyF,EAAMwyF,GAAKzD,EAAY,GAAG,EAAG6D,GAAM72E,CAAM,CAAC,EAAG,GAAG,CAClE,EACD,oBAAqB,CACnB,MAAO,CAAC,CAAE,YAAA8uD,EAAa,KAAA7qE,EAAM,UAAWvC,EAAM,WAAA6xF,EAAY,UAAAC,CAAW,IACnEmD,GAAK,GAAI7nB,EAAa;AAAA,CAAI,EAC1B,cACA7qE,GACCkzF,GAAkBz1F,CAAI,EACnBi1F,GAAK;AAAA,EAAO9I,GAAO4I,GAAK/0F,EAAM;AAAA,CAAI,CAAC,EAAG;AAAA,EAAK,EAC3Ci1F,GAAK,IAAKF,GAAK/0F,EAAM,IAAI,EAAG,GAAG,IAClC6xF,EAAa,cAAgB,IAC9B,OACAkD,GAAKjD,EAAW,KAAK,CACxB,EACD,gBAAiB,CACf,MAAO,CAAC,CAAE,WAAAR,EAAY,eAAAE,CAAgB,IACpCuD,GACE,CAAC,gBAAiBA,GAAKzD,EAAY,GAAG,EAAG6D,GAAM3D,CAAc,CAAC,EAC9D,GACD,CACJ,EACD,oBAAqB,CACnB,MAAO,CAAC,CAAE,KAAAjvF,EAAM,WAAA+uF,CAAY,IAC1ByD,GAAK,CAAC,gBAAiBxyF,EAAMwyF,GAAKzD,EAAY,GAAG,CAAC,EAAG,GAAG,CAC3D,EACD,oBAAqB,CACnB,MAAO,CAAC,CAAE,KAAA/uF,EAAM,WAAAkvF,EAAY,WAAAH,EAAY,OAAAhzE,CAAQ,IAC9Cy2E,GACE,CACE,cACAxyF,EACA0yF,GAAK,cAAeF,GAAKtD,EAAY,KAAK,CAAC,EAC3CsD,GAAKzD,EAAY,GAAG,EACpB6D,GAAM72E,CAAM,CACb,EACD,GACD,CACJ,EACD,uBAAwB,CACtB,MAAO,CAAC,CAAE,KAAA/b,EAAM,WAAAkvF,EAAY,WAAAH,EAAY,OAAAhzE,CAAQ,IAC9Cy2E,GACE,CACE,mBACAxyF,EACA0yF,GAAK,cAAeF,GAAKtD,EAAY,KAAK,CAAC,EAC3CsD,GAAKzD,EAAY,GAAG,EACpB6D,GAAM72E,CAAM,CACb,EACD,GACD,CACJ,EACD,mBAAoB,CAClB,MAAO,CAAC,CAAE,KAAA/b,EAAM,WAAA+uF,EAAY,MAAAI,CAAO,IACjCqD,GACE,CACE,eACAxyF,EACAwyF,GAAKzD,EAAY,GAAG,EACpB2D,GAAK,KAAMF,GAAKrD,EAAO,KAAK,CAAC,CAC9B,EACD,GACD,CACJ,EACD,kBAAmB,CACjB,MAAO,CAAC,CAAE,KAAAnvF,EAAM,WAAA+uF,EAAY,OAAAK,CAAQ,IAClCoD,GAAK,CAAC,cAAexyF,EAAMwyF,GAAKzD,EAAY,GAAG,EAAG6D,GAAMxD,CAAM,CAAC,EAAG,GAAG,CACxE,EACD,yBAA0B,CACxB,MAAO,CAAC,CAAE,KAAApvF,EAAM,WAAA+uF,EAAY,OAAAhzE,CAAQ,IAClCy2E,GAAK,CAAC,eAAgBxyF,EAAMwyF,GAAKzD,EAAY,GAAG,EAAG6D,GAAM72E,CAAM,CAAC,EAAG,GAAG,CACzE,CACH,EAMA,SAASy2E,GAAKW,EAAYC,EAAY,GAAI,CACxC,IAAIC,EAEJ,OAAQA,EACNF,GAAe,KACX,OACAA,EAAW,OAAQljH,GAAMA,CAAC,EAAE,KAAKmjH,CAAS,KAAO,MACrDC,IAA0B,OACxBA,EACA,EACN,CAKA,SAAST,GAAM1iF,EAAO,CACpB,OAAOwiF,GAAK;AAAA,EAAO9I,GAAO4I,GAAKtiF,EAAO;AAAA,CAAI,CAAC,EAAG;AAAA,EAAK,CACrD,CAKA,SAASwiF,GAAK5gE,EAAOwhE,EAAavhE,EAAM,GAAI,CAC1C,OAAOuhE,GAAe,MAAQA,IAAgB,GAC1CxhE,EAAQwhE,EAAcvhE,EACtB,EACN,CAEA,SAAS63D,GAAOE,EAAK,CACnB,OAAO4I,GAAK,KAAM5I,EAAI,QAAQ,MAAO;AAAA,GAAM,CAAC,CAC9C,CAEA,SAASoJ,GAAkBC,EAAY,CACrC,IAAII,EAKJ,OAAQA,EACNJ,GAAe,KACX,OACAA,EAAW,KAAMrJ,GAAQA,EAAI,SAAS;AAAA,CAAI,CAAC,KAAO,MACtDyJ,IAAqB,OACnBA,EACA,EACN,CC1UO,SAASC,IAA2BjwE,EAAM,CAC/C,OACEA,EAAK,OAASylE,GAAK,sBACnBzlE,EAAK,OAASylE,GAAK,mBAEvB,CACO,SAASyK,GAAgBlwE,EAAM,CACpC,OACEA,EAAK,OAASylE,GAAK,OACnBzlE,EAAK,OAASylE,GAAK,iBACnBzlE,EAAK,OAASylE,GAAK,eAEvB,CA+BO,SAAS0K,IAA2BnwE,EAAM,CAC/C,OACEA,EAAK,OAASylE,GAAK,mBACnB2K,GAAqBpwE,CAAI,GACzBA,EAAK,OAASylE,GAAK,oBAEvB,CACO,SAAS2K,GAAqBpwE,EAAM,CACzC,OACEA,EAAK,OAASylE,GAAK,wBACnBzlE,EAAK,OAASylE,GAAK,wBACnBzlE,EAAK,OAASylE,GAAK,2BACnBzlE,EAAK,OAASylE,GAAK,uBACnBzlE,EAAK,OAASylE,GAAK,sBACnBzlE,EAAK,OAASylE,GAAK,4BAEvB,CACO,SAAS4K,IAA0BrwE,EAAM,CAC9C,OAAOA,EAAK,OAASylE,GAAK,kBAAoB6K,GAAoBtwE,CAAI,CACxE,CACO,SAASswE,GAAoBtwE,EAAM,CACxC,OACEA,EAAK,OAASylE,GAAK,uBACnBzlE,EAAK,OAASylE,GAAK,uBACnBzlE,EAAK,OAASylE,GAAK,0BACnBzlE,EAAK,OAASylE,GAAK,sBACnBzlE,EAAK,OAASylE,GAAK,qBACnBzlE,EAAK,OAASylE,GAAK,2BAEvB,CC9EO,SAAS8K,IAAyB,CACrC,OAAsChO,GAAQ,CAClD,CCDO,SAASiO,IAAW,CACvB,QAAU5kB,GAAwB,OAAOuW,IAArB,UAA0BA,EAAG,EAAIvW,GAAwB,OAAOuW,IAArB,UAA0B,EAAE,CAC/F,CAEAoO,KAIAC,GAAU,ECTH,SAASC,GAAcr3F,EAAIs3F,EAAW,CACzC,IAAIlF,EAAapyF,EAAG,WACpB,MAAI,CAACoyF,GAAc,CAACA,EAAW,OACpB,GAEJmF,GAAuBnF,CAAU,EAAE,MAAM,SAAUpyF,EAAI,CAC1D,IAAIw3F,EAAYx3F,EAAG,UAAWy3F,EAAaz3F,EAAG,WAC1C03F,EAAc,GAClB,OAAID,EAAW,MAAM,OAAS,YAC1BC,EAAcJ,GAAaA,EAAUG,EAAW,MAAM,KAAK,KAAK,EAChE,QAAUjlB,GAAUklB,IAAgB,OAAQ,mCAAmC,OAAOF,EAAU,KAAK,MAAO,aAAa,CAAC,EAAIhlB,GAAUklB,IAAgB,OAAQ,EAAE,GAGlKA,EAAcD,EAAW,MAAM,MAE5BD,EAAU,KAAK,QAAU,OAAS,CAACE,EAAcA,CAChE,CAAK,CACL,CAYO,SAASC,GAAc5sC,EAAOznB,EAAMs0D,EAAK,CAC5C,IAAIC,EAAU,IAAI,IAAI9sC,CAAK,EACvB+sC,EAAcD,EAAQ,KAC1B,OAAAnE,GAAMpwD,EAAM,CACR,UAAW,SAAU1c,EAAM,CACvB,GAAIixE,EAAQ,OAAOjxE,EAAK,KAAK,KAAK,IAC7B,CAACgxE,GAAO,CAACC,EAAQ,MAClB,OAAOpE,EAEd,CACT,CAAK,EACMmE,EAAM,CAACC,EAAQ,KAAOA,EAAQ,KAAOC,CAChD,CACO,SAASC,GAAiBx/E,EAAU,CACvC,OAAOA,GAAYo/E,GAAc,CAAC,SAAU,QAAQ,EAAGp/E,EAAU,EAAI,CACzE,CACA,SAASy/E,GAAqBh4F,EAAI,CAC9B,IAAIpC,EAAQoC,EAAG,KAAK,MACpB,OAAOpC,IAAU,QAAUA,IAAU,SACzC,CACO,SAAS25F,GAAuBnF,EAAY,CAC/C,IAAIl0F,EAAS,GACb,OAAIk0F,GAAcA,EAAW,QACzBA,EAAW,QAAQ,SAAUoF,EAAW,CACpC,GAAKQ,GAAqBR,CAAS,EAEnC,KAAIS,EAAqBT,EAAU,UAC/BU,EAAgBV,EAAU,KAAK,MACnC,QAAUhlB,GAAUylB,GAAsBA,EAAmB,SAAW,EAAG,0CAA0C,OAAOC,EAAe,aAAa,CAAC,EAAI1lB,GAAUylB,GAAsBA,EAAmB,SAAW,EAAG,EAAE,EAChO,IAAIR,EAAaQ,EAAmB,CAAC,EACrC,QAAUzlB,GAAUilB,EAAW,MAAQA,EAAW,KAAK,QAAU,KAAM,6BAA6B,OAAOS,EAAe,aAAa,CAAC,EAAI1lB,GAAUilB,EAAW,MAAQA,EAAW,KAAK,QAAU,KAAM,EAAE,EAC3M,IAAIU,EAAUV,EAAW,MACzB,QAAUjlB,GAAU2lB,IACfA,EAAQ,OAAS,YAAcA,EAAQ,OAAS,gBAAiB,qBAAqB,OAAOD,EAAe,mDAAmD,CAAC,EAAI1lB,GAAU2lB,IAC9KA,EAAQ,OAAS,YAAcA,EAAQ,OAAS,gBAAiB,EAAE,EACxEj6F,EAAO,KAAK,CAAE,UAAWs5F,EAAW,WAAYC,CAAU,CAAE,EACxE,CAAS,EAEEv5F,CACX,CCpEO,SAASk6F,GAAyB7/E,EAAU8/E,EAAc,CAC7D,IAAIC,EAAqBD,EACrBE,EAAY,GAChBhgF,EAAS,YAAY,QAAQ,SAAUigF,EAAY,CAC/C,GAAIA,EAAW,OAAS,sBACpB,MAAM,QAAU,IAAIpQ,GAAe,WAAW,OAAOoQ,EAAW,UAAW,YAAY,EAAE,OAAOA,EAAW,KAAO,WAAW,OAAOA,EAAW,KAAK,MAAO,GAAG,EAAI,GAAI,IAAI,EACtK,yFAAyF,EAAI,IAAIpQ,GAAe,EAAE,EAEtHoQ,EAAW,OAAS,sBACpBD,EAAU,KAAKC,CAAU,CAErC,CAAK,EACG,OAAOF,EAAuB,MAC9B,QAAU9lB,GAAU+lB,EAAU,SAAW,EAAG,SAAS,OAAOA,EAAU,OAAQ,mFAAmF,CAAC,EAAI/lB,GAAU+lB,EAAU,SAAW,EAAG,EAAE,EAC1MD,EAAqBC,EAAU,CAAC,EAAE,KAAK,OAE3C,IAAIE,EAAQ37F,EAASA,EAAS,GAAIyb,CAAQ,EAAG,CAAE,YAAa1Z,GAAc,CAClE,CACI,KAAM,sBACN,UAAW,QACX,aAAc,CACV,KAAM,eACN,WAAY,CACR,CACI,KAAM,iBACN,KAAM,CACF,KAAM,OACN,MAAOy5F,CACV,CACJ,CACJ,CACJ,CACJ,CACJ,EAAE//E,EAAS,YAAa,EAAI,CAAG,GACpC,OAAOkgF,CACX,CACO,SAASC,GAAkBH,EAAW,CACrCA,IAAc,SAAUA,EAAY,CAAE,GAC1C,IAAII,EAAW,GACf,OAAAJ,EAAU,QAAQ,SAAUK,EAAU,CAClCD,EAASC,EAAS,KAAK,KAAK,EAAIA,CACxC,CAAK,EACMD,CACX,CACO,SAASE,GAAyBt4B,EAAWu4B,EAAa,CAC7D,OAAQv4B,EAAU,KAAI,CAClB,IAAK,iBACD,OAAOA,EACX,IAAK,iBAAkB,CACnB,IAAI83B,EAAe93B,EAAU,KAAK,MAClC,GAAI,OAAOu4B,GAAgB,WACvB,OAAOA,EAAYT,CAAY,EAEnC,IAAIO,EAAWE,GAAeA,EAAYT,CAAY,EACtD,eAAU7lB,GAAUomB,EAAU,qBAAqB,OAAOP,CAAY,CAAC,EAAI7lB,GAAUomB,EAAU,EAAE,EAC1FA,GAAY,IACtB,CACD,QACI,OAAO,IACd,CACL,CC9DO,SAASG,GAAgB5nF,EAAK,CACjC,OAAOA,IAAQ,MAAQ,OAAOA,GAAQ,QAC1C,CCCO,SAAS6nF,GAAc34G,EAAI,CAC9B,MAAO,CAAE,MAAO,OAAOA,CAAE,CAAC,CAC9B,CACO,SAAS44G,GAAY9nF,EAAK,CAC7B,MAAO,GAAQA,GAAO,OAAOA,GAAQ,UAAY,OAAOA,EAAI,OAAU,SAC1E,CACO,SAAS+nF,GAAet7F,EAAO,CAClC,OAAQm7F,GAAgBn7F,CAAK,GACzBA,EAAM,OAAS,YACf,MAAM,QAAQA,EAAM,WAAW,CACvC,CACA,SAASu7F,GAAcv7F,EAAO,CAC1B,OAAOA,EAAM,OAAS,aAC1B,CACA,SAASw7F,GAAex7F,EAAO,CAC3B,OAAOA,EAAM,OAAS,cAC1B,CACA,SAASy7F,GAAWz7F,EAAO,CACvB,OAAOA,EAAM,OAAS,UAC1B,CACA,SAAS07F,GAAa17F,EAAO,CACzB,OAAOA,EAAM,OAAS,YAC1B,CACA,SAAS27F,GAAW37F,EAAO,CACvB,OAAOA,EAAM,OAAS,UAC1B,CACA,SAAS47F,GAAc57F,EAAO,CAC1B,OAAOA,EAAM,OAAS,aAC1B,CACA,SAAS67F,GAAY77F,EAAO,CACxB,OAAOA,EAAM,OAAS,WAC1B,CACA,SAAS87F,GAAY97F,EAAO,CACxB,OAAOA,EAAM,OAAS,WAC1B,CACA,SAAS+7F,GAAY/7F,EAAO,CACxB,OAAOA,EAAM,OAAS,WAC1B,CACO,SAASg8F,GAA4BC,EAAQx2F,EAAMzF,EAAO05F,EAAW,CACxE,GAAI+B,GAAWz7F,CAAK,GAAK07F,GAAa17F,CAAK,EACvCi8F,EAAOx2F,EAAK,KAAK,EAAI,OAAOzF,EAAM,KAAK,UAElCw7F,GAAex7F,CAAK,GAAKu7F,GAAcv7F,CAAK,EACjDi8F,EAAOx2F,EAAK,KAAK,EAAIzF,EAAM,cAEtB47F,GAAc57F,CAAK,EAAG,CAC3B,IAAIk8F,EAAiB,GACrBl8F,EAAM,OAAO,IAAI,SAAUuT,EAAK,CAC5B,OAAOyoF,GAA4BE,EAAgB3oF,EAAI,KAAMA,EAAI,MAAOmmF,CAAS,CAC7F,CAAS,EACDuC,EAAOx2F,EAAK,KAAK,EAAIy2F,CACxB,SACQP,GAAW37F,CAAK,EAAG,CACxB,IAAIm8F,GAAiBzC,GAAa,IAAI15F,EAAM,KAAK,KAAK,EACtDi8F,EAAOx2F,EAAK,KAAK,EAAI02F,CACxB,SACQN,GAAY77F,CAAK,EACtBi8F,EAAOx2F,EAAK,KAAK,EAAIzF,EAAM,OAAO,IAAI,SAAUo8F,EAAW,CACvD,IAAIC,EAAoB,GACxB,OAAAL,GAA4BK,EAAmB52F,EAAM22F,EAAW1C,CAAS,EAClE2C,EAAkB52F,EAAK,KAAK,CAC/C,CAAS,UAEIq2F,GAAY97F,CAAK,EACtBi8F,EAAOx2F,EAAK,KAAK,EAAIzF,EAAM,cAEtB+7F,GAAY/7F,CAAK,EACtBi8F,EAAOx2F,EAAK,KAAK,EAAI,SAGrB,OAAM,QAAU,IAAI+kF,GAAe,wBAAyB,OAAO/kF,EAAK,MAAO,aAAe,EAAE,OAAOzF,EAAM,KAAM,GAAI,EACnH,0FAC2B,EAAI,IAAIwqF,GAAe,EAAE,CAEhE,CACO,SAAS8R,GAAsB9hB,EAAOkf,EAAW,CACpD,IAAI6C,EAAgB,KAChB/hB,EAAM,aACN+hB,EAAgB,GAChB/hB,EAAM,WAAW,QAAQ,SAAUof,EAAW,CAC1C2C,EAAc3C,EAAU,KAAK,KAAK,EAAI,GAClCA,EAAU,WACVA,EAAU,UAAU,QAAQ,SAAUx3F,EAAI,CACtC,IAAIqD,EAAOrD,EAAG,KAAMpC,EAAQoC,EAAG,MAC/B,OAAO45F,GAA4BO,EAAc3C,EAAU,KAAK,KAAK,EAAGn0F,EAAMzF,EAAO05F,CAAS,CAClH,CAAiB,CAEjB,CAAS,GAEL,IAAIuC,EAAS,KACb,OAAIzhB,EAAM,WAAaA,EAAM,UAAU,SACnCyhB,EAAS,GACTzhB,EAAM,UAAU,QAAQ,SAAUp4E,EAAI,CAClC,IAAIqD,EAAOrD,EAAG,KAAMpC,EAAQoC,EAAG,MAC/B,OAAO45F,GAA4BC,EAAQx2F,EAAMzF,EAAO05F,CAAS,CAC7E,CAAS,GAEE8C,GAAgBhiB,EAAM,KAAK,MAAOyhB,EAAQM,CAAa,CAClE,CACA,IAAIE,GAAmB,CACnB,aACA,UACA,OACA,SACA,OACA,QACJ,EACWD,GAAkB,OAAO,OAAO,SAAUE,EAAWx5F,EAAMsxF,EAAY,CAC9E,GAAItxF,GACAsxF,GACAA,EAAW,YACXA,EAAW,WAAc,IACzB,GAAIA,EAAW,WAAc,QACzBA,EAAW,WAAc,OAAU,OAAS,EAAG,CAC/C,IAAImI,EAAanI,EAAW,WAAc,OACpCA,EAAW,WAAc,OACzB,GACNmI,EAAW,KAAI,EACf,IAAIC,EAAiB,GACrB,OAAAD,EAAW,QAAQ,SAAUl9F,EAAK,CAC9Bm9F,EAAen9F,CAAG,EAAIyD,EAAKzD,CAAG,CAC9C,CAAa,EACM,GAAG,OAAO+0F,EAAW,WAAc,IAAQ,GAAG,EAAE,OAAO1L,GAAU8T,CAAc,EAAG,GAAG,CAC/F,KAEG,QAAOpI,EAAW,WAAc,IAGxC,IAAIqI,EAAoBH,EACxB,GAAIx5F,EAAM,CACN,IAAI45F,EAAkBhU,GAAU5lF,CAAI,EACpC25F,GAAqB,IAAI,OAAOC,EAAiB,GAAG,CACvD,CACD,OAAItI,GACA,OAAO,KAAKA,CAAU,EAAE,QAAQ,SAAU/0F,EAAK,CACvCg9F,GAAiB,QAAQh9F,CAAG,IAAM,KAElC+0F,EAAW/0F,CAAG,GAAK,OAAO,KAAK+0F,EAAW/0F,CAAG,CAAC,EAAE,OAChDo9F,GAAqB,IAAI,OAAOp9F,EAAK,GAAG,EAAE,OAAOqpF,GAAU0L,EAAW/0F,CAAG,CAAC,EAAG,GAAG,EAGhFo9F,GAAqB,IAAI,OAAOp9F,CAAG,EAEnD,CAAS,EAEEo9F,CACX,EAAG,CACC,aAAc,SAAU19F,EAAG,CACvB,IAAI+oF,EAAWY,GACf,OAAAA,GAAY3pF,EACL+oF,CACV,CACL,CAAC,EACGY,GAAY,SAA0B9oF,EAAO,CAC7C,OAAO,KAAK,UAAUA,EAAO+8F,EAAiB,CAClD,EACA,SAASA,GAAkBC,EAAMh9F,EAAO,CACpC,OAAIm7F,GAAgBn7F,CAAK,GAAK,CAAC,MAAM,QAAQA,CAAK,IAC9CA,EAAQ,OAAO,KAAKA,CAAK,EAAE,KAAI,EAAG,OAAO,SAAUgW,EAAMvW,EAAK,CAC1D,OAAAuW,EAAKvW,CAAG,EAAIO,EAAMP,CAAG,EACduW,CACV,EAAE,CAAE,IAEFhW,CACX,CACO,SAASi9F,GAAyBziB,EAAOkf,EAAW,CACvD,GAAIlf,EAAM,WAAaA,EAAM,UAAU,OAAQ,CAC3C,IAAI0iB,EAAW,GACf,OAAA1iB,EAAM,UAAU,QAAQ,SAAUp4E,EAAI,CAClC,IAAIqD,EAAOrD,EAAG,KAAMpC,EAAQoC,EAAG,MAC/B,OAAO45F,GAA4BkB,EAAUz3F,EAAMzF,EAAO05F,CAAS,CAC/E,CAAS,EACMwD,CACV,CACD,OAAO,IACX,CACO,SAASC,GAAuB3iB,EAAO,CAC1C,OAAOA,EAAM,MAAQA,EAAM,MAAM,MAAQA,EAAM,KAAK,KACxD,CACO,SAAS4iB,GAAsB98F,EAAQg4F,EAAc4C,EAAa,CAErE,QADIP,EACK12F,EAAK,EAAG7B,EAAKk2F,EAAa,WAAYr0F,EAAK7B,EAAG,OAAQ6B,IAAM,CACjE,IAAI0+D,EAAYvgE,EAAG6B,CAAE,EACrB,GAAIo5F,GAAQ16B,CAAS,GACjB,GAAIA,EAAU,KAAK,QAAU,aACzB,OAAOriE,EAAO68F,GAAuBx6B,CAAS,CAAC,OAG9Cg4B,EACLA,EAAU,KAAKh4B,CAAS,EAGxBg4B,EAAY,CAACh4B,CAAS,CAE7B,CACD,GAAI,OAAOriE,EAAO,YAAe,SAC7B,OAAOA,EAAO,WAElB,GAAIq6F,EACA,QAASt4F,EAAK,EAAGi7F,EAAc3C,EAAWt4F,EAAKi7F,EAAY,OAAQj7F,IAAM,CACrE,IAAIsgE,EAAY26B,EAAYj7F,CAAE,EAC1Bk7F,EAAWH,GAAsB98F,EAAQ26F,GAAyBt4B,EAAWu4B,CAAW,EAAE,aAAcA,CAAW,EACvH,GAAI,OAAOqC,GAAa,SACpB,OAAOA,CAEd,CAET,CACO,SAASF,GAAQ16B,EAAW,CAC/B,OAAOA,EAAU,OAAS,OAC9B,CACO,SAAS66B,GAAiB76B,EAAW,CACxC,OAAOA,EAAU,OAAS,gBAC9B,CCtNO,SAAS86B,GAAct4F,EAAK,CAC/B,QAAUyvE,GAAUzvE,GAAOA,EAAI,OAAS,WAAY,wJAA0J,EAAIyvE,GAAUzvE,GAAOA,EAAI,OAAS,WAAY,EAAE,EAC9P,IAAIu4F,EAAav4F,EAAI,YAChB,OAAO,SAAUtuB,EAAG,CAAE,OAAOA,EAAE,OAAS,qBAAuB,EAC/D,IAAI,SAAU+jH,EAAY,CAC3B,GAAIA,EAAW,OAAS,sBACpB,MAAM,QAAU,IAAIpQ,GAAe,2DAA4D,OAAOoQ,EAAW,KAAM,GAAI,CAAC,EAAI,IAAIpQ,GAAe,EAAE,EAEzJ,OAAOoQ,CACf,CAAK,EACD,eAAUhmB,GAAU8oB,EAAW,QAAU,EAAG,wCAAwC,OAAOA,EAAW,OAAQ,aAAa,CAAC,EAAI9oB,GAAU8oB,EAAW,QAAU,EAAG,EAAE,EAC7Jv4F,CACX,CACO,SAASw4F,GAAuBx4F,EAAK,CACxC,OAAAs4F,GAAct4F,CAAG,EACVA,EAAI,YAAY,OAAO,SAAUy1F,EAAY,CAChD,OAAOA,EAAW,OAAS,qBACnC,CAAK,EAAE,CAAC,CACR,CACO,SAASgD,GAAiBz4F,EAAK,CAClC,OAAQA,EAAI,YACP,OAAO,SAAUy1F,EAAY,CAC9B,OAAOA,EAAW,OAAS,uBAAyB,CAAC,CAACA,EAAW,IACzE,CAAK,EACI,IAAI,SAAUllH,EAAG,CAAE,OAAOA,EAAE,KAAK,MAAQ,EAAE,CAAC,GAAK,IAC1D,CACO,SAASmoH,GAAuB14F,EAAK,CACxC,OAAOA,EAAI,YAAY,OAAO,SAAUy1F,EAAY,CAChD,OAAOA,EAAW,OAAS,oBACnC,CAAK,CACL,CACO,SAASkD,GAAmB34F,EAAK,CACpC,IAAI44F,EAAWJ,GAAuBx4F,CAAG,EACzC,eAAUyvE,GAAUmpB,GAAYA,EAAS,YAAc,QAAS,kCAAkC,EAAInpB,GAAUmpB,GAAYA,EAAS,YAAc,QAAS,EAAE,EACvJA,CACX,CACO,SAASC,GAAsB74F,EAAK,CACvC,QAAUyvE,GAAUzvE,EAAI,OAAS,WAAY,wJAA0J,EAAIyvE,GAAUzvE,EAAI,OAAS,WAAY,EAAE,EAChP,QAAUyvE,GAAUzvE,EAAI,YAAY,QAAU,EAAG,4CAA4C,EAAIyvE,GAAUzvE,EAAI,YAAY,QAAU,EAAG,EAAE,EAC1I,IAAI84F,EAAc94F,EAAI,YAAY,CAAC,EACnC,eAAUyvE,GAAUqpB,EAAY,OAAS,qBAAsB,gCAAgC,EAAIrpB,GAAUqpB,EAAY,OAAS,qBAAsB,EAAE,EACnJA,CACX,CACO,SAASC,GAAkBC,EAAU,CACxCV,GAAcU,CAAQ,EAEtB,QADIC,EACKn6F,EAAK,EAAG7B,EAAK+7F,EAAS,YAAal6F,EAAK7B,EAAG,OAAQ6B,IAAM,CAC9D,IAAI22F,EAAax4F,EAAG6B,CAAE,EACtB,GAAI22F,EAAW,OAAS,sBAAuB,CAC3C,IAAI3G,EAAY2G,EAAW,UAC3B,GAAI3G,IAAc,SACdA,IAAc,YACdA,IAAc,eACd,OAAO2G,CAEd,CACGA,EAAW,OAAS,sBAAwB,CAACwD,IAC7CA,EAAqBxD,EAE5B,CACD,GAAIwD,EACA,OAAOA,EAEX,MAAM,QAAU,IAAI5T,GAAe,sFAAsF,EAAI,IAAIA,GAAe,EAAE,CACtJ,CACO,SAAS6T,GAAiBzD,EAAY,CACzC,IAAI0D,EAAgB,OAAO,OAAO,IAAI,EAClCC,EAAO3D,GAAcA,EAAW,oBACpC,OAAI2D,GAAQA,EAAK,QACbA,EAAK,QAAQ,SAAUC,EAAK,CACpBA,EAAI,cACJxC,GAA4BsC,EAAeE,EAAI,SAAS,KAAMA,EAAI,YAAY,CAE9F,CAAS,EAEEF,CACX,CC9EO,IAAIp6E,GAAU,MAAM,QACpB,SAASu6E,GAAgBz+F,EAAO,CACnC,OAAO,MAAM,QAAQA,CAAK,GAAKA,EAAM,OAAS,CAClD,CCIA,IAAI0+F,GAAiB,CACjB,KAAMjQ,GAAK,MACX,KAAM,CACF,KAAMA,GAAK,KACX,MAAO,YACV,CACL,EACA,SAASkQ,GAAQh+F,EAAIu6F,EAAa,CAC9B,MAAO,CAACv6F,GAAMA,EAAG,aAAa,WAAW,MAAM,SAAUgiE,EAAW,CAAE,OAAOA,EAAU,OAAS8rB,GAAK,iBACjGkQ,GAAQzD,EAAYv4B,EAAU,KAAK,KAAK,EAAGu4B,CAAW,CAAE,CAAE,CAClE,CACA,SAAS0D,GAAiBz5F,EAAK,CAC3B,OAAOw5F,GAAQhB,GAAuBx4F,CAAG,GAAK64F,GAAsB74F,CAAG,EAAG21F,GAAkB+C,GAAuB14F,CAAG,CAAC,CAAC,EAClH,KACAA,CACV,CACA,SAAS05F,GAAoBrK,EAAY,CACrC,IAAIyF,EAAU,IAAI,IACd6E,EAAQ,GACZ,OAAAtK,EAAW,QAAQ,SAAUoF,EAAW,CAChCA,EAAU,KACVK,EAAQ,IAAIL,EAAU,IAAI,EAErBA,EAAU,MACfkF,EAAM,KAAKlF,EAAU,IAAI,CAErC,CAAK,EACM,SAAUA,EAAW,CAAE,OAAQK,EAAQ,IAAIL,EAAU,KAAK,KAAK,GAClEkF,EAAM,KAAK,SAAUC,EAAM,CAAE,OAAOA,EAAKnF,CAAS,EAAI,EAC9D,CACA,SAASoF,GAAwBC,EAAY,CACzC,IAAIrjF,EAAM,IAAI,IACd,OAAO,SAA6Bnc,EAAK,CACjCA,IAAQ,SAAUA,EAAMw/F,GAC5B,IAAIC,EAAQtjF,EAAI,IAAInc,CAAG,EACvB,OAAKy/F,GACDtjF,EAAI,IAAInc,EAAKy/F,EAAQ,CACjB,UAAW,IAAI,IACf,gBAAiB,IAAI,GACrC,CAAa,EAEEA,CACf,CACA,CACO,SAASC,GAA6B3K,EAAYrvF,EAAK,CAkB1D,QAjBIi6F,EAA0BJ,GAAwB,EAAE,EACpDK,EAAyBL,GAAwB,EAAE,EACnDM,EAAW,SAAUjJ,EAAW,CAChC,QAASlhH,EAAI,EAAGoqH,EAAW,OAAQpqH,EAAIkhH,EAAU,SAAWkJ,EAAWlJ,EAAUlhH,CAAC,GAAI,EAAEA,EACpF,GAAI+uC,IAAQq7E,CAAQ,EAEpB,IAAIA,EAAS,OAAS9Q,GAAK,qBACvB,OAAO2Q,EAAwBG,EAAS,MAAQA,EAAS,KAAK,KAAK,EAEvE,GAAIA,EAAS,OAAS9Q,GAAK,oBACvB,OAAO4Q,EAAuBE,EAAS,KAAK,KAAK,EAGzD,gBAAW3qB,GAAU,MAAM,sCAAsC,EAC1D,IACf,EACQ4qB,EAAiB,EACZpgG,EAAI+F,EAAI,YAAY,OAAS,EAAG/F,GAAK,EAAG,EAAEA,EAC3C+F,EAAI,YAAY/F,CAAC,EAAE,OAASqvF,GAAK,sBACjC,EAAE+Q,EAGV,IAAIC,EAAmBZ,GAAoBrK,CAAU,EACjDkL,EAAqBlL,EAAW,KAAK,SAAUoF,EAAW,CAAE,OAAOA,EAAU,MAAO,CAAE,EACtF+F,EAAoB,SAAUC,EAAgB,CAAE,OAAQF,GACxDE,GACAA,EAAe,KAAKH,CAAgB,GACpCI,EAA6B,IAAI,IACjCC,EAAwB,GACxBC,EAA+B,CAC/B,MAAO,SAAU/2E,EAAM,CACnB,GAAI22E,EAAkB32E,EAAK,UAAU,EACjC,OAAA82E,EAAwB,GACjB,IAEd,CACT,EACQE,EAA8BlK,GAAM3wF,EAAK,CACzC,MAAO46F,EACP,eAAgBA,EAChB,mBAAoB,CAChB,MAAO,UAAY,CACf,MAAO,EACV,CACJ,EACD,SAAU,CACN,MAAO,SAAU/2E,EAAMg0E,EAAMiD,EAASC,EAAO7J,EAAW,CACpD,IAAI6I,EAAQI,EAASjJ,CAAS,EAC1B6I,GACAA,EAAM,UAAU,IAAIl2E,EAAK,KAAK,KAAK,CAE1C,CACJ,EACD,eAAgB,CACZ,MAAO,SAAUA,EAAMg0E,EAAMiD,EAASC,EAAO7J,EAAW,CACpD,GAAIsJ,EAAkB32E,EAAK,UAAU,EACjC,OAAA82E,EAAwB,GACjB,KAEX,IAAIZ,EAAQI,EAASjJ,CAAS,EAC1B6I,GACAA,EAAM,gBAAgB,IAAIl2E,EAAK,KAAK,KAAK,CAEhD,CACJ,EACD,mBAAoB,CAChB,MAAO,SAAUA,EAAMg0E,EAAMiD,EAAShlF,EAAM,CACxC4kF,EAA2B,IAAI,KAAK,UAAU5kF,CAAI,EAAG+N,CAAI,CAC5D,EACD,MAAO,SAAUA,EAAMg0E,EAAMiD,EAAShlF,EAAM,CACxC,IAAIklF,EAAeN,EAA2B,IAAI,KAAK,UAAU5kF,CAAI,CAAC,EACtE,GAAI+N,IAASm3E,EACT,OAAOn3E,EAEX,GAAIw2E,EAAiB,GACjBx2E,EAAK,aAAa,WAAW,MAAM,SAAU25C,EAAW,CAAE,OAAQA,EAAU,OAAS8rB,GAAK,OACtF9rB,EAAU,KAAK,QAAU,YAAgB,GAC7C,OAAA08B,EAAuBr2E,EAAK,KAAK,KAAK,EAAE,QAAU,GAClD82E,EAAwB,GACjB,IAEd,CACJ,EACD,UAAW,CACP,MAAO,SAAU92E,EAAM,CACnB,GAAIy2E,EAAiBz2E,CAAI,EACrB,OAAA82E,EAAwB,GACjB,IAEd,CACJ,CACT,CAAK,EACD,GAAI,CAACA,EACD,OAAO36F,EAEX,IAAIi7F,EAAyB,SAAUlB,EAAO,CAC1C,OAAKA,EAAM,iBACPA,EAAM,eAAiB,IAAI,IAAIA,EAAM,SAAS,EACzCA,EAAM,SACPA,EAAM,gBAAgB,QAAQ,SAAUmB,EAAmB,CACvDD,EAAuBf,EAAuBgB,CAAiB,CAAC,EAAE,eAAe,QAAQ,SAAU9L,EAAS,CACxG2K,EAAM,eAAe,IAAI3K,CAAO,CACxD,CAAqB,CACrB,CAAiB,GAGF2K,CACf,EACQoB,EAAuB,IAAI,IAC/BN,EAA4B,YAAY,QAAQ,SAAUxB,EAAK,CACvDA,EAAI,OAAS/P,GAAK,qBAClB2R,EAAuBhB,EAAwBZ,EAAI,MAAQA,EAAI,KAAK,KAAK,CAAC,EAAE,gBAAgB,QAAQ,SAAU6B,EAAmB,CAC7HC,EAAqB,IAAID,CAAiB,CAC1D,CAAa,EAEI7B,EAAI,OAAS/P,GAAK,qBACvB+Q,IAAmB,GACnB,CAACH,EAAuBb,EAAI,KAAK,KAAK,EAAE,SACxC8B,EAAqB,IAAI9B,EAAI,KAAK,KAAK,CAEnD,CAAK,EACD8B,EAAqB,QAAQ,SAAU7F,EAAc,CACjD2F,EAAuBf,EAAuB5E,CAAY,CAAC,EAAE,gBAAgB,QAAQ,SAAU4F,EAAmB,CAC9GC,EAAqB,IAAID,CAAiB,CACtD,CAAS,CACT,CAAK,EACD,IAAIE,EAAwB,SAAU9F,EAAc,CAAE,MAAO,CAAC,EAAE,CAAC6F,EAAqB,IAAI7F,CAAY,GAClG4E,EAAuB5E,CAAY,EAAE,QAAS,EAC9C+F,EAAe,CACf,MAAO,SAAUx3E,EAAM,CACnB,GAAIu3E,EAAsBv3E,EAAK,KAAK,KAAK,EACrC,OAAO,IAEd,CACT,EACI,OAAO41E,GAAiB9I,GAAMkK,EAA6B,CACvD,eAAgBQ,EAChB,mBAAoBA,EACpB,oBAAqB,CACjB,MAAO,SAAUx3E,EAAM,CACnB,GAAIA,EAAK,oBAAqB,CAC1B,IAAIy3E,EAAsBL,EAAuBhB,EAAwBp2E,EAAK,MAAQA,EAAK,KAAK,KAAK,CAAC,EAAE,eACxG,GAAIy3E,EAAoB,KAAOz3E,EAAK,oBAAoB,OACpD,OAAO9pB,EAASA,EAAS,GAAI8pB,CAAI,EAAG,CAAE,oBAAqBA,EAAK,oBAAoB,OAAO,SAAU03E,EAAQ,CAAE,OAAOD,EAAoB,IAAIC,EAAO,SAAS,KAAK,KAAK,EAAI,CAAC,CAAE,CAEtL,CACJ,CACJ,CACJ,EAAC,CACN,CACO,IAAIC,GAAwB,OAAO,OAAO,SAAUx7F,EAAK,CAC5D,OAAO2wF,GAAM3wF,EAAK,CACd,aAAc,CACV,MAAO,SAAU6jB,EAAMg0E,EAAM1wF,EAAQ,CACjC,GAAI,EAAAA,GACAA,EAAO,OAASmiF,GAAK,sBAGzB,KAAI2J,EAAapvE,EAAK,WACtB,GAAKovE,EAGL,KAAIwI,EAAOxI,EAAW,KAAK,SAAUz1B,EAAW,CAC5C,OAAQ06B,GAAQ16B,CAAS,IACpBA,EAAU,KAAK,QAAU,cACtBA,EAAU,KAAK,MAAM,YAAY,KAAM,CAAC,IAAM,EAC1E,CAAiB,EACD,GAAI,CAAAi+B,EAGJ,KAAIpmB,EAAQluE,EACZ,GAAI,EAAA+wF,GAAQ7iB,CAAK,GACbA,EAAM,YACNA,EAAM,WAAW,KAAK,SAAU3jG,EAAG,CAAE,OAAOA,EAAE,KAAK,QAAU,QAAW,IAG5E,OAAOqoB,EAASA,EAAS,CAAE,EAAE8pB,CAAI,EAAG,CAAE,WAAY/nB,GAAcA,GAAc,GAAIm3F,EAAY,EAAI,EAAG,CAACsG,EAAc,EAAG,EAAK,CAAC,CAAE,IAClI,CACJ,CACT,CAAK,CACL,EAAG,CACC,MAAO,SAAUlkB,EAAO,CACpB,OAAOA,IAAUkkB,EACpB,CACL,CAAC,EACGmC,GAAyB,CACzB,KAAM,SAAUjH,EAAW,CACvB,IAAIkH,EAAalH,EAAU,KAAK,QAAU,aAC1C,OAAIkH,IACI,CAAClH,EAAU,WACX,CAACA,EAAU,UAAU,KAAK,SAAUr1F,EAAK,CAAE,OAAOA,EAAI,KAAK,QAAU,KAAQ,KAC7E,SAAWqwE,GAAU,KAAK,qIACyC,EAGpEksB,CACV,CACL,EACO,SAASC,GAAsC57F,EAAK,CACvD,OAAOg6F,GAA6B,CAAC0B,EAAsB,EAAGpD,GAAct4F,CAAG,CAAC,CACpF,CAgFO,SAAS67F,GAA2BrmF,EAAU,CACjD,IAAIigF,EAAasD,GAAkBvjF,CAAQ,EACvCsmF,EAAsBrG,EAAW,UACrC,GAAIqG,IAAwB,QACxB,OAAOtmF,EAEX,IAAIumF,EAAcpL,GAAMn7E,EAAU,CAC9B,oBAAqB,CACjB,MAAO,SAAUqO,EAAM,CACnB,OAAO9pB,EAASA,EAAS,GAAI8pB,CAAI,EAAG,CAAE,UAAW,OAAO,CAAE,CAC7D,CACJ,CACT,CAAK,EACD,OAAOk4E,CACX,CACO,SAASC,GAA6BxmF,EAAU,CACnD8iF,GAAc9iF,CAAQ,EACtB,IAAIumF,EAAc/B,GAA6B,CAC3C,CACI,KAAM,SAAUvF,EAAW,CAAE,OAAOA,EAAU,KAAK,QAAU,QAAW,EACxE,OAAQ,EACX,CACJ,EAAEj/E,CAAQ,EACX,OAAOumF,CACX,CClWA,IAAIE,GAAiB,OAAO,UAAU,eAC/B,SAASC,IAAY,CAExB,QADIC,EAAU,GACLr9F,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCq9F,EAAQr9F,CAAE,EAAI,UAAUA,CAAE,EAE9B,OAAOs9F,GAAeD,CAAO,CACjC,CACO,SAASC,GAAeD,EAAS,CACpC,IAAI9hG,EAAS8hG,EAAQ,CAAC,GAAK,GACvBt4F,EAAQs4F,EAAQ,OACpB,GAAIt4F,EAAQ,EAER,QADIw4F,EAAS,IAAIC,GACR,EAAI,EAAG,EAAIz4F,EAAO,EAAE,EACzBxJ,EAASgiG,EAAO,MAAMhiG,EAAQ8hG,EAAQ,CAAC,CAAC,EAGhD,OAAO9hG,CACX,CACA,IAAIkiG,GAAoB,SAAUliG,EAAQ4hB,EAAQxB,EAAU,CACxD,OAAO,KAAK,MAAMpgB,EAAOogB,CAAQ,EAAGwB,EAAOxB,CAAQ,CAAC,CACxD,EACI6hF,GAAc,UAAY,CAC1B,SAASA,EAAWE,EAAY,CACxBA,IAAe,SAAUA,EAAaD,IAC1C,KAAK,WAAaC,EAClB,KAAK,SAAWxG,GAChB,KAAK,WAAa,IAAI,GACzB,CACD,OAAAsG,EAAW,UAAU,MAAQ,SAAUjiG,EAAQ4hB,EAAQ,CAGnD,QAFIve,EAAQ,KACR2P,EAAU,GACLvO,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCuO,EAAQvO,EAAK,CAAC,EAAI,UAAUA,CAAE,EAElC,OAAIk3F,GAAgB/5E,CAAM,GAAK+5E,GAAgB37F,CAAM,GACjD,OAAO,KAAK4hB,CAAM,EAAE,QAAQ,SAAUwgF,EAAW,CAC7C,GAAIR,GAAe,KAAK5hG,EAAQoiG,CAAS,EAAG,CACxC,IAAIC,EAAcriG,EAAOoiG,CAAS,EAClC,GAAIxgF,EAAOwgF,CAAS,IAAMC,EAAa,CACnC,IAAIvhG,EAASuC,EAAM,WAAW,MAAMA,EAAO5B,GAAc,CAACzB,EAAQ4hB,EAAQwgF,CAAS,EAAGpvF,EAAS,EAAK,CAAC,EACjGlS,IAAWuhG,IACXriG,EAASqD,EAAM,oBAAoBrD,CAAM,EACzCA,EAAOoiG,CAAS,EAAIthG,EAE3B,CACJ,MAEGd,EAASqD,EAAM,oBAAoBrD,CAAM,EACzCA,EAAOoiG,CAAS,EAAIxgF,EAAOwgF,CAAS,CAExD,CAAa,EACMpiG,GAEJ4hB,CACf,EACIqgF,EAAW,UAAU,oBAAsB,SAAUzhG,EAAO,CACxD,OAAIm7F,GAAgBn7F,CAAK,IAChB,KAAK,WAAW,IAAIA,CAAK,IACtB,MAAM,QAAQA,CAAK,EACnBA,EAAQA,EAAM,MAAM,CAAC,EAGrBA,EAAQd,EAAS,CAAE,UAAW,OAAO,eAAec,CAAK,GAAKA,CAAK,EAEvE,KAAK,WAAW,IAAIA,CAAK,IAG1BA,CACf,EACWyhG,CACX,ICzEA,SAASK,GAAgCjhG,EAAGkhG,EAAgB,CAAE,IAAI7X,EAAK,OAAO,OAAW,KAAerpF,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAAG,GAAIqpF,EAAI,OAAQA,EAAKA,EAAG,KAAKrpF,CAAC,GAAG,KAAK,KAAKqpF,CAAE,EAAG,GAAI,MAAM,QAAQrpF,CAAC,IAAMqpF,EAAK8X,GAA4BnhG,CAAC,IAAMkhG,GAAkBlhG,GAAK,OAAOA,EAAE,QAAW,SAAU,CAAMqpF,IAAIrpF,EAAIqpF,GAAI,IAAI9qF,EAAI,EAAG,OAAO,UAAY,CAAE,OAAIA,GAAKyB,EAAE,OAAe,CAAE,KAAM,EAAM,EAAS,CAAE,KAAM,GAAO,MAAOA,EAAEzB,GAAG,CAAC,CAAG,CAAK,CAAC,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAAI,CAE5lB,SAAS4iG,GAA4BnhG,EAAGohG,EAAQ,CAAE,GAAKphG,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOqhG,GAAkBrhG,EAAGohG,CAAM,EAAG,IAAI/sH,EAAI,OAAO,UAAU,SAAS,KAAK2rB,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzD3rB,IAAM,UAAY2rB,EAAE,cAAa3rB,EAAI2rB,EAAE,YAAY,MAAU3rB,IAAM,OAASA,IAAM,MAAO,OAAO,MAAM,KAAK2rB,CAAC,EAAG,GAAI3rB,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAG,OAAOgtH,GAAkBrhG,EAAGohG,CAAM,EAAI,CAEha,SAASC,GAAkBC,EAAKvvF,EAAK,EAAMA,GAAO,MAAQA,EAAMuvF,EAAI,UAAQvvF,EAAMuvF,EAAI,QAAQ,QAAS/iG,EAAI,EAAGgjG,EAAO,IAAI,MAAMxvF,CAAG,EAAGxT,EAAIwT,EAAKxT,IAAOgjG,EAAKhjG,CAAC,EAAI+iG,EAAI/iG,CAAC,EAAK,OAAOgjG,CAAO,CAEvL,SAASC,GAAkB7iG,EAAQwS,EAAO,CAAE,QAAS5S,EAAI,EAAGA,EAAI4S,EAAM,OAAQ5S,IAAK,CAAE,IAAIkjG,EAAatwF,EAAM5S,CAAC,EAAGkjG,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe9iG,EAAQ8iG,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASC,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAYJ,GAAkBG,EAAY,UAAWC,CAAU,EAAOC,GAAaL,GAAkBG,EAAaE,CAAW,EAAG,OAAO,eAAeF,EAAa,YAAa,CAAE,SAAU,EAAO,GAAUA,CAAc,CAG7R,IAAIG,GAAa,UAAY,CAC3B,OAAO,OAAO,QAAW,UAC3B,EAEIC,GAAY,SAAUn9F,EAAM,CAC9B,OAAOk9F,GAAU,GAAM,EAAQ,OAAOl9F,CAAI,CAC5C,EAEIo9F,GAAY,SAAUp9F,EAAM,CAC9B,OAAOm9F,GAAUn9F,CAAI,EAAI,OAAOA,CAAI,EAAI,KAAOA,CACjD,EAEIk9F,MAAgB,CAACC,GAAU,YAAY,IACzC,OAAO,WAAa,OAAO,YAAY,GAGzC,IAAIE,GAAiBD,GAAU,UAAU,EACrCE,GAAmBF,GAAU,YAAY,EACzCG,GAAgBH,GAAU,SAAS,EAEvC,SAASI,GAAU1vF,EAAK9T,EAAK,CAC3B,IAAIO,EAAQuT,EAAI9T,CAAG,EACnB,GAAIO,GAAS,KACb,IAAI,OAAOA,GAAU,WAAY,MAAM,IAAI,UAAUA,EAAQ,oBAAoB,EACjF,OAAOA,EACT,CAEA,SAASkjG,GAAW3vF,EAAK,CACvB,IAAI4vF,EAAO5vF,EAAI,YAEf,OAAI4vF,IAAS,SACXA,EAAOA,EAAKH,EAAa,EAErBG,IAAS,OACXA,EAAO,SAIJA,IAAS,OAAYA,EAAOC,EACrC,CAEA,SAASC,GAAa3tH,EAAG,CACvB,OAAOA,aAAa0tH,EACtB,CAEA,SAASE,GAAgB,EAAG,CACtBA,GAAgB,IAClBA,GAAgB,IAAI,CAAC,EAErB,WAAW,UAAY,CACrB,MAAM,CACZ,CAAK,CAEL,CAEA,SAASC,GAAQv/D,EAAI,CACnB,QAAQ,UAAU,KAAK,UAAY,CACjC,GAAI,CACFA,GACD,OAAQ5tD,EAAG,CACVktH,GAAgBltH,CAAC,CAClB,CACL,CAAG,CACH,CAEA,SAASotH,GAAoBC,EAAc,CACzC,IAAIC,EAAUD,EAAa,SAC3B,GAAIC,IAAY,SAChBD,EAAa,SAAW,OAEpB,EAACC,GAIL,GAAI,CACF,GAAI,OAAOA,GAAY,WACrBA,QACK,CACL,IAAIC,EAAcV,GAAUS,EAAS,aAAa,EAE9CC,GACFA,EAAY,KAAKD,CAAO,CAE3B,CACF,OAAQttH,EAAG,CACVktH,GAAgBltH,CAAC,CAClB,CACH,CAEA,SAASwtH,GAAkBH,EAAc,CACvCA,EAAa,UAAY,OACzBA,EAAa,OAAS,OACtBA,EAAa,OAAS,QACxB,CAEA,SAASI,GAAkBJ,EAAc,CACvC,IAAIK,EAAQL,EAAa,OAEzB,GAAKK,EAIL,CAAAL,EAAa,OAAS,OACtBA,EAAa,OAAS,QAEtB,QAASrkG,EAAI,EAAGA,EAAI0kG,EAAM,SACxBC,GAAmBN,EAAcK,EAAM1kG,CAAC,EAAE,KAAM0kG,EAAM1kG,CAAC,EAAE,KAAK,EAC1DqkG,EAAa,SAAW,UAFI,EAAErkG,EAElC,EAEJ,CAEA,SAAS2kG,GAAmBN,EAAcngC,EAAMtjE,EAAO,CACrDyjG,EAAa,OAAS,UACtB,IAAIO,EAAWP,EAAa,UAE5B,GAAI,CACF,IAAItsH,EAAI8rH,GAAUe,EAAU1gC,CAAI,EAEhC,OAAQA,EAAI,CACV,IAAK,OACCnsF,GAAGA,EAAE,KAAK6sH,EAAUhkG,CAAK,EAC7B,MAEF,IAAK,QAEH,GADA4jG,GAAkBH,CAAY,EAC1BtsH,EAAGA,EAAE,KAAK6sH,EAAUhkG,CAAK,MAAO,OAAMA,EAC1C,MAEF,IAAK,WACH4jG,GAAkBH,CAAY,EAC1BtsH,GAAGA,EAAE,KAAK6sH,CAAQ,EACtB,KACH,CACF,OAAQ5tH,EAAG,CACVktH,GAAgBltH,CAAC,CAClB,CAEGqtH,EAAa,SAAW,SAAUD,GAAoBC,CAAY,EAAWA,EAAa,SAAW,YAAWA,EAAa,OAAS,QAC5I,CAEA,SAASQ,GAASR,EAAcngC,EAAMtjE,EAAO,CAC3C,GAAIyjG,EAAa,SAAW,SAE5B,IAAIA,EAAa,SAAW,YAAa,CACvCA,EAAa,OAAO,KAAK,CACvB,KAAMngC,EACN,MAAOtjE,CACb,CAAK,EAED,MACD,CAED,GAAIyjG,EAAa,SAAW,QAAS,CACnCA,EAAa,OAAS,YACtBA,EAAa,OAAS,CAAC,CACrB,KAAMngC,EACN,MAAOtjE,CACb,CAAK,EACDujG,GAAQ,UAAY,CAClB,OAAOM,GAAkBJ,CAAY,CAC3C,CAAK,EACD,MACD,CAEDM,GAAmBN,EAAcngC,EAAMtjE,CAAK,EAC9C,CAEA,IAAIkkG,GAA4B,UAAY,CAC1C,SAASA,EAAaF,EAAUG,EAAY,CAG1C,KAAK,SAAW,OAChB,KAAK,UAAYH,EACjB,KAAK,OAAS,OACd,KAAK,OAAS,eACd,IAAII,EAAuB,IAAIC,GAAqB,IAAI,EAExD,GAAI,CACF,KAAK,SAAWF,EAAW,KAAK,OAAWC,CAAoB,CAChE,OAAQhuH,EAAG,CACVguH,EAAqB,MAAMhuH,CAAC,CAC7B,CAEG,KAAK,SAAW,iBAAgB,KAAK,OAAS,QACnD,CAED,IAAIkuH,EAASJ,EAAa,UAE1B,OAAAI,EAAO,YAAc,UAAuB,CACtC,KAAK,SAAW,WAClBV,GAAkB,IAAI,EACtBJ,GAAoB,IAAI,EAE9B,EAEEjB,GAAa2B,EAAc,CAAC,CAC1B,IAAK,SACL,IAAK,UAAY,CACf,OAAO,KAAK,SAAW,QACxB,CACF,EAAC,EAEKA,CACT,IAEIG,GAAoC,UAAY,CAClD,SAASA,EAAqBZ,EAAc,CAC1C,KAAK,cAAgBA,CACtB,CAED,IAAIc,EAAUF,EAAqB,UAEnC,OAAAE,EAAQ,KAAO,SAAcvkG,EAAO,CAClCikG,GAAS,KAAK,cAAe,OAAQjkG,CAAK,CAC9C,EAEEukG,EAAQ,MAAQ,SAAevkG,EAAO,CACpCikG,GAAS,KAAK,cAAe,QAASjkG,CAAK,CAC/C,EAEEukG,EAAQ,SAAW,UAAoB,CACrCN,GAAS,KAAK,cAAe,UAAU,CAC3C,EAEE1B,GAAa8B,EAAsB,CAAC,CAClC,IAAK,SACL,IAAK,UAAY,CACf,OAAO,KAAK,cAAc,SAAW,QACtC,CACF,EAAC,EAEKA,CACT,IAEIjB,GAA0B,UAAY,CACxC,SAASA,EAAWe,EAAY,CAC9B,GAAI,EAAE,gBAAgBf,GAAa,MAAM,IAAI,UAAU,2CAA2C,EAClG,GAAI,OAAOe,GAAe,WAAY,MAAM,IAAI,UAAU,2CAA2C,EACrG,KAAK,YAAcA,CACpB,CAED,IAAIK,EAAUpB,EAAW,UAEzB,OAAAoB,EAAQ,UAAY,SAAmBR,EAAU,CAC/C,OAAI,OAAOA,GAAa,UAAYA,IAAa,QAC/CA,EAAW,CACT,KAAMA,EACN,MAAO,UAAU,CAAC,EAClB,SAAU,UAAU,CAAC,CAC7B,GAGW,IAAIE,GAAaF,EAAU,KAAK,WAAW,CACtD,EAEEQ,EAAQ,QAAU,SAAiBxgE,EAAI,CACrC,IAAInhC,EAAQ,KAEZ,OAAO,IAAI,QAAQ,SAAU5C,EAASC,EAAQ,CAC5C,GAAI,OAAO8jC,GAAO,WAAY,CAC5B9jC,EAAO,IAAI,UAAU8jC,EAAK,oBAAoB,CAAC,EAC/C,MACD,CAED,SAASygE,GAAO,CACdhB,EAAa,YAAW,EACxBxjG,GACD,CAED,IAAIwjG,EAAe5gG,EAAM,UAAU,CACjC,KAAM,SAAU7C,EAAO,CACrB,GAAI,CACFgkC,EAAGhkC,EAAOykG,CAAI,CACf,OAAQruH,EAAG,CACV8pB,EAAO9pB,CAAC,EACRqtH,EAAa,YAAW,CACzB,CACF,EACD,MAAOvjG,EACP,SAAUD,CAClB,CAAO,CACP,CAAK,CACL,EAEEukG,EAAQ,IAAM,SAAaxgE,EAAI,CAC7B,IAAI0gE,EAAS,KAEb,GAAI,OAAO1gE,GAAO,WAAY,MAAM,IAAI,UAAUA,EAAK,oBAAoB,EAC3E,IAAIhuD,EAAIktH,GAAW,IAAI,EACvB,OAAO,IAAIltH,EAAE,SAAUguH,EAAU,CAC/B,OAAOU,EAAO,UAAU,CACtB,KAAM,SAAU1kG,EAAO,CACrB,GAAI,CACFA,EAAQgkC,EAAGhkC,CAAK,CACjB,OAAQ5pB,EAAG,CACV,OAAO4tH,EAAS,MAAM5tH,CAAC,CACxB,CAED4tH,EAAS,KAAKhkG,CAAK,CACpB,EACD,MAAO,SAAU5pB,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CACpB4tH,EAAS,SAAQ,CAClB,CACT,CAAO,CACP,CAAK,CACL,EAEEQ,EAAQ,OAAS,SAAgBxgE,EAAI,CACnC,IAAI2gE,EAAS,KAEb,GAAI,OAAO3gE,GAAO,WAAY,MAAM,IAAI,UAAUA,EAAK,oBAAoB,EAC3E,IAAIhuD,EAAIktH,GAAW,IAAI,EACvB,OAAO,IAAIltH,EAAE,SAAUguH,EAAU,CAC/B,OAAOW,EAAO,UAAU,CACtB,KAAM,SAAU3kG,EAAO,CACrB,GAAI,CACF,GAAI,CAACgkC,EAAGhkC,CAAK,EAAG,MACjB,OAAQ5pB,EAAG,CACV,OAAO4tH,EAAS,MAAM5tH,CAAC,CACxB,CAED4tH,EAAS,KAAKhkG,CAAK,CACpB,EACD,MAAO,SAAU5pB,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CACpB4tH,EAAS,SAAQ,CAClB,CACT,CAAO,CACP,CAAK,CACL,EAEEQ,EAAQ,OAAS,SAAgBxgE,EAAI,CACnC,IAAI4gE,EAAS,KAEb,GAAI,OAAO5gE,GAAO,WAAY,MAAM,IAAI,UAAUA,EAAK,oBAAoB,EAC3E,IAAIhuD,EAAIktH,GAAW,IAAI,EACnB2B,EAAU,UAAU,OAAS,EAC7BC,EAAW,GACXC,EAAO,UAAU,CAAC,EAClBjuE,EAAMiuE,EACV,OAAO,IAAI/uH,EAAE,SAAUguH,EAAU,CAC/B,OAAOY,EAAO,UAAU,CACtB,KAAM,SAAU5kG,EAAO,CACrB,IAAI83E,EAAQ,CAACgtB,EAGb,GAFAA,EAAW,GAEP,CAAChtB,GAAS+sB,EACZ,GAAI,CACF/tE,EAAMkN,EAAGlN,EAAK92B,CAAK,CACpB,OAAQ5pB,EAAG,CACV,OAAO4tH,EAAS,MAAM5tH,CAAC,CACxB,MAED0gD,EAAM92B,CAET,EACD,MAAO,SAAU5pB,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CACpB,GAAI,CAAC0uH,GAAY,CAACD,EAAS,OAAOb,EAAS,MAAM,IAAI,UAAU,iCAAiC,CAAC,EACjGA,EAAS,KAAKltE,CAAG,EACjBktE,EAAS,SAAQ,CAClB,CACT,CAAO,CACP,CAAK,CACL,EAEEQ,EAAQ,OAAS,UAAkB,CAGjC,QAFIQ,EAAS,KAEJC,EAAO,UAAU,OAAQ3D,EAAU,IAAI,MAAM2D,CAAI,EAAGjI,EAAO,EAAGA,EAAOiI,EAAMjI,IAClFsE,EAAQtE,CAAI,EAAI,UAAUA,CAAI,EAGhC,IAAIhnH,EAAIktH,GAAW,IAAI,EACvB,OAAO,IAAIltH,EAAE,SAAUguH,EAAU,CAC/B,IAAIP,EACAz+F,EAAQ,EAEZ,SAASkgG,EAAU7xB,EAAM,CACvBowB,EAAepwB,EAAK,UAAU,CAC5B,KAAM,SAAU79F,EAAG,CACjBwuH,EAAS,KAAKxuH,CAAC,CAChB,EACD,MAAO,SAAUY,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CAChB4uB,IAAUs8F,EAAQ,QACpBmC,EAAe,OACfO,EAAS,SAAQ,GAEjBkB,EAAUlvH,EAAE,KAAKsrH,EAAQt8F,GAAO,CAAC,CAAC,CAErC,CACX,CAAS,CACF,CAED,OAAAkgG,EAAUF,CAAM,EACT,UAAY,CACbvB,IACFA,EAAa,YAAW,EACxBA,EAAe,OAEzB,CACA,CAAK,CACL,EAEEe,EAAQ,QAAU,SAAiBxgE,EAAI,CACrC,IAAImhE,EAAS,KAEb,GAAI,OAAOnhE,GAAO,WAAY,MAAM,IAAI,UAAUA,EAAK,oBAAoB,EAC3E,IAAIhuD,EAAIktH,GAAW,IAAI,EACvB,OAAO,IAAIltH,EAAE,SAAUguH,EAAU,CAC/B,IAAIoB,EAAgB,GAEhBrnF,EAAQonF,EAAO,UAAU,CAC3B,KAAM,SAAUnlG,EAAO,CACrB,GAAIgkC,EACF,GAAI,CACFhkC,EAAQgkC,EAAGhkC,CAAK,CACjB,OAAQ5pB,EAAG,CACV,OAAO4tH,EAAS,MAAM5tH,CAAC,CACxB,CAGH,IAAI8nC,EAAQloC,EAAE,KAAKgqB,CAAK,EAAE,UAAU,CAClC,KAAM,SAAUA,EAAO,CACrBgkG,EAAS,KAAKhkG,CAAK,CACpB,EACD,MAAO,SAAU5pB,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CACpB,IAAIgpB,EAAIgmG,EAAc,QAAQlnF,CAAK,EAC/B9e,GAAK,GAAGgmG,EAAc,OAAOhmG,EAAG,CAAC,EACrCimG,GACD,CACb,CAAW,EACDD,EAAc,KAAKlnF,CAAK,CACzB,EACD,MAAO,SAAU9nC,EAAG,CAClB4tH,EAAS,MAAM5tH,CAAC,CACjB,EACD,SAAU,UAAY,CACpBivH,GACD,CACT,CAAO,EAED,SAASA,GAAiB,CACpBtnF,EAAM,QAAUqnF,EAAc,SAAW,GAAGpB,EAAS,UAC1D,CAED,OAAO,UAAY,CACjBoB,EAAc,QAAQ,SAAUjmG,EAAG,CACjC,OAAOA,EAAE,aACnB,CAAS,EACD4e,EAAM,YAAW,CACzB,CACA,CAAK,CACL,EAEEymF,EAAQzB,EAAgB,EAAI,UAAY,CACtC,OAAO,IACX,EAEEK,EAAW,KAAO,SAAc1tH,EAAG,CACjC,IAAIM,EAAI,OAAO,MAAS,WAAa,KAAOotH,EAC5C,GAAI1tH,GAAK,KAAM,MAAM,IAAI,UAAUA,EAAI,mBAAmB,EAC1D,IAAIk1G,EAASqY,GAAUvtH,EAAGqtH,EAAgB,EAE1C,GAAInY,EAAQ,CACV,IAAI0a,EAAa1a,EAAO,KAAKl1G,CAAC,EAC9B,GAAI,OAAO4vH,CAAU,IAAMA,EAAY,MAAM,IAAI,UAAUA,EAAa,mBAAmB,EAC3F,OAAIjC,GAAaiC,CAAU,GAAKA,EAAW,cAAgBtvH,EAAUsvH,EAC9D,IAAItvH,EAAE,SAAUguH,EAAU,CAC/B,OAAOsB,EAAW,UAAUtB,CAAQ,CAC5C,CAAO,CACF,CAED,GAAIpB,GAAU,UAAU,IACtBhY,EAASqY,GAAUvtH,EAAGotH,EAAc,EAEhClY,GACF,OAAO,IAAI50G,EAAE,SAAUguH,EAAU,CAC/BT,GAAQ,UAAY,CAClB,GAAI,CAAAS,EAAS,OAEb,SAASuB,EAAYzD,GAAgClX,EAAO,KAAKl1G,CAAC,CAAC,EAAG8vH,EAAO,EAAEA,EAAQD,EAAS,GAAI,MAAO,CACzG,IAAIriF,EAAOsiF,EAAM,MAEjB,GADAxB,EAAS,KAAK9gF,CAAI,EACd8gF,EAAS,OAAQ,MACtB,CAEDA,EAAS,SAAQ,EAC7B,CAAW,CACX,CAAS,EAIL,GAAI,MAAM,QAAQtuH,CAAC,EACjB,OAAO,IAAIM,EAAE,SAAUguH,EAAU,CAC/BT,GAAQ,UAAY,CAClB,GAAI,CAAAS,EAAS,OAEb,SAAS5kG,EAAI,EAAGA,EAAI1pB,EAAE,OAAQ,EAAE0pB,EAE9B,GADA4kG,EAAS,KAAKtuH,EAAE0pB,CAAC,CAAC,EACd4kG,EAAS,OAAQ,OAGvBA,EAAS,SAAQ,EAC3B,CAAS,CACT,CAAO,EAGH,MAAM,IAAI,UAAUtuH,EAAI,oBAAoB,CAChD,EAEE0tH,EAAW,GAAK,UAAc,CAC5B,QAASqC,EAAQ,UAAU,OAAQziF,EAAQ,IAAI,MAAMyiF,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACrF1iF,EAAM0iF,CAAK,EAAI,UAAUA,CAAK,EAGhC,IAAI1vH,EAAI,OAAO,MAAS,WAAa,KAAOotH,EAC5C,OAAO,IAAIptH,EAAE,SAAUguH,EAAU,CAC/BT,GAAQ,UAAY,CAClB,GAAI,CAAAS,EAAS,OAEb,SAAS5kG,EAAI,EAAGA,EAAI4jB,EAAM,OAAQ,EAAE5jB,EAElC,GADA4kG,EAAS,KAAKhhF,EAAM5jB,CAAC,CAAC,EAClB4kG,EAAS,OAAQ,OAGvBA,EAAS,SAAQ,EACzB,CAAO,CACP,CAAK,CACL,EAEEzB,GAAaa,EAAY,KAAM,CAAC,CAC9B,IAAKJ,GACL,IAAK,UAAY,CACf,OAAO,IACR,CACF,EAAC,EAEKI,CACT,IAEIT,MACF,OAAO,eAAeS,GAAY,OAAO,YAAY,EAAG,CACtD,MAAO,CACL,OAAQL,GACR,gBAAiBO,EAClB,EACD,aAAc,EAClB,CAAG,EC5jBY,SAASqC,GAAyBjgE,EAAM,CACtD,IAAIplC,EACAslG,EAASlgE,EAAK,OAElB,GAAI,OAAOkgE,GAAW,WACrB,GAAIA,EAAO,WACVtlG,EAASslG,EAAO,eACV,CAEF,OAAOA,EAAO,KAAQ,WAIzBtlG,EAASslG,EAAO,IAAI,8CAA8C,EAKlEtlG,EAASslG,EAAO,8CAA8C,EAE/D,GAAI,CACHA,EAAO,WAAatlG,CACpB,MAAa,CAIb,CACD,MAEDA,EAAS,eAGV,OAAOA,CACR,CC9BA,IAAIolC,GAEA,OAAO,KAAS,IAClBA,GAAO,KACE,OAAO,OAAW,IAC3BA,GAAO,OACE,OAAO,OAAW,IAC3BA,GAAO,OACE,OAAO,OAAW,IAC3BA,GAAO,OAEPA,GAAO,SAAS,aAAa,IAGlBmgE,GAASngE,EAAI,ECf1B,IAAIlyB,GAAY4vF,GAAW,UACvB0C,GAAgB,eACftyF,GAAUsyF,EAAa,IACxBtyF,GAAUsyF,EAAa,EAAI,UAAY,CAAE,OAAO,IAAK,GCLzD,IAAIC,GAAW,OAAO,UAAU,SACzB,SAASC,GAAUhmG,EAAO,CAC7B,OAAOimG,GAAgBjmG,CAAK,CAChC,CACA,SAASimG,GAAgBpoF,EAAKqoF,EAAM,CAChC,OAAQH,GAAS,KAAKloF,CAAG,EAAC,CACtB,IAAK,iBAAkB,CAEnB,GADAqoF,EAAOA,GAAQ,IAAI,IACfA,EAAK,IAAIroF,CAAG,EACZ,OAAOqoF,EAAK,IAAIroF,CAAG,EACvB,IAAIsoF,EAAStoF,EAAI,MAAM,CAAC,EACxB,OAAAqoF,EAAK,IAAIroF,EAAKsoF,CAAM,EACpBA,EAAO,QAAQ,SAAUnvF,EAAO5X,EAAG,CAC/B+mG,EAAO/mG,CAAC,EAAI6mG,GAAgBjvF,EAAOkvF,CAAI,CACvD,CAAa,EACMC,CACV,CACD,IAAK,kBAAmB,CAEpB,GADAD,EAAOA,GAAQ,IAAI,IACfA,EAAK,IAAIroF,CAAG,EACZ,OAAOqoF,EAAK,IAAIroF,CAAG,EACvB,IAAIuoF,EAAS,OAAO,OAAO,OAAO,eAAevoF,CAAG,CAAC,EACrD,OAAAqoF,EAAK,IAAIroF,EAAKuoF,CAAM,EACpB,OAAO,KAAKvoF,CAAG,EAAE,QAAQ,SAAUpe,EAAK,CACpC2mG,EAAO3mG,CAAG,EAAIwmG,GAAgBpoF,EAAIpe,CAAG,EAAGymG,CAAI,CAC5D,CAAa,EACME,CACV,CACD,QACI,OAAOvoF,CACd,CACL,CC7BA,SAASwoF,GAAWrmG,EAAO,CACvB,IAAIsmG,EAAU,IAAI,IAAI,CAACtmG,CAAK,CAAC,EAC7B,OAAAsmG,EAAQ,QAAQ,SAAU/yF,EAAK,CACvB4nF,GAAgB5nF,CAAG,GAAKgzF,GAAchzF,CAAG,IAAMA,GAC/C,OAAO,oBAAoBA,CAAG,EAAE,QAAQ,SAAU9N,EAAM,CAChD01F,GAAgB5nF,EAAI9N,CAAI,CAAC,GACzB6gG,EAAQ,IAAI/yF,EAAI9N,CAAI,CAAC,CACzC,CAAa,CAEb,CAAK,EACMzF,CACX,CACA,SAASumG,GAAchzF,EAAK,CACxB,GAAI,SAAW,CAAC,OAAO,SAASA,CAAG,EAC/B,GAAI,CACA,OAAO,OAAOA,CAAG,CACpB,OACMn9B,EAAG,CACN,GAAIA,aAAa,UACb,OAAO,KACX,MAAMA,CACT,CAEL,OAAOm9B,CACX,CACO,SAASizF,GAAgBjzF,EAAK,CACjC,OAAI,SACA8yF,GAAW9yF,CAAG,EAEXA,CACX,CChCO,SAASkzF,GAAuBC,EAAW9b,EAAQ+b,EAAU,CAChE,IAAIC,EAAsB,GAC1BF,EAAU,QAAQ,SAAUG,EAAK,CAAE,OAAOA,EAAIjc,CAAM,GAAKgc,EAAoB,KAAKC,CAAG,CAAI,GACzFD,EAAoB,QAAQ,SAAUC,EAAK,CAAE,OAAOA,EAAIjc,CAAM,EAAE+b,CAAQ,CAAE,CAAE,CAChF,CCHO,SAASG,GAASxB,EAAYyB,EAAOC,EAAS,CACjD,OAAO,IAAI5D,GAAW,SAAUY,EAAU,CACtC,IAAI3wB,EAAO2wB,EAAS,KAAMhjG,EAAQgjG,EAAS,MAAOiD,EAAWjD,EAAS,SAClEkD,EAAsB,EACtBC,EAAY,GACZC,EAAe,CACf,KAAM,SAAUxkG,EAAU,CACtB,OAAO,IAAI,QAAQ,SAAU3C,EAAS,CAAE,OAAOA,EAAQ2C,EAAQ,CAAE,CAAE,CAAE,CACxE,CACb,EACQ,SAASykG,EAAaC,EAAUC,EAAU,CACtC,OAAID,EACO,SAAU/iG,EAAK,CAClB,EAAE2iG,EACF,IAAIM,EAAO,UAAY,CAAE,OAAOF,EAAS/iG,CAAG,CAAE,EAC9C6iG,EAAeA,EAAa,KAAKI,EAAMA,CAAI,EAAE,KAAK,SAAUlnG,EAAQ,CAChE,EAAE4mG,EACF7zB,GAAQA,EAAK,KAAK2wB,EAAU1jG,CAAM,EAC9B6mG,GACAM,EAAQ,SAAQ,CAEvB,EAAE,SAAUzmG,EAAO,CAChB,OAAEkmG,EACIlmG,CAC9B,CAAqB,EAAE,MAAM,SAAU0mG,EAAQ,CACvB1mG,GAASA,EAAM,KAAKgjG,EAAU0D,CAAM,CAC5D,CAAqB,CACrB,EAGuB,SAAUnjG,EAAK,CAAE,OAAOgjG,GAAYA,EAAS,KAAKvD,EAAUz/F,CAAG,EAE7E,CACD,IAAIkjG,EAAU,CACV,KAAMJ,EAAaN,EAAO1zB,CAAI,EAC9B,MAAOg0B,EAAaL,EAAShmG,CAAK,EAClC,SAAU,UAAY,CAClBmmG,EAAY,GACPD,GACDD,GAAYA,EAAS,KAAKjD,CAAQ,CAEzC,CACb,EACY2D,EAAMrC,EAAW,UAAUmC,CAAO,EACtC,OAAO,UAAY,CAAE,OAAOE,EAAI,YAAW,CAAG,CACtD,CAAK,CACL,CC9CO,IAAIC,GAAgB,OAAO,SAAY,YAC1C/c,GAAM,UAAY,CAAE,OAAO,UAAU,OAAQ,CAAE,IAAM,cAC9Cgd,GAAgB,OAAO,SAAY,WACnCC,GAAe,OAAO,QAAW,YACxC,OAAO,OAAO,KAAQ,WACfC,GAA4BD,IAAgB,OAAO,cACnD77F,GAAY,OAAO4+E,GAAM,UAAY,CAAE,OAAO,OAAO,SAAS,cAAgB,GAAM,WAC3Fmd,GAAand,GAAM,UAAY,CAAE,OAAO,UAAU,UAAU,QAAQ,OAAO,GAAK,CAAI,IAAK,GAClFod,GAAqBh8F,IAAa,CAAC+7F,GCPvC,SAASE,GAAsBC,EAAU,CAC5C,SAASC,EAAI3oG,EAAK,CACd,OAAO,eAAe0oG,EAAU1oG,EAAK,CAAE,MAAO2jG,EAAU,CAAE,CAC7D,CACD,OAAI0E,IAAgB,OAAO,SACvBM,EAAI,OAAO,OAAO,EAEtBA,EAAI,WAAW,EACRD,CACX,CCPA,SAASE,GAAcroG,EAAO,CAC1B,OAAOA,GAAS,OAAOA,EAAM,MAAS,UAC1C,CACA,IAAIsoG,GAAW,SAAUh2F,EAAQ,CAC7BtT,GAAUspG,EAASh2F,CAAM,EACzB,SAASg2F,EAAQhH,EAAS,CACtB,IAAIz+F,EAAQyP,EAAO,KAAK,KAAM,SAAU0xF,EAAU,CAC9C,OAAAnhG,EAAM,YAAYmhG,CAAQ,EACnB,UAAY,CAAE,OAAOnhG,EAAM,eAAemhG,CAAQ,CAAE,CAC9D,IAAK,KACN,OAAAnhG,EAAM,UAAY,IAAI,IACtBA,EAAM,QAAU,IAAI,QAAQ,SAAU5C,EAASC,EAAQ,CACnD2C,EAAM,QAAU5C,EAChB4C,EAAM,OAAS3C,CAC3B,CAAS,EACD2C,EAAM,SAAW,CACb,KAAM,SAAUvC,EAAQ,CAChBuC,EAAM,MAAQ,OACdA,EAAM,OAAS,CAAC,OAAQvC,CAAM,EAC9BuC,EAAM,OAAO,OAAQvC,CAAM,EAC3BmmG,GAAuB5jG,EAAM,UAAW,OAAQvC,CAAM,EAE7D,EACD,MAAO,SAAUU,EAAO,CACpB,IAAI2mG,EAAM9kG,EAAM,IACZ8kG,IAAQ,OACJA,GACA,WAAW,UAAY,CAAE,OAAOA,EAAI,YAAa,CAAG,GACxD9kG,EAAM,IAAM,KACZA,EAAM,OAAS,CAAC,QAAS7B,CAAK,EAC9B6B,EAAM,OAAO7B,CAAK,EAClB6B,EAAM,OAAO,QAAS7B,CAAK,EAC3BylG,GAAuB5jG,EAAM,UAAW,QAAS7B,CAAK,EAE7D,EACD,SAAU,UAAY,CAClB,IAAIoB,EAAKS,EAAO8kG,EAAMvlG,EAAG,IAAKC,EAAKD,EAAG,QAASk/F,EAAUj/F,IAAO,OAAS,GAAKA,EAC9E,GAAIslG,IAAQ,KAAM,CACd,IAAI3nG,EAAQshG,EAAQ,QACfthG,EAcIqoG,GAAcroG,CAAK,EACxBA,EAAM,KAAK,SAAU6mG,EAAK,CAAE,OAAOhkG,EAAM,IAAMgkG,EAAI,UAAUhkG,EAAM,QAAQ,CAAI,GAG/EA,EAAM,IAAM7C,EAAM,UAAU6C,EAAM,QAAQ,GAjBtC8kG,GACA,WAAW,UAAY,CAAE,OAAOA,EAAI,YAAa,CAAG,GACxD9kG,EAAM,IAAM,KACRA,EAAM,QACNA,EAAM,OAAO,CAAC,IAAM,OACpBA,EAAM,QAAQA,EAAM,OAAO,CAAC,CAAC,EAG7BA,EAAM,QAAO,EAEjBA,EAAM,OAAO,UAAU,EACvB4jG,GAAuB5jG,EAAM,UAAW,UAAU,EAQzD,CACJ,CACb,EACQA,EAAM,oBAAsB,IAAI,IAChCA,EAAM,OAAS,SAAU0lG,EAAQ,CAC7B1lG,EAAM,OAAO0lG,CAAM,EACnB1lG,EAAM,QAAU,GAChBA,EAAM,SAAS,UAC3B,EACQA,EAAM,QAAQ,MAAM,SAAUpC,EAAG,CAAG,GAChC,OAAO6gG,GAAY,aACnBA,EAAU,CAAC,IAAI8B,GAAW9B,CAAO,CAAC,GAElC+G,GAAc/G,CAAO,EACrBA,EAAQ,KAAK,SAAUkH,EAAU,CAAE,OAAO3lG,EAAM,MAAM2lG,CAAQ,CAAE,EAAI3lG,EAAM,SAAS,KAAK,EAGxFA,EAAM,MAAMy+F,CAAO,EAEhBz+F,CACV,CACD,OAAAylG,EAAQ,UAAU,MAAQ,SAAUhH,EAAS,CACrC,KAAK,MAAQ,SAEjB,KAAK,QAAU,MAAM,KAAKA,CAAO,EACjC,KAAK,SAAS,WACtB,EACIgH,EAAQ,UAAU,mBAAqB,SAAUtE,EAAU,CACvD,GAAI,KAAK,OAAQ,CACb,IAAIyE,EAAc,KAAK,OAAO,CAAC,EAC3B7d,EAASoZ,EAASyE,CAAW,EAC7B7d,GACAA,EAAO,KAAKoZ,EAAU,KAAK,OAAO,CAAC,CAAC,EAEpC,KAAK,MAAQ,MACbyE,IAAgB,QAChBzE,EAAS,UACTA,EAAS,SAAQ,CAExB,CACT,EACIsE,EAAQ,UAAU,YAAc,SAAUtE,EAAU,CAC3C,KAAK,UAAU,IAAIA,CAAQ,IAC5B,KAAK,mBAAmBA,CAAQ,EAChC,KAAK,UAAU,IAAIA,CAAQ,EAEvC,EACIsE,EAAQ,UAAU,eAAiB,SAAUtE,EAAU,CAC/C,KAAK,UAAU,OAAOA,CAAQ,GAC9B,KAAK,UAAU,KAAO,GACtB,KAAK,SAAS,UAE1B,EACIsE,EAAQ,UAAU,OAAS,SAAU1d,EAAQrmF,EAAK,CAC9C,IAAImkG,EAAsB,KAAK,oBAC3BA,EAAoB,OACpB,KAAK,oBAAsB,IAAI,IAC/BA,EAAoB,QAAQ,SAAU9yB,EAAU,CAAE,OAAOA,EAASgV,EAAQrmF,CAAG,CAAE,CAAE,EAE7F,EACI+jG,EAAQ,UAAU,WAAa,SAAU1lG,EAAU,CAC/C,IAAI+lG,EAAS,GACb,KAAK,oBAAoB,IAAI,SAAU/d,EAAQrmF,EAAK,CAC3CokG,IACDA,EAAS,GACT/lG,EAASgoF,EAAQrmF,CAAG,EAEpC,CAAS,CACT,EACW+jG,CACX,EAAElF,EAAU,EAEZ8E,GAAsBI,EAAO,ECpItB,SAASM,GAAkC5oG,EAAO,CACrD,MAAO,gBAAiBA,CAC5B,CACO,SAAS6oG,GAA8B7oG,EAAO,CACjD,MAAO,YAAaA,GAAS,SAAUA,CAC3C,CACO,SAAS8oG,GAAuB9oG,EAAO,CAC1C,OAAQ4oG,GAAkC5oG,CAAK,GAC3C6oG,GAA8B7oG,CAAK,CAC3C,CACO,SAAS+oG,GAAsB/oG,EAAO,CACzC,OAAOm7F,GAAgBn7F,CAAK,GAAK,YAAaA,CAClD,CACO,SAASgpG,GAAqBC,EAAY3oG,EAAQ,CACrD,IAAI4oG,EAAaD,EACbzH,EAAS,IAAIC,GACjB,OAAImH,GAAkCtoG,CAAM,GACxCm+F,GAAgBn+F,EAAO,WAAW,GAClCA,EAAO,YAAY,QAAQ,SAAU8B,EAAI,CAErC,QADIkU,EAAOlU,EAAG,KAAM6Y,EAAO7Y,EAAG,KACrBhD,EAAI6b,EAAK,OAAS,EAAG7b,GAAK,EAAG,EAAEA,EAAG,CACvC,IAAIK,EAAMwb,EAAK7b,CAAC,EACZ+pG,EAAe,CAAC,MAAM,CAAC1pG,CAAG,EAC1BqQ,EAAWq5F,EAAe,CAAE,EAAG,GACnCr5F,EAASrQ,CAAG,EAAI6W,EAChBA,EAAOxG,CACV,CACDo5F,EAAa1H,EAAO,MAAM0H,EAAY5yF,CAAI,CACtD,CAAS,EAEE4yF,CACX,CChCO,SAASE,GAAsB9oG,EAAQ,CAC1C,IAAIo+E,EAAS2qB,GAA2B/oG,CAAM,EAC9C,OAAOm+F,GAAgB/f,CAAM,CACjC,CACO,SAAS2qB,GAA2B/oG,EAAQ,CAC/C,IAAIgpG,EAAgB7K,GAAgBn+F,EAAO,MAAM,EAC3CA,EAAO,OAAO,MAAM,CAAC,EACrB,GACN,OAAIsoG,GAAkCtoG,CAAM,GACxCm+F,GAAgBn+F,EAAO,WAAW,GAClCA,EAAO,YAAY,QAAQ,SAAUipG,EAAmB,CAChDA,EAAkB,QAClBD,EAAc,KAAK,MAAMA,EAAeC,EAAkB,MAAM,CAEhF,CAAS,EAEED,CACX,CCnBO,SAASE,IAAU,CAEtB,QADIrlG,EAAU,GACLF,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCE,EAAQF,CAAE,EAAI,UAAUA,CAAE,EAE9B,IAAI3D,EAAS,OAAO,OAAO,IAAI,EAC/B,OAAA6D,EAAQ,QAAQ,SAAUoP,EAAK,CACtBA,GAEL,OAAO,KAAKA,CAAG,EAAE,QAAQ,SAAU9T,EAAK,CACpC,IAAIO,EAAQuT,EAAI9T,CAAG,EACfO,IAAU,SACVM,EAAOb,CAAG,EAAIO,EAE9B,CAAS,CACT,CAAK,EACMM,CACX,CCjBA,IAAImpG,GAAe,IAAI,IAChB,SAASC,GAAa1mG,EAAQ,CACjC,IAAIgG,EAAQygG,GAAa,IAAIzmG,CAAM,GAAK,EACxC,OAAAymG,GAAa,IAAIzmG,EAAQgG,EAAQ,CAAC,EAC3B,GAAG,OAAOhG,EAAQ,GAAG,EAAE,OAAOgG,EAAO,GAAG,EAAE,OAAO,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAC/F,CCJO,SAAS2gG,GAAoB3pG,EAAO,CACvC,IAAI4pG,EAAUF,GAAa,qBAAqB,EAChD,OAAO,KAAK,UAAU1pG,EAAO,SAAUP,EAAKO,EAAO,CAC/C,OAAOA,IAAU,OAAS4pG,EAAU5pG,CAC5C,CAAK,EAAE,MAAM,KAAK,UAAU4pG,CAAO,CAAC,EAAE,KAAK,aAAa,CACxD,CCJO,SAASC,GAAaC,EAAUzjG,EAAS,CAC5C,OAAOmjG,GAAQM,EAAUzjG,EAASA,EAAQ,WAAa,CACnD,UAAWnH,EAASA,EAAS,GAAK4qG,GAAYA,EAAS,SAAS,EAAIzjG,EAAQ,SAAS,CAC7F,CAAK,CACL,CCLO,SAAS0jG,GAAUC,EAAY,CAClC,OAAO,IAAI5G,GAAW,SAAUY,EAAU,CACtCA,EAAS,MAAMgG,CAAU,CACjC,CAAK,CACL,CCLO,IAAIC,GAAmB,SAAUC,EAAU5pG,EAAQuR,EAAS,CAC/D,IAAI7Q,EAAQ,IAAI,MAAM6Q,CAAO,EAC7B,MAAA7Q,EAAM,KAAO,cACbA,EAAM,SAAWkpG,EACjBlpG,EAAM,WAAakpG,EAAS,OAC5BlpG,EAAM,OAASV,EACTU,CACV,ECNO,SAASmpG,GAAkBlW,EAAW,CAQzC,QAPImW,EAAmB,CACnB,QACA,gBACA,YACA,aACA,SACR,EACanmG,EAAK,EAAG7B,EAAK,OAAO,KAAK6xF,CAAS,EAAGhwF,EAAK7B,EAAG,OAAQ6B,IAAM,CAChE,IAAIxE,EAAM2C,EAAG6B,CAAE,EACf,GAAImmG,EAAiB,QAAQ3qG,CAAG,EAAI,EAChC,MAAM,QAAU,IAAI+qF,GAAe,qBAAqB,OAAO/qF,CAAG,CAAC,EAAI,IAAI+qF,GAAe,EAAE,CAEnG,CACD,OAAOyJ,CACX,CCfO,SAASoW,GAAgBC,EAAUrW,EAAW,CACjD,IAAIzhF,EAAUtT,EAAS,CAAE,EAAEorG,CAAQ,EAC/BC,EAAa,SAAUl3B,EAAM,CACzB,OAAOA,GAAS,WAChB7gE,EAAUtT,EAASA,EAAS,CAAE,EAAEsT,CAAO,EAAG6gE,EAAK7gE,CAAO,CAAC,EAGvDA,EAAUtT,EAASA,EAAS,CAAE,EAAEsT,CAAO,EAAG6gE,CAAI,CAE1D,EACQm3B,EAAa,UAAY,CAAE,OAAQtrG,EAAS,GAAIsT,CAAO,GAC3D,cAAO,eAAeyhF,EAAW,aAAc,CAC3C,WAAY,GACZ,MAAOsW,CACf,CAAK,EACD,OAAO,eAAetW,EAAW,aAAc,CAC3C,WAAY,GACZ,MAAOuW,CACf,CAAK,EACMvW,CACX,CCpBO,SAASwW,GAAmBxW,EAAW,CAC1C,IAAIyW,EAAuB,CACvB,UAAWzW,EAAU,WAAa,CAAE,EACpC,WAAYA,EAAU,YAAc,CAAE,EACtC,cAAeA,EAAU,cACzB,MAAOA,EAAU,KACzB,EACI,OAAKyW,EAAqB,gBACtBA,EAAqB,cACjB,OAAOA,EAAqB,OAAU,SAChC9M,GAAiB8M,EAAqB,KAAK,GAAK,OAChD,IAEPA,CACX,CCXA,SAASC,GAAYhqG,EAAIiqG,EAAS,CAC9B,OAAQA,EAAUA,EAAQjqG,CAAE,EAAIyiG,GAAW,GAAE,CACjD,CACA,SAASyH,GAAOpD,EAAS,CACrB,OAAO,OAAOA,GAAY,WAAa,IAAIqD,GAAWrD,CAAO,EAAIA,CACrE,CACA,SAASsD,GAAcC,EAAM,CACzB,OAAOA,EAAK,QAAQ,QAAU,CAClC,CACA,IAAIC,GAAa,SAAU34F,EAAQ,CAC/BtT,GAAUisG,EAAW34F,CAAM,EAC3B,SAAS24F,EAAUp5F,EAASm5F,EAAM,CAC9B,IAAInoG,EAAQyP,EAAO,KAAK,KAAMT,CAAO,GAAK,KAC1C,OAAAhP,EAAM,KAAOmoG,EACNnoG,CACV,CACD,OAAOooG,CACX,EAAE,KAAK,EACHH,GAAc,UAAY,CAC1B,SAASA,EAAWI,EAAS,CACrBA,IACA,KAAK,QAAUA,EACtB,CACD,OAAAJ,EAAW,MAAQ,UAAY,CAC3B,OAAO,IAAIA,EAAW,UAAY,CAAE,OAAO1H,GAAW,GAAE,CAAG,CAAE,CACrE,EACI0H,EAAW,KAAO,SAAUK,EAAO,CAC/B,OAAIA,EAAM,SAAW,EACVL,EAAW,QACfK,EAAM,IAAIN,EAAM,EAAE,OAAO,SAAUn1H,EAAGC,EAAG,CAAE,OAAOD,EAAE,OAAOC,CAAC,CAAI,EAC/E,EACIm1H,EAAW,MAAQ,SAAU/L,EAAM/pF,EAAMC,EAAO,CAC5C,IAAIm2F,EAAWP,GAAO71F,CAAI,EACtBq2F,EAAYR,GAAO51F,GAAS,IAAI61F,EAAWH,EAAW,CAAC,EAC3D,OAAII,GAAcK,CAAQ,GAAKL,GAAcM,CAAS,EAC3C,IAAIP,EAAW,SAAU7W,EAAW,CACvC,OAAO8K,EAAK9K,CAAS,EACfmX,EAAS,QAAQnX,CAAS,GAAKmP,GAAW,GAAI,EAC9CiI,EAAU,QAAQpX,CAAS,GAAKmP,GAAW,GAAE,CACnE,CAAa,EAGM,IAAI0H,EAAW,SAAU7W,EAAW2W,EAAS,CAChD,OAAO7L,EAAK9K,CAAS,EACfmX,EAAS,QAAQnX,EAAW2W,CAAO,GAAKxH,GAAW,GAAI,EACvDiI,EAAU,QAAQpX,EAAW2W,CAAO,GAAKxH,GAAW,IAC1E,CAAa,CAEb,EACI0H,EAAW,QAAU,SAAUE,EAAM/W,EAAW,CAC5C,OAAQ+W,EAAK,QAAQX,GAAgBpW,EAAU,QAASwW,GAAmBN,GAAkBlW,CAAS,CAAC,CAAC,CAAC,GAAKmP,GAAW,GAAE,CACnI,EACI0H,EAAW,OAAS,SAAUhzB,EAAOwzB,EAAQ,CACzC,IAAIC,EAAYV,GAAO/yB,CAAK,EAC5B,GAAIizB,GAAcQ,CAAS,EACvB,gBAAW32B,GAAU,KAAK,IAAIq2B,GAAU,0EAA2EM,CAAS,CAAC,EACtHA,EAEX,IAAIC,EAAWX,GAAOS,CAAM,EAC5B,OAAIP,GAAcS,CAAQ,EACf,IAAIV,EAAW,SAAU7W,EAAW,CACvC,OAAOsX,EAAU,QAAQtX,EAAW,SAAUtzF,EAAI,CAAE,OAAO6qG,EAAS,QAAQ7qG,CAAE,GAAKyiG,GAAW,GAAI,CAAG,IAAKA,GAAW,IACrI,CAAa,EAGM,IAAI0H,EAAW,SAAU7W,EAAW2W,EAAS,CAChD,OAAQW,EAAU,QAAQtX,EAAW,SAAUtzF,EAAI,CAC/C,OAAO6qG,EAAS,QAAQ7qG,EAAIiqG,CAAO,GAAKxH,GAAW,IACvE,CAAiB,GAAKA,GAAW,IACjC,CAAa,CAEb,EACI0H,EAAW,UAAU,MAAQ,SAAU/L,EAAM/pF,EAAMC,EAAO,CACtD,OAAO,KAAK,OAAO61F,EAAW,MAAM/L,EAAM/pF,EAAMC,GAAS,IAAI61F,EAAWH,EAAW,CAAC,CAAC,CAC7F,EACIG,EAAW,UAAU,OAAS,SAAUz3B,EAAM,CAC1C,OAAOy3B,EAAW,OAAO,KAAMz3B,CAAI,CAC3C,EACIy3B,EAAW,UAAU,QAAU,SAAU7W,EAAW2W,EAAS,CACzD,MAAM,QAAU,IAAIpgB,GAAe,4BAA4B,EAAI,IAAIA,GAAe,EAAE,CAChG,EACIsgB,EAAW,UAAU,QAAU,SAAU9pG,EAAOgjG,EAAU,CACtD,GAAIA,GAAYA,EAAS,MACrB,OAAAA,EAAS,MAAMhjG,CAAK,EACb,GAEX,MAAMA,CACd,EACI8pG,EAAW,UAAU,WAAa,SAAU9mE,EAAI,CAC5C,YAAK,QAAUA,EACR,IACf,EACW8mE,CACX,IChGW3pG,GAAO2pG,GAAW,KCAlBW,GAAUX,GAAW,QCDrBY,GAAU,SCCd,SAASC,GAAe3rG,EAAO,CAClC,MAAO,CAAC,CAACA,EAAM,IACnB,CACO,SAAS4rG,GAAiB5rG,EAAO,CACpC,MAAO,CAAC,CAACA,EAAM,SACnB,CACO,SAAS6rG,GAAwB7rG,EAAO,CAC3C,MAAO,CAAC,EAAE+nG,IACN/nG,EAAM,OAAO,aAAa,EAClC,CACO,SAAS8rG,GAAiB9rG,EAAO,CACpC,MAAO,CAAC,CAACA,EAAM,MACnB,CACO,SAAS+rG,GAAO/rG,EAAO,CAC1B,MAAO,CAAC,CAACA,EAAM,WACnB,CACO,SAASgsG,GAAqBhsG,EAAO,CACxC,MAAO,CAAC,CAACA,EAAM,IACnB,CCnBe,SAASisG,GAAc7qF,EAAQ,CAC1C,IAAIhf,EACA8pG,EAAW9qF,EAAO,OAAO,aAAa,EAAC,EAC3C,OAAOhf,EAAK,CACJ,KAAM,UAAY,CACd,OAAO8pG,EAAS,MACnB,CACJ,EACD9pG,EAAG,OAAO,aAAa,EAAI,UAAY,CACnC,OAAO,IACV,EACDA,CACR,CCXe,SAAS+pG,GAAmBC,EAAQ,CAC/C,IAAI1I,EAAU,KACV1iG,EAAQ,KACRyjG,EAAO,GACPnuF,EAAO,GACP+1F,EAAU,GACd,SAASC,EAAOC,EAAO,CACnB,GAAI,CAAAvrG,EAEJ,IAAIqrG,EAAQ,OAAQ,CAChB,IAAIG,EAAaH,EAAQ,QACzB,GAAI,MAAM,QAAQG,CAAU,GAAKA,EAAW,CAAC,EACzC,OAAOA,EAAW,CAAC,EAAE,CAAE,MAAOD,EAAO,KAAM,EAAK,CAAE,CAEzD,CACDj2F,EAAK,KAAKi2F,CAAK,EAClB,CACD,SAAShgG,EAAQjO,EAAK,CAClB0C,EAAQ1C,EACR,IAAI07F,EAAMqS,EAAQ,QAClBrS,EAAI,QAAQ,SAAUyS,EAAM,CACxBA,EAAK,CAAC,EAAEnuG,CAAG,CACvB,CAAS,EACD,CAAColG,GAAWA,GACf,CACD,SAASgJ,GAAQ,CACbjI,EAAO,GACP,IAAIzK,EAAMqS,EAAQ,QAClBrS,EAAI,QAAQ,SAAUyS,EAAM,CACxBA,EAAK,CAAC,EAAE,CAAE,MAAO,OAAW,KAAM,EAAI,CAAE,CACpD,CAAS,EACD,CAAC/I,GAAWA,GACf,CACDA,EAAU,UAAY,CAClBA,EAAU,KACV0I,EAAO,eAAe,OAAQE,CAAM,EACpCF,EAAO,eAAe,QAAS7/F,CAAO,EACtC6/F,EAAO,eAAe,MAAOM,CAAK,EAClCN,EAAO,eAAe,SAAUM,CAAK,EACrCN,EAAO,eAAe,QAASM,CAAK,CAC5C,EACIN,EAAO,GAAG,OAAQE,CAAM,EACxBF,EAAO,GAAG,QAAS7/F,CAAO,EAC1B6/F,EAAO,GAAG,MAAOM,CAAK,EACtBN,EAAO,GAAG,SAAUM,CAAK,EACzBN,EAAO,GAAG,QAASM,CAAK,EACxB,SAASC,GAAU,CACf,OAAO,IAAI,QAAQ,SAAU1sG,EAASC,EAAQ,CAC1C,GAAIc,EACA,OAAOd,EAAOc,CAAK,EACvB,GAAIsV,EAAK,OACL,OAAOrW,EAAQ,CAAE,MAAOqW,EAAK,MAAK,EAAI,KAAM,EAAK,CAAE,EACvD,GAAImuF,EACA,OAAOxkG,EAAQ,CAAE,MAAO,OAAW,KAAM,EAAI,CAAE,EACnDosG,EAAQ,KAAK,CAACpsG,EAASC,CAAM,CAAC,CAC1C,CAAS,CACJ,CACD,IAAIgsG,EAAW,CACX,KAAM,UAAY,CACd,OAAOS,EAAO,CACjB,CACT,EACI,OAAI5E,KACAmE,EAAS,OAAO,aAAa,EAAI,UAAY,CACzC,OAAO,IACnB,GAEWA,CACX,CCpEe,SAASU,GAAgBC,EAAS,CAC7C,IAAIC,EAAW,GACXZ,EAAW,CACX,KAAM,UAAY,CACd,OAAIY,EACO,QAAQ,QAAQ,CACnB,MAAO,OACP,KAAM,EAC1B,CAAiB,GACLA,EAAW,GACJ,IAAI,QAAQ,SAAU7sG,EAASC,EAAQ,CAC1C2sG,EACK,KAAK,SAAU7sG,EAAO,CACvBC,EAAQ,CAAE,MAAOD,EAAO,KAAM,EAAO,EACzD,CAAiB,EACI,MAAME,CAAM,CACjC,CAAa,EACJ,CACT,EACI,OAAI6nG,KACAmE,EAAS,OAAO,aAAa,EAAI,UAAY,CACzC,OAAO,IACnB,GAEWA,CACX,CCzBe,SAASa,GAAeC,EAAQ,CAC3C,IAAId,EAAW,CACX,KAAM,UAAY,CACd,OAAOc,EAAO,MACjB,CACT,EACI,OAAIjF,KACAmE,EAAS,OAAO,aAAa,EAAI,UAAY,CACzC,OAAO,IACnB,GAEWA,CACX,CCRO,SAASe,GAAiB/C,EAAU,CACvC,IAAI1pG,EAAO0pG,EAGX,GAFIyB,GAAezB,CAAQ,IACvB1pG,EAAO0pG,EAAS,MAChB2B,GAAwBrrG,CAAI,EAC5B,OAAOyrG,GAAczrG,CAAI,EAC7B,GAAIorG,GAAiBprG,CAAI,EACrB,OAAOusG,GAAevsG,EAAK,UAAS,CAAE,EAC1C,GAAIsrG,GAAiBtrG,CAAI,EACrB,OAAOusG,GAAevsG,EAAK,OAAM,EAAG,UAAW,GAEnD,GAAIurG,GAAOvrG,CAAI,EACX,OAAOosG,GAAgBpsG,EAAK,YAAW,CAAE,EAC7C,GAAIwrG,GAAqBxrG,CAAI,EACzB,OAAO2rG,GAAmB3rG,CAAI,EAClC,MAAM,IAAI,MAAM,4EAA4E,CAChG,CClBO,IAAI0sG,GAAyB,OAAM,EACnC,SAASC,GAA+B7sG,EAAQ,CACnD,OAAIA,EAAO,WACA,MAAM,QAAQA,EAAO,WAAW4sG,EAAsB,CAAC,EAE3D,EACX,CACO,SAASE,GAAc9uG,EAAK,CAC/B,OAAOA,EAAI,eAAe,eAAe,CAC7C,CACA,IAAI+uG,GAAuB,SAAU/uG,EAAK,CACtC,IAAIogF,EAASz9E,GAAcA,GAAcA,GAAc,GAAI3C,EAAI,cAAe,EAAI,EAAGA,EAAI,aAAc,EAAI,EAAGA,EAAI,eAAgB,EAAI,EACtI,OAAIA,EAAI,cACJogF,EAAO,KAAKpgF,EAAI,YAAY,EACzBogF,EACF,IAAI,SAAUpgF,EAAK,CAAE,OAAO68F,GAAgB78F,CAAG,GAAKA,EAAI,SAAW,2BAA6B,EAChG,KAAK;AAAA,CAAI,CAClB,EACIgvG,GAAe,SAAUh7F,EAAQ,CACjCtT,GAAUsuG,EAAah7F,CAAM,EAC7B,SAASg7F,EAAYlrG,EAAI,CACrB,IAAIknG,EAAgBlnG,EAAG,cAAemrG,EAAiBnrG,EAAG,eAAgBorG,EAAeprG,EAAG,aAAcqrG,EAAerrG,EAAG,aAAcuhE,EAAevhE,EAAG,aAAcsrG,EAAYtrG,EAAG,UACrLS,EAAQyP,EAAO,KAAK,KAAMqxD,CAAY,GAAK,KAC/C,OAAA9gE,EAAM,KAAO,cACbA,EAAM,cAAgBymG,GAAiB,GACvCzmG,EAAM,eAAiB0qG,GAAkB,GACzC1qG,EAAM,aAAe2qG,GAAgB,GACrC3qG,EAAM,aAAe4qG,GAAgB,KACrC5qG,EAAM,QAAU8gE,GAAgB0pC,GAAqBxqG,CAAK,EAC1DA,EAAM,UAAY6qG,EAClB7qG,EAAM,UAAYyqG,EAAY,UACvBzqG,CACV,CACD,OAAOyqG,CACX,EAAE,KAAK,EChCHlM,GAAiB,OAAO,UAAU,eAC/B,SAASuM,GAAkBzD,EAAUlG,EAAU,CAClD,IAAI5hG,EAAIC,EAAIC,EAAIC,EAAIC,EACpB,OAAO7C,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAIiuG,EAASC,EAAaxmB,EAAWymB,EAAaC,EAAUh2E,EAAQm0E,EAAU8B,EAASvrG,EAAIzC,EAAOykG,EAAM8H,EAAO0B,EAAYp7G,EAAIgf,EAASzS,EAAG8uG,EAASC,EAAe3tG,EAAMF,EAAQ+yE,EAC7Kp9C,EAAIC,EACR,OAAO31B,GAAY,KAAM,SAAUm0D,EAAI,CACnC,OAAQA,EAAG,MAAK,CACZ,IAAK,GACD,GAAI,cAAgB,OAChB,MAAM,IAAI,MAAM,2EAA2E,EAE/Fk5C,EAAU,IAAI,YAAY,OAAO,EACjCC,GAAezrG,EAAK8nG,EAAS,WAAa,MAAQ9nG,IAAO,OAAS,OAASA,EAAG,IAAI,cAAc,EAChGilF,EAAY,YACZymB,EAAeD,GAAgB,MAA0CA,EAAY,SAASxmB,CAAS,EACjGwmB,GAAgB,KAAiC,OAASA,EAAY,WAAWA,GAAgB,KAAiC,OAASA,EAAY,QAAQxmB,CAAS,GAAKA,EAAU,MAAM,EAAE,QAAQ,QAAS,EAAE,EAAE,QAAQ,WAAY,EAAE,EAAE,KAAM,EAClP,IACN0mB,EAAW;AAAA,IAAS,OAAOD,CAAW,EACtC/1E,EAAS,GACTm0E,EAAWe,GAAiB/C,CAAQ,EACpC8D,EAAU,GACVt5C,EAAG,MAAQ,EACf,IAAK,GACD,OAAKs5C,EACE,CAAC,EAAG9B,EAAS,KAAM,GADL,CAAC,EAAG,CAAC,EAE9B,IAAK,GAOD,IANAzpG,EAAKiyD,EAAG,KAAI,EAAI10D,EAAQyC,EAAG,MAAOgiG,EAAOhiG,EAAG,KAC5C8pG,EAAQ,OAAOvsG,GAAU,SAAWA,EAAQ4tG,EAAQ,OAAO5tG,CAAK,EAChEiuG,EAAal2E,EAAO,OAASg2E,EAAS,OAAS,EAC/CC,EAAU,CAACvJ,EACX1sE,GAAUw0E,EACV15G,EAAKklC,EAAO,QAAQg2E,EAAUE,CAAU,EACjCp7G,EAAK,IAAI,CASZ,GARAgf,EAAU,OACVokB,EAAK,CACD8B,EAAO,MAAM,EAAGllC,CAAE,EAClBklC,EAAO,MAAMllC,EAAKk7G,EAAS,MAAM,CAC7D,EAA2Bl8F,EAAUokB,EAAG,CAAC,EAAG8B,EAAS9B,EAAG,CAAC,EACjC72B,EAAIyS,EAAQ,QAAQ;AAAA;AAAA,CAAU,EAC9Bq8F,EAAUE,GAAav8F,EAAQ,MAAM,EAAGzS,CAAC,CAAC,EAC1C+uG,EAAgBD,EAAQ,cAAc,EAClCC,GACAA,EAAc,YAAW,EAAG,QAAQ,kBAAkB,IAAM,GAC5D,MAAM,IAAI,MAAM,+DAA+D,EAGnF,GADA3tG,EAAOqR,EAAQ,MAAMzS,CAAC,EAClBoB,EACA,GAAI,CACAF,EAAS+tG,GAAcnE,EAAU1pG,CAAI,EACjC,OAAO,KAAKF,CAAM,EAAE,OAAS,GAC7B,SAAUA,GACV,gBAAiBA,GACjB,WAAYA,GACZ,YAAaA,EACTyoG,GAAsBzoG,CAAM,GAC5B+yE,EAAO,GACH,YAAa/yE,IACb+yE,EAAOn0E,EAAS,GAAIoB,EAAO,OAAO,GAElC,WAAYA,IACZ+yE,EAAOn0E,EAASA,EAAS,GAAIm0E,CAAI,EAAG,CAAE,WAAYn0E,EAASA,EAAS,CAAE,EAAG,eAAgBm0E,EAAOA,EAAK,WAAa,IAAI,GAAKn9C,EAAK,CAAE,EAAEA,EAAGg3E,EAAsB,EAAI5sG,EAAO,OAAQ41B,EAAE,CAAI,KAEzL7zB,EAAK2hG,EAAS,QAAU,MAAQ3hG,IAAO,QAAkBA,EAAG,KAAK2hG,EAAU3wB,CAAI,IAG/E/wE,EAAK0hG,EAAS,QAAU,MAAQ1hG,IAAO,QAAkBA,EAAG,KAAK0hG,EAAU1jG,CAAM,EAGjF,OAAO,KAAKA,CAAM,EAAE,SAAW,GACpC,YAAaA,GACb,CAACA,EAAO,WACPiC,EAAKyhG,EAAS,YAAc,MAAQzhG,IAAO,QAAkBA,EAAG,KAAKyhG,CAAQ,EAErF,OACM1lG,EAAK,CACRgwG,GAAYhwG,EAAK0lG,CAAQ,CAC5B,CAELnxG,EAAKklC,EAAO,QAAQg2E,CAAQ,CAC/B,CACD,MAAO,CAAC,EAAG,CAAC,EAChB,IAAK,GACD,OAACvrG,EAAKwhG,EAAS,YAAc,MAAQxhG,IAAO,QAAkBA,EAAG,KAAKwhG,CAAQ,EACvE,CAAC,CAAC,CAChB,CACb,CAAS,CACT,CAAK,CACL,CACO,SAASoK,GAAaG,EAAY,CACrC,IAAIC,EAAc,GAClB,OAAAD,EAAW,MAAM;AAAA,CAAI,EAAE,QAAQ,SAAUhoB,EAAM,CAC3C,IAAInnF,EAAImnF,EAAK,QAAQ,GAAG,EACxB,GAAInnF,EAAI,GAAI,CACR,IAAIkH,EAASigF,EAAK,MAAM,EAAGnnF,CAAC,EAAE,OAAO,cACjCY,EAAQumF,EAAK,MAAMnnF,EAAI,CAAC,EAAE,OAC9BovG,EAAYloG,CAAM,EAAItG,CACzB,CACT,CAAK,EACMwuG,CACX,CACO,SAASH,GAAcnE,EAAUuE,EAAU,CAC9C,GAAIvE,EAAS,QAAU,IAAK,CACxB,IAAIwE,EAAY,UAAY,CACxB,GAAI,CACA,OAAO,KAAK,MAAMD,CAAQ,CAC7B,MACW,CACR,OAAOA,CACV,CACb,EACQxE,GAAiBC,EAAUwE,IAAa,iDAAiD,OAAOxE,EAAS,MAAM,CAAC,CACnH,CACD,GAAI,CACA,OAAO,KAAK,MAAMuE,CAAQ,CAC7B,OACMnwG,EAAK,CACR,IAAIqwG,EAAarwG,EACjB,MAAAqwG,EAAW,KAAO,mBAClBA,EAAW,SAAWzE,EACtByE,EAAW,WAAazE,EAAS,OACjCyE,EAAW,SAAWF,EAChBE,CACT,CACL,CACO,SAASL,GAAYhwG,EAAK0lG,EAAU,CACvC,IAAI5hG,EAAIC,EACJ/D,EAAI,OAAS,eAEbA,EAAI,QAAUA,EAAI,OAAO,QAAUA,EAAI,OAAO,QAC7C8D,EAAK4hG,EAAS,QAAU,MAAQ5hG,IAAO,QAAkBA,EAAG,KAAK4hG,EAAU1lG,EAAI,MAAM,IAEzF+D,EAAK2hG,EAAS,SAAW,MAAQ3hG,IAAO,QAAkBA,EAAG,KAAK2hG,EAAU1lG,CAAG,EACpF,CACO,SAASswG,GAAa1E,EAAUjW,EAAW+P,EAAU,CACxD6K,GAA0B5a,CAAS,EAAEiW,CAAQ,EACxC,KAAK,SAAU5pG,EAAQ,CACxB,IAAI8B,EAAIC,GACPD,EAAK4hG,EAAS,QAAU,MAAQ5hG,IAAO,QAAkBA,EAAG,KAAK4hG,EAAU1jG,CAAM,GACjF+B,EAAK2hG,EAAS,YAAc,MAAQ3hG,IAAO,QAAkBA,EAAG,KAAK2hG,CAAQ,CACtF,CAAK,EACI,MAAM,SAAU1lG,EAAK,CAAE,OAAOgwG,GAAYhwG,EAAK0lG,CAAQ,CAAE,CAAE,CACpE,CACO,SAAS6K,GAA0BnR,EAAY,CAClD,OAAO,SAAUwM,EAAU,CACvB,OAAOA,EACF,KAAM,EACN,KAAK,SAAUuE,EAAU,CAAE,OAAOJ,GAAcnE,EAAUuE,CAAQ,EAAI,EACtE,KAAK,SAAUnuG,EAAQ,CACxB,OAAI4pG,EAAS,QAAU,KACnBD,GAAiBC,EAAU5pG,EAAQ,iDAAiD,OAAO4pG,EAAS,MAAM,CAAC,EAE3G,CAAC,MAAM,QAAQ5pG,CAAM,GACrB,CAAC8gG,GAAe,KAAK9gG,EAAQ,MAAM,GACnC,CAAC8gG,GAAe,KAAK9gG,EAAQ,QAAQ,GACrC2pG,GAAiBC,EAAU5pG,EAAQ,0CAA0C,OAAO,MAAM,QAAQo9F,CAAU,EACtGA,EAAW,IAAI,SAAU/8F,EAAI,CAAE,OAAOA,EAAG,cAAgB,EACzD+8F,EAAW,cAAe,IAAI,CAAC,EAElCp9F,CACnB,CAAS,CACT,CACA,CCtKO,IAAIwuG,GAA0B,SAAU35H,EAAGspF,EAAO,CACrD,IAAI91D,EACJ,GAAI,CACAA,EAAa,KAAK,UAAUxzB,CAAC,CAChC,OACMiB,EAAG,CACN,IAAIu4H,EAAa,QAAU,IAAInkB,GAAe,2BAA2B,OAAO/rB,EAAO,wBAAwB,EAAE,OAAOroF,EAAE,OAAO,CAAC,EAAI,IAAIo0G,GAAe,EAAE,EAC3J,MAAAmkB,EAAW,WAAav4H,EAClBu4H,CACT,CACD,OAAOhmG,CACX,ECTIomG,GAAqB,CACrB,aAAc,GACd,kBAAmB,GACnB,mBAAoB,EACxB,EACIC,GAAiB,CACjB,OAAQ,MACR,eAAgB,kBACpB,EACIC,GAAiB,CACjB,OAAQ,MACZ,EACWC,GAAqB,CAC5B,KAAMH,GACN,QAASC,GACT,QAASC,EACb,EACWE,GAAiB,SAAUrX,EAAKsX,EAAS,CAAE,OAAOA,EAAQtX,CAAG,GAUjE,SAASuX,GAAiCpb,EAAWmb,EAAS,CAEjE,QADIE,EAAU,GACLrrG,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCqrG,EAAQrrG,EAAK,CAAC,EAAI,UAAUA,CAAE,EAElC,IAAIoC,EAAU,GACVkpG,EAAO,GACXD,EAAQ,QAAQ,SAAUptG,EAAQ,CAC9BmE,EAAUnH,EAASA,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAGnE,EAAO,OAAO,EAAG,CAAE,QAAShD,EAASA,EAAS,GAAImH,EAAQ,OAAO,EAAGnE,EAAO,OAAO,CAAC,CAAE,EACpIA,EAAO,cACPmE,EAAQ,YAAcnE,EAAO,aAEjCqtG,EAAOrwG,EAASA,EAAS,GAAIqwG,CAAI,EAAGrtG,EAAO,IAAI,CACvD,CAAK,EACGmE,EAAQ,UACRA,EAAQ,QAAUmpG,GAAuBnpG,EAAQ,QAASkpG,EAAK,kBAAkB,GAErF,IAAIE,EAAgBxb,EAAU,cAAe3G,EAAa2G,EAAU,WAAYyF,EAAYzF,EAAU,UAAW4G,EAAQ5G,EAAU,MAC/HzzF,EAAO,CAAE,cAAeivG,EAAe,UAAW/V,CAAS,EAC/D,OAAI6V,EAAK,oBACL/uG,EAAK,WAAa8sF,GAClBiiB,EAAK,eACL/uG,EAAK,MAAQ4uG,EAAQvU,EAAOhD,EAAK,GAC9B,CACH,QAASxxF,EACT,KAAM7F,CACd,CACA,CAEA,SAASgvG,GAAuBtB,EAASwB,EAAoB,CACzD,GAAI,CAACA,EAAoB,CACrB,IAAIC,EAAsB,OAAO,OAAO,IAAI,EAC5C,cAAO,KAAK,OAAOzB,CAAO,CAAC,EAAE,QAAQ,SAAUzoG,EAAM,CACjDkqG,EAAoBlqG,EAAK,YAAW,CAAE,EAAIyoG,EAAQzoG,CAAI,CAClE,CAAS,EACMkqG,CACV,CACD,IAAIC,EAAa,OAAO,OAAO,IAAI,EACnC,OAAO,KAAK,OAAO1B,CAAO,CAAC,EAAE,QAAQ,SAAUzoG,EAAM,CACjDmqG,EAAWnqG,EAAK,YAAa,GAAI,CAAE,aAAcA,EAAM,MAAOyoG,EAAQzoG,CAAI,EAClF,CAAK,EACD,IAAIoqG,EAAoB,OAAO,OAAO,IAAI,EAC1C,cAAO,KAAKD,CAAU,EAAE,QAAQ,SAAUnqG,EAAM,CAC5CoqG,EAAkBD,EAAWnqG,CAAI,EAAE,YAAY,EAAImqG,EAAWnqG,CAAI,EAAE,KAC5E,CAAK,EACMoqG,CACX,CC3EO,IAAIC,GAAe,SAAUC,EAAS,CACzC,GAAI,CAACA,GAAW,OAAO,MAAU,IAC7B,MAAM,QAAU,IAAIvlB,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAob,EAAI,IAAIA,GAAe,EAAE,CAExf,ECLWwlB,GAA0B,UAAY,CAC7C,GAAI,OAAO,gBAAoB,IAC3B,MAAO,CAAE,WAAY,GAAO,OAAQ,EAAK,EAC7C,IAAIC,EAAa,IAAI,gBACjBC,EAASD,EAAW,OACxB,MAAO,CAAE,WAAYA,EAAY,OAAQC,CAAM,CACnD,ECNWC,GAAY,SAAUlc,EAAWmc,EAAa,CACrD,IAAI59F,EAAUyhF,EAAU,aACpBoc,EAAa79F,EAAQ,IACzB,OAAI69F,IAGK,OAAOD,GAAgB,WACrBA,EAAYnc,CAAS,EAGrBmc,GAAe,WAE9B,ECXO,SAASE,GAAiBC,EAAW/vG,EAAM,CAC9C,IAAIgwG,EAAc,GACdC,EAAgB,SAAUhxG,EAAKO,EAAO,CACtCwwG,EAAY,KAAK,GAAG,OAAO/wG,EAAK,GAAG,EAAE,OAAO,mBAAmBO,CAAK,CAAC,CAAC,CAC9E,EAOI,GANI,UAAWQ,GACXiwG,EAAc,QAASjwG,EAAK,KAAK,EAEjCA,EAAK,eACLiwG,EAAc,gBAAiBjwG,EAAK,aAAa,EAEjDA,EAAK,UAAW,CAChB,IAAIkwG,EAAsB,OAC1B,GAAI,CACAA,EAAsB5B,GAAwBtuG,EAAK,UAAW,eAAe,CAChF,OACMmuG,EAAY,CACf,MAAO,CAAE,WAAYA,EACxB,CACD8B,EAAc,YAAaC,CAAmB,CACjD,CACD,GAAIlwG,EAAK,WAAY,CACjB,IAAImwG,EAAuB,OAC3B,GAAI,CACAA,EAAuB7B,GAAwBtuG,EAAK,WAAY,gBAAgB,CACnF,OACMmuG,EAAY,CACf,MAAO,CAAE,WAAYA,EACxB,CACD8B,EAAc,aAAcE,CAAoB,CACnD,CACD,IAAI3V,EAAW,GAAI4V,EAAcL,EAC7BM,EAAgBN,EAAU,QAAQ,GAAG,EACrCM,IAAkB,KAClB7V,EAAWuV,EAAU,OAAOM,CAAa,EACzCD,EAAcL,EAAU,OAAO,EAAGM,CAAa,GAEnD,IAAIC,EAAoBF,EAAY,QAAQ,GAAG,IAAM,GAAK,IAAM,IAC5DG,EAASH,EAAcE,EAAoBN,EAAY,KAAK,GAAG,EAAIxV,EACvE,MAAO,CAAE,OAAQ+V,EACrB,CC1BA,IAAIC,GAAcnmB,GAAM,UAAY,CAAE,OAAO,KAAQ,GAC1ComB,GAAiB,SAAUC,EAAa,CAC3CA,IAAgB,SAAUA,EAAc,CAAE,GAC9C,IAAI9uG,EAAK8uG,EAAY,IAAKC,EAAM/uG,IAAO,OAAS,WAAaA,EAAIgvG,EAAiBF,EAAY,MAAO7uG,EAAK6uG,EAAY,MAAOrZ,EAAQx1F,IAAO,OAAS8sG,GAAiB9sG,EAAIgvG,EAAoBH,EAAY,kBAAmBxB,EAAqBwB,EAAY,mBAAoBI,EAAmBJ,EAAY,iBAAkB5uG,EAAK4uG,EAAY,uBAAwBK,EAAyBjvG,IAAO,OAAS,GAAQA,EAAIkvG,EAAiBnyG,GAAO6xG,EAAa,CAAC,MAAO,QAAS,QAAS,oBAAqB,qBAAsB,mBAAoB,wBAAwB,CAAC,EACpjB,SACApB,GAAasB,GAAkBJ,EAAW,EAE9C,IAAIS,EAAa,CACb,KAAM,CAAE,kBAAmBJ,EAAmB,mBAAoB3B,CAAoB,EACtF,QAAS8B,EAAe,aACxB,YAAaA,EAAe,YAC5B,QAASA,EAAe,OAChC,EACI,OAAO,IAAI1G,GAAW,SAAU7W,EAAW,CACvC,IAAIsc,EAAYJ,GAAUlc,EAAWkd,CAAG,EACpC3+F,EAAUyhF,EAAU,aACpByd,EAAyB,GAC7B,GAAIl/F,EAAQ,gBAAiB,CACzB,IAAIpQ,EAAKoQ,EAAQ,gBAAiBlM,EAASlE,EAAG,KAAMspG,EAAUtpG,EAAG,QAC7DkE,IACAorG,EAAuB,2BAA2B,EAAIprG,GAEtDolG,IACAgG,EAAuB,8BAA8B,EAAIhG,EAEhE,CACD,IAAIiG,EAAiBzyG,EAASA,EAAS,GAAIwyG,CAAsB,EAAGl/F,EAAQ,OAAO,EAC/Eo/F,EAAgB,CAChB,KAAMp/F,EAAQ,KACd,QAASA,EAAQ,aACjB,YAAaA,EAAQ,YACrB,QAASm/F,CACrB,EACYtvG,EAAKgtG,GAAiCpb,EAAW4D,EAAOqX,GAAoBuC,EAAYG,CAAa,EAAGvrG,EAAUhE,EAAG,QAAS7B,EAAO6B,EAAG,KAC5I,GAAI7B,EAAK,WAAa,CAAC+wG,EAAwB,CAC3C,IAAIM,EAAgB,IAAI,IAAI,OAAO,KAAKrxG,EAAK,SAAS,CAAC,EACvDs1F,GAAM7B,EAAU,MAAO,CACnB,SAAU,SAAUjrE,EAAMg0E,EAAM1wF,EAAQ,CAChCA,GAAUA,EAAO,OAAS,sBAC1BulG,EAAc,OAAO7oF,EAAK,KAAK,KAAK,CAE3C,CACjB,CAAa,EACG6oF,EAAc,OACdrxG,EAAK,UAAYtB,EAAS,CAAE,EAAEsB,EAAK,SAAS,EAC5CqxG,EAAc,QAAQ,SAAUpsG,EAAM,CAClC,OAAOjF,EAAK,UAAUiF,CAAI,CAC9C,CAAiB,EAER,CACD,IAAIwqG,EACJ,GAAI,CAAC5pG,EAAQ,OAAQ,CACjB,IAAI/D,EAAK0tG,GAAuB,EAAI8B,EAAcxvG,EAAG,WAAY4tG,EAAS5tG,EAAG,OAC7E2tG,EAAa6B,EACT7B,IACA5pG,EAAQ,OAAS6pG,EACxB,CACD,IAAI6B,EAAuB,SAAUl7H,EAAG,CACpC,OAAOA,EAAE,OAAS,uBAAyBA,EAAE,YAAc,UACvE,EACYm7H,EAA2B,SAAUn7H,EAAG,CACxC,OAAOA,EAAE,OAAS,uBAAyBA,EAAE,YAAc,cACvE,EACYo7H,EAAiBD,EAAyB9T,GAAkBjK,EAAU,KAAK,CAAC,EAC5Eie,EAAWnY,GAAc,CAAC,OAAO,EAAG9F,EAAU,KAAK,EAKvD,GAJIqd,GACA,CAACrd,EAAU,MAAM,YAAY,KAAK8d,CAAoB,IACtD1rG,EAAQ,OAAS,OAEjB6rG,GAAYD,EAAgB,CAC5B5rG,EAAQ,QAAUA,EAAQ,SAAW,GACrC,IAAI8rG,EAAe,mBACfF,GAAkBC,GAClB,SAAWt9B,GAAU,KAAK,+CAA+C,EAEzEq9B,EACAE,GAAgB,yDAEXD,IACLC,GAAgB,uCAEpB9rG,EAAQ,QAAQ,OAAS8rG,CAC5B,CACD,GAAI9rG,EAAQ,SAAW,MAAO,CAC1B,IAAI9D,EAAK+tG,GAAiBC,EAAW/vG,CAAI,EAAGuwG,EAASxuG,EAAG,OAAQosG,EAAapsG,EAAG,WAChF,GAAIosG,EACA,OAAO5E,GAAU4E,CAAU,EAE/B4B,EAAYQ,CACf,KAEG,IAAI,CACA1qG,EAAQ,KAAOyoG,GAAwBtuG,EAAM,SAAS,CACzD,OACMmuG,EAAY,CACf,OAAO5E,GAAU4E,CAAU,CAC9B,CAEL,OAAO,IAAIvL,GAAW,SAAUY,EAAU,CACtC,IAAIoO,EAAehB,GAAkBvmB,GAAM,UAAY,CAAE,OAAO,KAAM,CAAE,GAAKmmB,GAC7E,OAAAoB,EAAa7B,EAAWlqG,CAAO,EAC1B,KAAK,SAAU6jG,EAAU,CAC1B,IAAI9nG,EACJ6xF,EAAU,WAAW,CAAE,SAAUiW,CAAU,GAC3C,IAAImI,GAASjwG,EAAK8nG,EAAS,WAAa,MAAQ9nG,IAAO,OAAS,OAASA,EAAG,IAAI,cAAc,EAC9F,OAAIiwG,IAAU,MAAQ,qBAAqB,KAAKA,CAAK,EAC1C1E,GAAkBzD,EAAUlG,CAAQ,EAGpC4K,GAAa1E,EAAUjW,EAAW+P,CAAQ,CAErE,CAAa,EACI,MAAM,SAAU1lG,EAAK,CAAE,OAAOgwG,GAAYhwG,EAAK0lG,CAAQ,CAAE,CAAE,EACzD,UAAY,CACXiM,GACAA,EAAW,MAAK,CACpC,CACA,CAAS,CACT,CAAK,CACL,ECnIIqC,GAAY,SAAUhgG,EAAQ,CAC9BtT,GAAUszG,EAAUhgG,CAAM,EAC1B,SAASggG,EAASjsG,EAAS,CACnBA,IAAY,SAAUA,EAAU,CAAE,GACtC,IAAIxD,EAAQyP,EAAO,KAAK,KAAM2+F,GAAe5qG,CAAO,EAAE,OAAO,GAAK,KAClE,OAAAxD,EAAM,QAAUwD,EACTxD,CACV,CACD,OAAOyvG,CACX,EAAExH,EAAU,ECZZ,KAAM,CAAE,SAAA/E,GAAU3E,mBAAmB,OAAO,UACtCmR,GAAU,SAAS,UAAU,SAC7BC,GAAsB,IAAI,IAIzB,SAASC,GAAM38H,EAAGK,EAAG,CACxB,GAAI,CACA,OAAOu8H,GAAM58H,EAAGK,CAAC,CACpB,QACO,CACJq8H,GAAoB,MAAK,CAC5B,CACL,CAGA,SAASE,GAAM58H,EAAGK,EAAG,CAEjB,GAAIL,IAAMK,EACN,MAAO,GAIX,MAAMw8H,EAAO5M,GAAS,KAAKjwH,CAAC,EACtB88H,EAAO7M,GAAS,KAAK5vH,CAAC,EAI5B,GAAIw8H,IAASC,EACT,MAAO,GAEX,OAAQD,EAAI,CACR,IAAK,iBAGD,GAAI78H,EAAE,SAAWK,EAAE,OACf,MAAO,GAEf,IAAK,kBAAmB,CACpB,GAAI08H,GAAmB/8H,EAAGK,CAAC,EACvB,MAAO,GACX,MAAM28H,EAAQC,GAAYj9H,CAAC,EACrBk9H,EAAQD,GAAY58H,CAAC,EAGrB88H,EAAWH,EAAM,OACvB,GAAIG,IAAaD,EAAM,OACnB,MAAO,GAEX,QAASj8H,EAAI,EAAGA,EAAIk8H,EAAU,EAAEl8H,EAC5B,GAAI,CAACqqH,GAAe,KAAKjrH,EAAG28H,EAAM/7H,CAAC,CAAC,EAChC,MAAO,GAIf,QAASA,EAAI,EAAGA,EAAIk8H,EAAU,EAAEl8H,EAAG,CAC/B,MAAM0oB,EAAMqzG,EAAM/7H,CAAC,EACnB,GAAI,CAAC27H,GAAM58H,EAAE2pB,CAAG,EAAGtpB,EAAEspB,CAAG,CAAC,EACrB,MAAO,EAEd,CACD,MAAO,EACV,CACD,IAAK,iBACD,OAAO3pB,EAAE,OAASK,EAAE,MAAQL,EAAE,UAAYK,EAAE,QAChD,IAAK,kBAED,GAAIL,IAAMA,EACN,OAAOK,IAAMA,EAErB,IAAK,mBACL,IAAK,gBACD,MAAO,CAACL,GAAM,CAACK,EACnB,IAAK,kBACL,IAAK,kBACD,OAAOL,GAAK,GAAGK,CAAC,GACpB,IAAK,eACL,IAAK,eAAgB,CACjB,GAAIL,EAAE,OAASK,EAAE,KACb,MAAO,GACX,GAAI08H,GAAmB/8H,EAAGK,CAAC,EACvB,MAAO,GACX,MAAM+8H,EAAYp9H,EAAE,UACdq9H,EAAQR,IAAS,eACvB,OAAa,CACT,MAAMS,EAAOF,EAAU,OACvB,GAAIE,EAAK,KACL,MAEJ,KAAM,CAACC,EAAMC,CAAM,EAAIF,EAAK,MAO5B,GALI,CAACj9H,EAAE,IAAIk9H,CAAI,GAKXF,GAAS,CAACT,GAAMY,EAAQn9H,EAAE,IAAIk9H,CAAI,CAAC,EACnC,MAAO,EAEd,CACD,MAAO,EACV,CACD,IAAK,uBACL,IAAK,sBACL,IAAK,uBACL,IAAK,sBACL,IAAK,qBACL,IAAK,sBACL,IAAK,uBAGDv9H,EAAI,IAAI,WAAWA,CAAC,EACpBK,EAAI,IAAI,WAAWA,CAAC,EAExB,IAAK,oBAAqB,CACtB,IAAIy8B,EAAM98B,EAAE,WACZ,GAAI88B,IAAQz8B,EAAE,WACV,KAAOy8B,KAAS98B,EAAE88B,CAAG,IAAMz8B,EAAEy8B,CAAG,GAAG,CAIvC,OAAOA,IAAQ,EAClB,CACD,IAAK,yBACL,IAAK,6BACL,IAAK,kCACL,IAAK,oBAAqB,CACtB,MAAM2gG,EAAQhB,GAAQ,KAAKz8H,CAAC,EAC5B,OAAIy9H,IAAUhB,GAAQ,KAAKp8H,CAAC,EACjB,GAyBJ,CAACq9H,GAASD,EAAOE,EAAgB,CAC3C,CACJ,CAED,MAAO,EACX,CACA,SAASV,GAAYx/F,EAAK,CAGtB,OAAO,OAAO,KAAKA,CAAG,EAAE,OAAOmgG,GAAcngG,CAAG,CACpD,CACA,SAASmgG,GAAaj0G,EAAK,CACvB,OAAO,KAAKA,CAAG,IAAM,MACzB,CACA,MAAMg0G,GAAmB,oBACzB,SAASD,GAASG,EAAM/rG,EAAQ,CAC5B,MAAMgO,EAAY+9F,EAAK,OAAS/rG,EAAO,OACvC,OAAOgO,GAAa,GAChB+9F,EAAK,QAAQ/rG,EAAQgO,CAAS,IAAMA,CAC5C,CACA,SAASi9F,GAAmB/8H,EAAGK,EAAG,CAS9B,IAAIy9H,EAAOpB,GAAoB,IAAI18H,CAAC,EACpC,GAAI89H,GAGA,GAAIA,EAAK,IAAIz9H,CAAC,EACV,MAAO,QAGXq8H,GAAoB,IAAI18H,EAAG89H,EAAO,IAAI,GAAG,EAE7C,OAAAA,EAAK,IAAIz9H,CAAC,EACH,EACX,CC9LA,IAAI09H,GAAkB,UAAY,CAAE,OAAO,OAAO,OAAO,IAAI,GAEzDzxG,GAAK,MAAM,UAAW0xG,GAAU1xG,GAAG,QAAS4kF,GAAQ5kF,GAAG,MACvD2xG,GAAsB,UAAY,CAClC,SAASA,EAAKC,EAAUC,EAAU,CAC1BD,IAAa,SAAUA,EAAW,IAClCC,IAAa,SAAUA,EAAWJ,IACtC,KAAK,SAAWG,EAChB,KAAK,SAAWC,CACnB,CACD,OAAAF,EAAK,UAAU,OAAS,UAAY,CAEhC,QADIp+F,EAAQ,GACH1R,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpC0R,EAAM1R,CAAE,EAAI,UAAUA,CAAE,EAE5B,OAAO,KAAK,YAAY0R,CAAK,CACrC,EACIo+F,EAAK,UAAU,YAAc,SAAUp+F,EAAO,CAC1C,IAAIqT,EAAO,KACX8qF,UAAQ,KAAKn+F,EAAO,SAAUlW,EAAK,CAAE,OAAOupB,EAAOA,EAAK,aAAavpB,CAAG,CAAI,GACrEupB,EAAK,OAASA,EAAK,KAAO,KAAK,SAASg+D,GAAM,KAAKrxE,CAAK,CAAC,EACxE,EACIo+F,EAAK,UAAU,aAAe,SAAUt0G,EAAK,CACzC,IAAImc,EAAM,KAAK,UAAYs4F,GAASz0G,CAAG,EACjC,KAAK,OAAS,KAAK,KAAO,IAAI,SAC9B,KAAK,SAAW,KAAK,OAAS,IAAI,KACpCuX,EAAQ4E,EAAI,IAAInc,CAAG,EACvB,OAAKuX,GACD4E,EAAI,IAAInc,EAAKuX,EAAQ,IAAI+8F,EAAK,KAAK,SAAU,KAAK,QAAQ,CAAC,EACxD/8F,CACf,EACW+8F,CACX,EAAC,EACD,SAASG,GAASl0G,EAAO,CACrB,OAAQ,OAAOA,EAAK,CAChB,IAAK,SACD,GAAIA,IAAU,KACV,MAER,IAAK,WACD,MAAO,EACd,CACD,MAAO,EACX,CC7CA,IAAIm0G,GAAiB,KAGrB,MAAMC,GAAgB,GACtB,IAAIC,GAAY,EAIhB,MAAMC,GAAgB,IAAM,KAAW,CACnC,aAAc,CAIV,KAAK,GAAK,CACN,OACAD,KACA,KAAK,IAAK,EACV,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,CAC9C,EAAU,KAAK,GAAG,CACb,CACD,UAAW,CACP,QAAS7hG,EAAU2hG,GAAgB3hG,EAASA,EAAUA,EAAQ,OAG1D,GAAI,KAAK,MAAMA,EAAQ,MAAO,CAC1B,MAAMxS,EAAQwS,EAAQ,MAAM,KAAK,EAAE,EACnC,GAAIxS,IAAUo0G,GACV,MACJ,OAAI5hG,IAAY2hG,KAIZA,GAAe,MAAM,KAAK,EAAE,EAAIn0G,GAE7B,EACV,CAEL,OAAIm0G,KAIAA,GAAe,MAAM,KAAK,EAAE,EAAIC,IAE7B,EACV,CACD,UAAW,CACP,GAAI,KAAK,WACL,OAAOD,GAAe,MAAM,KAAK,EAAE,CAE1C,CACD,UAAUn0G,EAAO4C,EAGjBM,EAAMtD,EAAS,CACX,MAAM20G,EAAQ,CACV,UAAW,KACX,CAAC,KAAK,EAAE,EAAGv0G,CACvB,EACcsM,EAAS6nG,GACfA,GAAiB,CAAE,OAAA7nG,EAAQ,MAAAioG,GAC3B,GAAI,CAGA,OAAO3xG,EAAS,MAAMhD,EAASsD,CAAI,CACtC,QACO,CACJixG,GAAiB7nG,CACpB,CACJ,CAGD,OAAO,KAAK1J,EAAU,CAClB,MAAM4P,EAAU2hG,GAChB,OAAO,UAAY,CACf,MAAMK,EAAQL,GACd,GAAI,CACA,OAAAA,GAAiB3hG,EACV5P,EAAS,MAAM,KAAM,SAAS,CACxC,QACO,CACJuxG,GAAiBK,CACpB,CACb,CACK,CAED,OAAO,UAAU5xG,EAGjBM,EAAMtD,EAAS,CACX,GAAIu0G,GAAgB,CAChB,MAAMK,EAAQL,GACd,GAAI,CACA,OAAAA,GAAiB,KAGVvxG,EAAS,MAAMhD,EAASsD,CAAI,CACtC,QACO,CACJixG,GAAiBK,CACpB,CACJ,KAEG,QAAO5xG,EAAS,MAAMhD,EAASsD,CAAI,CAE1C,CACL,EACA,SAAS2nF,GAAM7mD,EAAI,CACf,GAAI,CACA,OAAOA,EAAE,CACZ,MACe,CAAG,CACvB,CASA,MAAMywE,GAAY,oBACZjlE,GAGNq7C,GAAM,IAAM,UAAU,GAIlBA,GAAM,IAAM,MAAM,GAIlB,OAAO,OAAO,IAAI,EAGhB6pB,GAAallE,GACNmlE,GAAOD,GAAWD,EAAS,GAGpC,MAAMA,EAAS,GACd,SAAUE,EAAM,CACb,GAAI,CACA,OAAO,eAAeD,GAAYD,GAAW,CACzC,MAAOE,EACP,WAAY,GACZ,SAAU,GAOV,aAAc,EAC9B,CAAa,CACJ,QACO,CACJ,OAAOA,CACV,CACJ,EAAEL,GAAa,CAAE,EC5JtB,SAASM,IAAiB,CAAG,CAC7B,IAAIC,GAAuB,UAAY,CACnC,SAASA,EAAM5/E,EAAKyP,EAAS,CACrBzP,IAAQ,SAAUA,EAAM,KACxByP,IAAY,SAAUA,EAAUkwE,IACpC,KAAK,IAAM3/E,EACX,KAAK,QAAUyP,EACf,KAAK,IAAM,IAAI,IACf,KAAK,OAAS,KACd,KAAK,OAAS,IACjB,CACD,OAAAmwE,EAAM,UAAU,IAAM,SAAUp1G,EAAK,CACjC,OAAO,KAAK,IAAI,IAAIA,CAAG,CAC/B,EACIo1G,EAAM,UAAU,IAAM,SAAUp1G,EAAK,CACjC,IAAIupB,EAAO,KAAK,QAAQvpB,CAAG,EAC3B,OAAOupB,GAAQA,EAAK,KAC5B,EACI6rF,EAAM,UAAU,QAAU,SAAUp1G,EAAK,CACrC,IAAIupB,EAAO,KAAK,IAAI,IAAIvpB,CAAG,EAC3B,GAAIupB,GAAQA,IAAS,KAAK,OAAQ,CAC9B,IAAI8rF,EAAQ9rF,EAAK,MAAO+rF,EAAQ/rF,EAAK,MACjC+rF,IACAA,EAAM,MAAQD,GAEdA,IACAA,EAAM,MAAQC,GAElB/rF,EAAK,MAAQ,KAAK,OAClBA,EAAK,MAAM,MAAQA,EACnBA,EAAK,MAAQ,KACb,KAAK,OAASA,EACVA,IAAS,KAAK,SACd,KAAK,OAAS+rF,EAErB,CACD,OAAO/rF,CACf,EACI6rF,EAAM,UAAU,IAAM,SAAUp1G,EAAKO,EAAO,CACxC,IAAIgpB,EAAO,KAAK,QAAQvpB,CAAG,EAC3B,OAAIupB,EACOA,EAAK,MAAQhpB,GAExBgpB,EAAO,CACH,IAAKvpB,EACL,MAAOO,EACP,MAAO,KACP,MAAO,KAAK,MACxB,EACY,KAAK,SACL,KAAK,OAAO,MAAQgpB,GAExB,KAAK,OAASA,EACd,KAAK,OAAS,KAAK,QAAUA,EAC7B,KAAK,IAAI,IAAIvpB,EAAKupB,CAAI,EACfA,EAAK,MACpB,EACI6rF,EAAM,UAAU,MAAQ,UAAY,CAChC,KAAO,KAAK,QAAU,KAAK,IAAI,KAAO,KAAK,KACvC,KAAK,OAAO,KAAK,OAAO,GAAG,CAEvC,EACIA,EAAM,UAAU,OAAS,SAAUp1G,EAAK,CACpC,IAAIupB,EAAO,KAAK,IAAI,IAAIvpB,CAAG,EAC3B,OAAIupB,GACIA,IAAS,KAAK,SACd,KAAK,OAASA,EAAK,OAEnBA,IAAS,KAAK,SACd,KAAK,OAASA,EAAK,OAEnBA,EAAK,QACLA,EAAK,MAAM,MAAQA,EAAK,OAExBA,EAAK,QACLA,EAAK,MAAM,MAAQA,EAAK,OAE5B,KAAK,IAAI,OAAOvpB,CAAG,EACnB,KAAK,QAAQupB,EAAK,MAAOvpB,CAAG,EACrB,IAEJ,EACf,EACWo1G,CACX,EAAC,EAEGG,GAAkB,IAAIL,GAEtBvyG,GACAg/F,GAAiB,OAAO,UAAU,eAOtC6T,IAAW7yG,GAAK,MAAM,KAAMA,KAAO,OAAS,SAAU4mF,EAAY,CAC9D,IAAIrzE,EAAQ,GACZ,OAAAqzE,EAAW,QAAQ,SAAU9lE,EAAM,CAAE,OAAOvN,EAAM,KAAKuN,CAAI,CAAE,CAAE,EACxDvN,CACX,EAAIvT,IACJ,SAAS8yG,GAAiBC,EAAY,CAClC,IAAIxR,EAAcwR,EAAW,YACzB,OAAOxR,GAAgB,aACvBwR,EAAW,YAAc,OACzBxR,IAER,CAEA,IAAIyR,GAAe,GACfC,GAAmB,IAGvB,SAASC,GAAOnjG,EAAWojG,EAAiB,CACxC,GAAI,CAACpjG,EACD,MAAM,IAAI,MAAMojG,GAAmB,mBAAmB,CAE9D,CACA,SAASC,GAAQ1/H,EAAGK,EAAG,CACnB,IAAIy8B,EAAM98B,EAAE,OACZ,OAEA88B,EAAM,GAEFA,IAAQz8B,EAAE,QAEVL,EAAE88B,EAAM,CAAC,IAAMz8B,EAAEy8B,EAAM,CAAC,CAChC,CACA,SAAS6iG,GAASz1G,EAAO,CACrB,OAAQA,EAAM,OAAM,CAChB,IAAK,GAAG,MAAM,IAAI,MAAM,eAAe,EACvC,IAAK,GAAG,OAAOA,EAAM,CAAC,EACtB,IAAK,GAAG,MAAMA,EAAM,CAAC,CACxB,CACL,CACA,SAAS01G,GAAU11G,EAAO,CACtB,OAAOA,EAAM,MAAM,CAAC,CACxB,CACA,IAAI21G,GAAuB,UAAY,CACnC,SAASA,EAAM3xE,EAAI,CACf,KAAK,GAAKA,EACV,KAAK,QAAU,IAAI,IACnB,KAAK,YAAc,IAAI,IAIvB,KAAK,cAAgB,KACrB,KAAK,MAAQ,GACb,KAAK,YAAc,GACnB,KAAK,MAAQ,GACb,KAAK,KAAO,KACZ,EAAE2xE,EAAM,KACX,CACD,OAAAA,EAAM,UAAU,KAAO,UAAY,CAC/B,GAAI,KAAK,MAAM,SAAW,GAAK,CAACC,GAAa,IAAI,EAC7C,OAAAC,GAAe,IAAI,EACZ,KAAK,MAAM,CAAC,CAE/B,EAOIF,EAAM,UAAU,UAAY,SAAUzyG,EAAM,CACxC,OAAAoyG,GAAO,CAAC,KAAK,YAAa,qBAAqB,EAC/CO,GAAe,IAAI,EACZD,GAAa,IAAI,EAClBE,GAAgB,KAAM5yG,CAAI,EAC1BuyG,GAAS,KAAK,KAAK,CACjC,EACIE,EAAM,UAAU,SAAW,UAAY,CAC/B,KAAK,QAET,KAAK,MAAQ,GACb,KAAK,MAAM,OAAS,EACpBI,GAAY,IAAI,EAIhBb,GAAiB,IAAI,EAC7B,EACIS,EAAM,UAAU,QAAU,UAAY,CAClC,IAAI9yG,EAAQ,KACZ,KAAK,SAAQ,EAIbmzG,GAAe,IAAI,EAYnBC,GAAW,KAAM,SAAU3pG,EAAQ0K,EAAO,CACtC1K,EAAO,SAAQ,EACf4pG,GAAY5pG,EAAQzJ,CAAK,CACrC,CAAS,CACT,EACI8yG,EAAM,UAAU,OAAS,UAAY,CAIjC,KAAK,QAAO,CACpB,EACIA,EAAM,UAAU,SAAW,SAAUznF,EAAK,CACtCA,EAAI,IAAI,IAAI,EACP,KAAK,OACN,KAAK,KAAOknF,GAAa,IAAG,GAAM,IAAI,KAE1C,KAAK,KAAK,IAAIlnF,CAAG,CACzB,EACIynF,EAAM,UAAU,WAAa,UAAY,CACrC,IAAI9yG,EAAQ,KACR,KAAK,OACLoyG,GAAQ,KAAK,IAAI,EAAE,QAAQ,SAAU/mF,EAAK,CAAE,OAAOA,EAAI,OAAOrrB,CAAK,CAAI,GACvE,KAAK,KAAK,QACVuyG,GAAa,KAAK,KAAK,IAAI,EAC3B,KAAK,KAAO,KAExB,EACIO,EAAM,MAAQ,EACPA,CACX,EAAC,EACD,SAASE,GAAe7+F,EAAO,CAC3B,IAAI1K,EAAS0oG,GAAgB,WAC7B,GAAI1oG,EACA,OAAA0K,EAAM,QAAQ,IAAI1K,CAAM,EACnBA,EAAO,YAAY,IAAI0K,CAAK,GAC7B1K,EAAO,YAAY,IAAI0K,EAAO,CAAE,GAEhC4+F,GAAa5+F,CAAK,EAClBm/F,GAAiB7pG,EAAQ0K,CAAK,EAG9Bo/F,GAAiB9pG,EAAQ0K,CAAK,EAE3B1K,CAEf,CACA,SAASwpG,GAAgB1yG,EAAOF,EAAM,CAClC,OAAA8yG,GAAe5yG,CAAK,EAEpB4xG,GAAgB,UAAU5xG,EAAOizG,GAAmB,CAACjzG,EAAOF,CAAI,CAAC,EAC7DozG,GAAelzG,EAAOF,CAAI,GAG1BqzG,GAASnzG,CAAK,EAEXqyG,GAASryG,EAAM,KAAK,CAC/B,CACA,SAASizG,GAAkBjzG,EAAOF,EAAM,CACpCE,EAAM,YAAc,GAEpBA,EAAM,MAAM,OAAS,EACrB,GAAI,CAEAA,EAAM,MAAM,CAAC,EAAIA,EAAM,GAAG,MAAM,KAAMF,CAAI,CAC7C,OACM9sB,EAAG,CAENgtB,EAAM,MAAM,CAAC,EAAIhtB,CACpB,CAEDgtB,EAAM,YAAc,EACxB,CACA,SAASwyG,GAAaxyG,EAAO,CACzB,OAAOA,EAAM,OAAS,CAAC,EAAEA,EAAM,eAAiBA,EAAM,cAAc,KACxE,CACA,SAASmzG,GAASnzG,EAAO,CACrBA,EAAM,MAAQ,GACV,CAAAwyG,GAAaxyG,CAAK,GAKtBozG,GAAYpzG,CAAK,CACrB,CACA,SAAS2yG,GAAY/+F,EAAO,CACxBi/F,GAAWj/F,EAAOm/F,EAAgB,CACtC,CACA,SAASK,GAAYx/F,EAAO,CACxBi/F,GAAWj/F,EAAOo/F,EAAgB,CACtC,CACA,SAASH,GAAWj/F,EAAOpU,EAAU,CACjC,IAAI6zG,EAAcz/F,EAAM,QAAQ,KAChC,GAAIy/F,EAEA,QADIC,EAAUzB,GAAQj+F,EAAM,OAAO,EAC1B,EAAI,EAAG,EAAIy/F,EAAa,EAAE,EAC/B7zG,EAAS8zG,EAAQ,CAAC,EAAG1/F,CAAK,CAGtC,CAEA,SAASm/F,GAAiB7pG,EAAQ0K,EAAO,CAGrCs+F,GAAOhpG,EAAO,YAAY,IAAI0K,CAAK,CAAC,EACpCs+F,GAAOM,GAAa5+F,CAAK,CAAC,EAC1B,IAAI2/F,EAAiB,CAACf,GAAatpG,CAAM,EACzC,GAAI,CAACA,EAAO,cACRA,EAAO,cAAgB8oG,GAAa,IAAK,GAAI,IAAI,YAE5C9oG,EAAO,cAAc,IAAI0K,CAAK,EAInC,OAEJ1K,EAAO,cAAc,IAAI0K,CAAK,EAG1B2/F,GACAZ,GAAYzpG,CAAM,CAE1B,CAEA,SAAS8pG,GAAiB9pG,EAAQ0K,EAAO,CAGrCs+F,GAAOhpG,EAAO,YAAY,IAAI0K,CAAK,CAAC,EACpCs+F,GAAO,CAACM,GAAa5+F,CAAK,CAAC,EAC3B,IAAI4/F,EAAatqG,EAAO,YAAY,IAAI0K,CAAK,EACzC4/F,EAAW,SAAW,EACtBtqG,EAAO,YAAY,IAAI0K,EAAO0+F,GAAU1+F,EAAM,KAAK,CAAC,EAE9Cw+F,GAAQoB,EAAY5/F,EAAM,KAAK,GACrC1K,EAAO,SAAQ,EAEnBuqG,GAAiBvqG,EAAQ0K,CAAK,EAC1B,CAAA4+F,GAAatpG,CAAM,GAGvBkqG,GAAYlqG,CAAM,CACtB,CACA,SAASuqG,GAAiBvqG,EAAQ0K,EAAO,CACrC,IAAIj4B,EAAKutB,EAAO,cACZvtB,IACAA,EAAG,OAAOi4B,CAAK,EACXj4B,EAAG,OAAS,IACRq2H,GAAa,OAASC,IACtBD,GAAa,KAAKr2H,CAAE,EAExButB,EAAO,cAAgB,MAGnC,CAGA,SAAS0pG,GAAe1pG,EAAQ,CACxBA,EAAO,YAAY,KAAO,GAC1BA,EAAO,YAAY,QAAQ,SAAUwqG,EAAQ9/F,EAAO,CAChDk/F,GAAY5pG,EAAQ0K,CAAK,CACrC,CAAS,EAIL1K,EAAO,WAAU,EAGjBgpG,GAAOhpG,EAAO,gBAAkB,IAAI,CACxC,CACA,SAAS4pG,GAAY5pG,EAAQ0K,EAAO,CAChCA,EAAM,QAAQ,OAAO1K,CAAM,EAC3BA,EAAO,YAAY,OAAO0K,CAAK,EAC/B6/F,GAAiBvqG,EAAQ0K,CAAK,CAClC,CACA,SAASs/F,GAAelzG,EAAOF,EAAM,CACjC,GAAI,OAAOE,EAAM,WAAc,WAC3B,GAAI,CACA8xG,GAAiB9xG,CAAK,EACtBA,EAAM,YAAcA,EAAM,UAAU,MAAM,KAAMF,CAAI,CACvD,MACS,CAKN,OAAAE,EAAM,SAAQ,EACP,EACV,CAIL,MAAO,EACX,CAEA,IAAI2zG,GAAe,CACf,SAAU,GACV,QAAS,GACT,OAAQ,EACZ,EACA,SAAS7oF,GAAI7nB,EAAS,CAClB,IAAI2wG,EAAY,IAAI,IAChBC,EAAY5wG,GAAWA,EAAQ,UACnC,SAAS6wG,EAAOz3G,EAAK,CACjB,IAAI6M,EAAS0oG,GAAgB,WAC7B,GAAI1oG,EAAQ,CACR,IAAI6qG,EAAQH,EAAU,IAAIv3G,CAAG,EACxB03G,GACDH,EAAU,IAAIv3G,EAAK03G,EAAQ,IAAI,GAAG,EAEtC7qG,EAAO,SAAS6qG,CAAK,EACjB,OAAOF,GAAc,aACrB/B,GAAiBiC,CAAK,EACtBA,EAAM,YAAcF,EAAUx3G,CAAG,EAExC,CACJ,CACD,OAAAy3G,EAAO,MAAQ,SAAez3G,EAAK23G,EAAiB,CAChD,IAAIlpF,EAAM8oF,EAAU,IAAIv3G,CAAG,EAC3B,GAAIyuB,EAAK,CACL,IAAImpF,EAAOD,GACPhW,GAAe,KAAK2V,GAAcK,CAAe,EAAKA,EAAkB,WAI5EnC,GAAQ/mF,CAAG,EAAE,QAAQ,SAAU9qB,EAAO,CAAE,OAAOA,EAAMi0G,CAAG,GAAI,CAAE,EAC9DL,EAAU,OAAOv3G,CAAG,EACpBy1G,GAAiBhnF,CAAG,CACvB,CACT,EACWgpF,CACX,CAEA,SAASI,IAAkC,CACvC,IAAIC,EAAU,IAAIxD,GAAK,OAAO,SAAY,UAAU,EACpD,OAAO,UAAY,CACf,OAAOwD,EAAQ,YAAY,SAAS,CAC5C,CACA,CAQ0BD,GAAkC,EAC5D,IAAIE,GAAS,IAAI,IACjB,SAASrf,GAAKsf,EAAkBpxG,EAAS,CACjCA,IAAY,SAAUA,EAAU,OAAO,OAAO,IAAI,GACtD,IAAIsX,EAAQ,IAAIk3F,GAAMxuG,EAAQ,KAAO,KAAK,IAAI,EAAG,EAAE,EAAG,SAAUjD,EAAO,CAAE,OAAOA,EAAM,QAAO,CAAG,CAAE,EAC9Fs0G,EAAUrxG,EAAQ,QAClBsxG,EAAetxG,EAAQ,cACvBixG,KACAM,EAAa,UAAY,CACzB,IAAIn4G,EAAMk4G,EAAa,MAAM,KAAMD,EAAUA,EAAQ,MAAM,KAAM,SAAS,EAAI,SAAS,EACvF,GAAIj4G,IAAQ,OACR,OAAOg4G,EAAiB,MAAM,KAAM,SAAS,EAEjD,IAAIr0G,EAAQua,EAAM,IAAIle,CAAG,EACpB2D,IACDua,EAAM,IAAIle,EAAK2D,EAAQ,IAAIuyG,GAAM8B,CAAgB,CAAC,EAClDr0G,EAAM,UAAYiD,EAAQ,UAG1BjD,EAAM,OAAS,UAAY,CAAE,OAAOua,EAAM,OAAOle,CAAG,IAExD,IAAIO,EAAQoD,EAAM,UAAU,MAAM,UAAU,MAAM,KAAK,SAAS,CAAC,EAGjE,OAAAua,EAAM,IAAIle,EAAK2D,CAAK,EACpBo0G,GAAO,IAAI75F,CAAK,EAIXq3F,GAAgB,aACjBwC,GAAO,QAAQ,SAAU75F,EAAO,CAAE,OAAOA,EAAM,MAAK,CAAG,CAAE,EACzD65F,GAAO,MAAK,GAETx3G,CACf,EACI,OAAO,eAAe43G,EAAY,OAAQ,CACtC,IAAK,UAAY,CACb,OAAOj6F,EAAM,IAAO,IACvB,EACD,aAAc,GACd,WAAY,EACpB,CAAK,EACD,SAASk6F,EAASp4G,EAAK,CACnB,IAAI2D,EAAQua,EAAM,IAAIle,CAAG,EACrB2D,GACAA,EAAM,SAAQ,CAErB,CACDw0G,EAAW,SAAWC,EACtBD,EAAW,MAAQ,UAAiB,CAChCC,EAASF,EAAa,MAAM,KAAM,SAAS,CAAC,CACpD,EACI,SAASG,EAAQr4G,EAAK,CAClB,IAAI2D,EAAQua,EAAM,IAAIle,CAAG,EACzB,GAAI2D,EACA,OAAOA,EAAM,MAEpB,CACDw0G,EAAW,QAAUE,EACrBF,EAAW,KAAO,UAAgB,CAC9B,OAAOE,EAAQH,EAAa,MAAM,KAAM,SAAS,CAAC,CAC1D,EACI,SAASI,EAAUt4G,EAAK,CACpB,OAAOke,EAAM,OAAOle,CAAG,CAC1B,CACD,OAAAm4G,EAAW,UAAYG,EACvBH,EAAW,OAAS,UAAkB,CAClC,OAAOG,EAAUJ,EAAa,MAAM,KAAM,SAAS,CAAC,CAC5D,EACIC,EAAW,aAAeD,EAC1BC,EAAW,OAASF,EAAU,UAAkB,CAC5C,OAAOC,EAAa,MAAM,KAAMD,EAAQ,MAAM,KAAM,SAAS,CAAC,CACjE,EAAGC,EACG,OAAO,OAAOC,CAAU,CACnC,CCzgBA,IAAII,GAAe,UAAY,CAC3B,SAASA,GAAc,CACnB,KAAK,eAAiB7f,GAAKqC,EAAwB,CACtD,CACD,OAAAwd,EAAY,UAAU,MAAQ,SAAU3xG,EAAS,CAC7C,IAAIxD,EAAQ,KACRo1G,EAAe,OAAO5xG,EAAQ,YAAe,SAAWA,EAAQ,WAChEA,EAAQ,aAAe,GAAQ,KAAO,OACtC6xG,EACJ,YAAK,mBAAmB,UAAY,CAAE,OAAOA,EAAe7xG,EAAQ,OAAOxD,CAAK,GAAMo1G,CAAY,EAC3FC,CACf,EACIF,EAAY,UAAU,4BAA8B,SAAUG,EAAaF,EAAc,CACrF,KAAK,mBAAmBE,EAAaF,CAAY,CACzD,EACID,EAAY,UAAU,kBAAoB,SAAUr9F,EAAU,CAC1D,OAAOA,CACf,EACIq9F,EAAY,UAAU,iBAAmB,SAAUr9F,EAAU,CACzD,OAAOA,CACf,EACIq9F,EAAY,UAAU,SAAW,SAAUllB,EAAQ,CAEvD,EACIklB,EAAY,UAAU,GAAK,UAAY,CACnC,MAAO,EACf,EACIA,EAAY,UAAU,OAAS,SAAU3xG,EAAS,CAC9C,MAAO,EACf,EACI2xG,EAAY,UAAU,UAAY,SAAU3xG,EAASuxG,EAAY,CAC7D,OAAIA,IAAe,SAAUA,EAAa,CAAC,CAACvxG,EAAQ,YAC7C,KAAK,KAAKnH,EAASA,EAAS,GAAImH,CAAO,EAAG,CAAE,OAAQA,EAAQ,IAAM,aAAc,WAAYuxG,CAAY,EAAC,CACxH,EACII,EAAY,UAAU,aAAe,SAAU3xG,EAASuxG,EAAY,CAChE,OAAIA,IAAe,SAAUA,EAAa,CAAC,CAACvxG,EAAQ,YAC7C,KAAK,KAAKnH,EAASA,EAAS,GAAImH,CAAO,EAAG,CAAE,MAAO,KAAK,eAAeA,EAAQ,SAAUA,EAAQ,YAAY,EAAG,OAAQA,EAAQ,GAAI,WAAYuxG,CAAY,EAAC,CAC5K,EACII,EAAY,UAAU,WAAa,SAAU51G,EAAI,CAC7C,IAAI3f,EAAK2f,EAAG,GAAIkU,EAAOlU,EAAG,KAAMiE,EAAUhH,GAAO+C,EAAI,CAAC,KAAM,MAAM,CAAC,EACnE,OAAO,KAAK,MAAM,OAAO,OAAOiE,EAAS,CACrC,OAAQ5jB,GAAM,aACd,OAAQ6zB,CACX,EAAC,CACV,EACI0hG,EAAY,UAAU,cAAgB,SAAU51G,EAAI,CAChD,IAAI3f,EAAK2f,EAAG,GAAIkU,EAAOlU,EAAG,KAAM44F,EAAW54F,EAAG,SAAUq4F,EAAer4F,EAAG,aAAciE,EAAUhH,GAAO+C,EAAI,CAAC,KAAM,OAAQ,WAAY,cAAc,CAAC,EACvJ,OAAO,KAAK,MAAM,OAAO,OAAOiE,EAAS,CACrC,MAAO,KAAK,eAAe20F,EAAUP,CAAY,EACjD,OAAQh4G,EACR,OAAQ6zB,CACX,EAAC,CACV,EACI0hG,EAAY,UAAU,YAAc,SAAU3xG,EAASy9B,EAAQ,CAC3D,OAAO,KAAK,MAAM,CACd,OAAQ,SAAUnmB,EAAO,CACrB,IAAI3d,EAAQ2d,EAAM,UAAUtX,CAAO,EAC/BiQ,EAAOwtB,EAAO9jC,CAAK,EACvB,OAAuBsW,GAAS,KACrBtW,GACX2d,EAAM,WAAWze,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,KAAMiQ,CAAM,EAAC,EACzDA,EACV,CACb,CAAS,CACT,EACI0hG,EAAY,UAAU,eAAiB,SAAU3xG,EAASy9B,EAAQ,CAC9D,OAAO,KAAK,MAAM,CACd,OAAQ,SAAUnmB,EAAO,CACrB,IAAI3d,EAAQ2d,EAAM,aAAatX,CAAO,EAClCiQ,EAAOwtB,EAAO9jC,CAAK,EACvB,OAAuBsW,GAAS,KACrBtW,GACX2d,EAAM,cAAcze,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,KAAMiQ,CAAM,EAAC,EAC5DA,EACV,CACb,CAAS,CACT,EACW0hG,CACX,IChFII,GAAqB,SAAU9lG,EAAQ,CACvCtT,GAAUo5G,EAAmB9lG,CAAM,EACnC,SAAS8lG,EAAkBvmG,EAASoJ,EAAM4/E,EAAOnB,EAAW,CACxD,IAAIt3F,EACAS,EAAQyP,EAAO,KAAK,KAAMT,CAAO,GAAK,KAK1C,GAJAhP,EAAM,QAAUgP,EAChBhP,EAAM,KAAOoY,EACbpY,EAAM,MAAQg4F,EACdh4F,EAAM,UAAY62F,EACd,MAAM,QAAQ72F,EAAM,IAAI,EAAG,CAC3BA,EAAM,QAAUA,EAAM,QACtB,QAASzD,EAAIyD,EAAM,KAAK,OAAS,EAAGzD,GAAK,EAAG,EAAEA,EAC1CyD,EAAM,SAAWT,EAAK,CAAE,EAAEA,EAAGS,EAAM,KAAKzD,CAAC,CAAC,EAAIyD,EAAM,QAAST,EAEpE,MAEGS,EAAM,QAAUA,EAAM,KAE1B,OAAAA,EAAM,UAAYu1G,EAAkB,UAC7Bv1G,CACV,CACD,OAAOu1G,CACX,EAAE,KAAK,EClBP,MAAMvE,GAAkB,IAAM,OAAO,OAAO,IAAI,EAE1C,CAAE,QAAAC,GAAS,MAAA9sB,IAAU,MAAM,UAC3B,gBAAEoa,EAAc,EAAK,OAAO,UAC3B,MAAM2S,EAAK,CACd,YAAYC,EAAW,GAAMC,EAAWJ,GAAiB,CACrD,KAAK,SAAWG,EAChB,KAAK,SAAWC,CACnB,CACD,UAAUt+F,EAAO,CACb,OAAO,KAAK,YAAYA,CAAK,CAChC,CACD,YAAYA,EAAO,CACf,IAAIqT,EAAO,KACX,OAAA8qF,GAAQ,KAAKn+F,EAAOlW,GAAOupB,EAAOA,EAAK,aAAavpB,CAAG,CAAC,EACjD2hG,GAAe,KAAKp4E,EAAM,MAAM,EACjCA,EAAK,KACLA,EAAK,KAAO,KAAK,SAASg+D,GAAM,KAAKrxE,CAAK,CAAC,CACpD,CACD,QAAQA,EAAO,CACX,OAAO,KAAK,UAAUA,CAAK,CAC9B,CACD,UAAUA,EAAO,CACb,IAAIqT,EAAO,KACX,QAAS5pB,EAAI,EAAGwT,EAAM+C,EAAM,OAAQqT,GAAQ5pB,EAAIwT,EAAK,EAAExT,EAAG,CACtD,MAAMwc,EAAM,KAAK,UAAYs4F,GAASv+F,EAAMvW,CAAC,CAAC,EAAI4pB,EAAK,KAAOA,EAAK,OACnEA,EAAOpN,GAAOA,EAAI,IAAIjG,EAAMvW,CAAC,CAAC,CACjC,CACD,OAAO4pB,GAAQA,EAAK,IACvB,CACD,aAAavpB,EAAK,CACd,MAAMmc,EAAM,KAAK,UAAYs4F,GAASz0G,CAAG,EACnC,KAAK,OAAS,KAAK,KAAO,IAAI,SAC9B,KAAK,SAAW,KAAK,OAAS,IAAI,KACxC,IAAIuX,EAAQ4E,EAAI,IAAInc,CAAG,EACvB,OAAKuX,GACD4E,EAAI,IAAInc,EAAKuX,EAAQ,IAAI+8F,GAAK,KAAK,SAAU,KAAK,QAAQ,CAAC,EACxD/8F,CACV,CACL,CACA,SAASk9F,GAASl0G,EAAO,CACrB,OAAQ,OAAOA,EAAK,CAChB,IAAK,SACD,GAAIA,IAAU,KACV,MAER,IAAK,WACD,MAAO,EACd,CACD,MAAO,EACX,CCtDO,IAAIq4G,GAAS,OAAO,UAAU,eAC9B,SAASC,GAAUt4G,EAAO,CAC7B,OAAOA,GAAU,IACrB,CAEO,SAASu4G,GAAwBn2G,EAAIoQ,EAAS,CACjD,IAAIgmG,EAAap2G,EAAG,WAAY3f,EAAK2f,EAAG,GAAIq2G,EAAMr2G,EAAG,IACrD,GAAI,OAAOo2G,GAAe,WAClBhmG,IACAA,EAAQ,UACH8lG,GAAU71H,CAAE,EACR61H,GAAUG,CAAG,EACV,OADc,CAAE,IAAKA,CAAK,EADjB,CAAE,GAAIh2H,CAAI,GAI/B61H,GAAU71H,CAAE,GAAK,CAAC61H,GAAUG,CAAG,IAC/Bh2H,EAAKg2H,GAEL,CAACH,GAAU71H,CAAE,GACb,MAAO,GAAG,OAAO+1H,EAAY,GAAG,EAAE,OAAQ,OAAO/1H,GAAO,UACpD,OAAOA,GAAO,SAAYA,EAAK,KAAK,UAAUA,CAAE,CAAC,CAGjE,CACA,IAAIi2H,GAAgB,CAChB,iBAAkBH,GAClB,YAAa,GACb,cAAe,GACf,gBAAiB,EACrB,EACO,SAASI,GAAgBz2G,EAAQ,CACpC,OAAOsnG,GAAQkP,GAAex2G,CAAM,CACxC,CACO,SAAS02G,GAAsB12G,EAAQ,CAC1C,IAAIlC,EAAQkC,EAAO,gBACnB,OAAOlC,IAAU,OAAS04G,GAAc,gBAAkB14G,CAC9D,CACO,SAAS64G,GAA2BC,EAAOC,EAAmB,CACjE,OAAO1d,GAAY0d,CAAiB,EAC9BD,EAAM,IAAIC,EAAkB,MAAO,YAAY,EAC/CA,GAAqBA,EAAkB,UACjD,CACO,IAAIC,GAAwB,qBAC5B,SAASC,GAAuBC,EAAgB,CACnD,IAAI3xG,EAAQ2xG,EAAe,MAAMF,EAAqB,EACtD,OAAOzxG,EAAQA,EAAM,CAAC,EAAI2xG,CAC9B,CACO,SAASC,GAA0B7gB,EAAch4F,EAAQo5F,EAAW,CACvE,OAAIyB,GAAgB76F,CAAM,EACf4jB,GAAQ5jB,CAAM,EACfA,EAAO,MAAM,SAAU4iB,EAAM,CAAE,OAAOi2F,GAA0B7gB,EAAcp1E,EAAMw2E,CAAS,EAAI,EACjGpB,EAAa,WAAW,MAAM,SAAU9d,EAAO,CAC7C,GAAI6iB,GAAQ7iB,CAAK,GAAKif,GAAcjf,EAAOkf,CAAS,EAAG,CACnD,IAAIj6F,EAAM09F,GAAuB3iB,CAAK,EACtC,OAAO69B,GAAO,KAAK/3G,EAAQb,CAAG,IACzB,CAAC+6E,EAAM,cACJ2+B,GAA0B3+B,EAAM,aAAcl6E,EAAOb,CAAG,EAAGi6F,CAAS,EAC/E,CACD,MAAO,EACvB,CAAa,EAEF,EACX,CACO,SAAS0f,GAAwBp5G,EAAO,CAC3C,OAAOm7F,GAAgBn7F,CAAK,GACxB,CAACq7F,GAAYr7F,CAAK,GAClB,CAACkkB,GAAQlkB,CAAK,CACtB,CACO,SAASq5G,IAA4B,CACxC,OAAO,IAAI5X,EACf,CACO,SAAS6X,GAAuB3+F,EAAUggF,EAAW,CACxD,IAAIO,EAAcJ,GAAkB+C,GAAuBljF,CAAQ,CAAC,EACpE,MAAO,CACH,YAAaugF,EACb,eAAgB,SAAUz1F,EAAM,CAC5B,IAAI+4F,EAAMtD,EAAYz1F,CAAI,EAC1B,MAAI,CAAC+4F,GAAO7D,IACR6D,EAAM7D,EAAU,OAAOl1F,CAAI,GAExB+4F,GAAO,IACjB,CACT,CACA,CC5EA,IAAI+a,GAAS,OAAO,OAAO,IAAI,EAC3BC,GAAc,UAAY,CAAE,OAAOD,IACnCE,GAAa,OAAO,OAAO,IAAI,EAC/BC,GAAe,UAAY,CAC3B,SAASA,EAAYC,EAAUC,EAAO,CAClC,IAAI/2G,EAAQ,KACZ,KAAK,SAAW82G,EAChB,KAAK,MAAQC,EACb,KAAK,KAAO,OAAO,OAAO,IAAI,EAC9B,KAAK,QAAU,OAAO,OAAO,IAAI,EACjC,KAAK,KAAO,OAAO,OAAO,IAAI,EAC9B,KAAK,cAAgB,SAAUb,EAAmBG,EAAgB,CAAE,OAAO1S,GAAgBnL,GAAY0d,CAAiB,EAClHl2G,EAAM,IAAIk2G,EAAkB,MAAOG,CAAc,EACjDH,GAAqBA,EAAkBG,CAAc,CAAC,CAAE,EAC9D,KAAK,QAAU,SAAUW,EAAU,CAC/B,OAAOxe,GAAYwe,CAAQ,EACrBh3G,EAAM,IAAIg3G,EAAS,KAAK,EACxB,OAAOA,GAAa,QACtC,EACQ,KAAK,YAAc,SAAUC,EAAcC,EAAgB,CACvD,GAAI,OAAOD,GAAiB,SACxB,OAAO1e,GAAc0e,CAAY,EAErC,GAAIze,GAAYye,CAAY,EACxB,OAAOA,EAEX,IAAIr3H,EAAKogB,EAAM,SAAS,SAASi3G,CAAY,EAAE,CAAC,EAChD,GAAIr3H,EAAI,CACJ,IAAIwwB,EAAMmoF,GAAc34G,CAAE,EAC1B,OAAIs3H,GACAl3G,EAAM,MAAMpgB,EAAIq3H,CAAY,EAEzB7mG,CACV,CACb,CACK,CACD,OAAAymG,EAAY,UAAU,SAAW,UAAY,CACzC,OAAOx6G,EAAS,GAAI,KAAK,IAAI,CACrC,EACIw6G,EAAY,UAAU,IAAM,SAAUM,EAAQ,CAC1C,OAAO,KAAK,OAAOA,EAAQ,EAAI,IAAM,MAC7C,EACIN,EAAY,UAAU,IAAM,SAAUM,EAAQtd,EAAW,CAErD,GADA,KAAK,MAAM,OAAOsd,EAAQtd,CAAS,EAC/B2b,GAAO,KAAK,KAAK,KAAM2B,CAAM,EAAG,CAChC,IAAIC,EAAc,KAAK,KAAKD,CAAM,EAClC,GAAIC,GAAe5B,GAAO,KAAK4B,EAAavd,CAAS,EACjD,OAAOud,EAAYvd,CAAS,CAEnC,CACD,GAAIA,IAAc,cACd2b,GAAO,KAAK,KAAK,SAAS,kBAAmB2B,CAAM,EACnD,OAAO,KAAK,SAAS,kBAAkBA,CAAM,EAEjD,GAAI,gBAAgB1oE,GAChB,OAAO,KAAK,OAAO,IAAI0oE,EAAQtd,CAAS,CAEpD,EACIgd,EAAY,UAAU,OAAS,SAAUM,EAAQE,EAAmB,CAGhE,GAFIA,GACA,KAAK,MAAM,OAAOF,EAAQ,UAAU,EACpC3B,GAAO,KAAK,KAAK,KAAM2B,CAAM,EAC7B,OAAO,KAAK,KAAKA,CAAM,EAE3B,GAAI,gBAAgB1oE,GAChB,OAAO,KAAK,OAAO,OAAO0oE,EAAQE,CAAiB,EAEvD,GAAI,KAAK,SAAS,kBAAkBF,CAAM,EACtC,OAAO,OAAO,OAAO,IAAI,CAErC,EACIN,EAAY,UAAU,MAAQ,SAAU5E,EAAOC,EAAO,CAClD,IAAIlyG,EAAQ,KACRm3G,EACA3e,GAAYyZ,CAAK,IACjBA,EAAQA,EAAM,OACdzZ,GAAY0Z,CAAK,IACjBA,EAAQA,EAAM,OAClB,IAAIoF,EAAW,OAAOrF,GAAU,SAC1B,KAAK,OAAOkF,EAASlF,CAAK,EAC1BA,EACFsF,EAAW,OAAOrF,GAAU,SAC1B,KAAK,OAAOiF,EAASjF,CAAK,EAC1BA,EACN,GAAKqF,EAEL,SAAUxlC,GAAU,OAAOolC,GAAW,SAAU,iCAAiC,EAAIplC,GAAU,OAAOolC,GAAW,SAAU,CAAC,EAC5H,IAAIK,EAAS,IAAI5Y,GAAW6Y,EAAqB,EAAE,MAAMH,EAAUC,CAAQ,EAE3E,GADA,KAAK,KAAKJ,CAAM,EAAIK,EAChBA,IAAWF,IACX,OAAO,KAAK,KAAKH,CAAM,EACnB,KAAK,MAAM,SAAS,CACpB,IAAIO,EAAkB,OAAO,OAAO,IAAI,EACnCJ,IACDI,EAAgB,SAAW,GAC/B,OAAO,KAAKH,CAAQ,EAAE,QAAQ,SAAUlB,EAAgB,CACpD,GAAI,CAACiB,GAAYA,EAASjB,CAAc,IAAMmB,EAAOnB,CAAc,EAAG,CAClEqB,EAAgBrB,CAAc,EAAI,EAClC,IAAIxc,EAAYuc,GAAuBC,CAAc,EACjDxc,IAAcwc,GACd,CAACr2G,EAAM,SAAS,WAAWw3G,EAAO,WAAY3d,CAAS,IACvD6d,EAAgB7d,CAAS,EAAI,GAE7B2d,EAAOnB,CAAc,IAAM,QAAU,EAAEr2G,aAAiByuC,KACxD,OAAO+oE,EAAOnB,CAAc,CAEnC,CACrB,CAAiB,EACGqB,EAAgB,YAChB,EAAEJ,GAAYA,EAAS,aACvB,KAAK,SAAS,kBAAkBH,CAAM,IAAMK,EAAO,YACnD,OAAOE,EAAgB,WAE3B,OAAO,KAAKA,CAAe,EAAE,QAAQ,SAAU7d,EAAW,CAAE,OAAO75F,EAAM,MAAM,MAAMm3G,EAAQtd,CAAS,CAAI,EAC7G,EAEb,EACIgd,EAAY,UAAU,OAAS,SAAUM,EAAQx4F,EAAQ,CACrD,IAAI3e,EAAQ,KACRo3G,EAAc,KAAK,OAAOD,CAAM,EACpC,GAAIC,EAAa,CACb,IAAIO,EAAkB,OAAO,OAAO,IAAI,EACpCC,EAAgB,GAChBC,EAAe,GACfC,EAAkB,CAClB,OAAQpB,GACR,WAAYE,GACZ,YAAape,GACb,YAAa,KAAK,YAClB,QAAS,KAAK,QACd,UAAW,SAAUuf,EAAoBz5G,EAAM,CAAE,OAAO0B,EAAM,SAAS,UAAU,OAAO+3G,GAAuB,SAAW,CACtH,UAAWA,EACX,KAAMz5G,GAAQi6F,GAAc4e,CAAM,CACrC,EAAGY,EAAoB,CAAE,MAAO/3G,CAAK,CAAE,CAAI,CAC5D,EA6BY,GA5BA,OAAO,KAAKo3G,CAAW,EAAE,QAAQ,SAAUf,EAAgB,CACvD,IAAIxc,EAAYuc,GAAuBC,CAAc,EACjD2B,EAAaZ,EAAYf,CAAc,EAC3C,GAAI2B,IAAe,OAEnB,KAAIC,EAAS,OAAOt5F,GAAW,WACzBA,EACAA,EAAO03F,CAAc,GAAK13F,EAAOk7E,CAAS,EAChD,GAAIoe,EAAQ,CACR,IAAIj1F,EAAWi1F,IAAWtB,GAAcD,GACpCuB,EAAOtU,GAAgBqU,CAAU,EAAG37G,EAASA,EAAS,CAAE,EAAEy7G,CAAe,EAAG,CAAE,UAAWje,EAAW,eAAgBwc,EAAgB,QAASr2G,EAAM,WAAWm3G,EAAQd,CAAc,CAAG,EAAC,EACxLrzF,IAAa4zF,GACb52G,EAAM,MAAM,MAAMm3G,EAAQd,CAAc,GAGpCrzF,IAAa0zF,KACb1zF,EAAW,QACXA,IAAag1F,IACbL,EAAgBtB,CAAc,EAAIrzF,EAClC40F,EAAgB,GAChBI,EAAah1F,GAGxB,CACGg1F,IAAe,SACfH,EAAe,IAEnC,CAAa,EACGD,EACA,YAAK,MAAMT,EAAQQ,CAAe,EAC9BE,IACI,gBAAgBppE,GAChB,KAAK,KAAK0oE,CAAM,EAAI,OAGpB,OAAO,KAAK,KAAKA,CAAM,EAE3B,KAAK,MAAM,MAAMA,EAAQ,UAAU,GAEhC,EAEd,CACD,MAAO,EACf,EACIN,EAAY,UAAU,OAAS,SAAUM,EAAQtd,EAAWx5F,EAAM,CAC9D,IAAId,EACA63G,EAAc,KAAK,OAAOD,CAAM,EACpC,GAAIC,EAAa,CACb,IAAI1c,EAAW,KAAK,cAAc0c,EAAa,YAAY,EACvDf,EAAiBxc,GAAax5F,EAC5B,KAAK,SAAS,kBAAkB,CAAE,SAAUq6F,EAAU,UAAWb,EAAW,KAAMx5F,EAAM,EACxFw5F,EACN,OAAO,KAAK,OAAOsd,EAAQd,GAAkB92G,EAAK,CAAE,EAChDA,EAAG82G,CAAc,EAAIM,GACrBp3G,GAAMo3G,EAAW,CACxB,CACD,MAAO,EACf,EACIE,EAAY,UAAU,MAAQ,SAAUrzG,EAAS00G,EAAO,CACpD,IAAIC,EAAU,GACd,OAAI30G,EAAQ,KACJgyG,GAAO,KAAK,KAAK,KAAMhyG,EAAQ,EAAE,IACjC20G,EAAU,KAAK,OAAO30G,EAAQ,GAAIA,EAAQ,UAAWA,EAAQ,IAAI,GAEjE,gBAAgBirC,IAAS,OAASypE,IAClCC,EAAU,KAAK,OAAO,MAAM30G,EAAS00G,CAAK,GAAKC,IAE/C30G,EAAQ,WAAa20G,IACrB,KAAK,MAAM,MAAM30G,EAAQ,GAAIA,EAAQ,WAAa,UAAU,GAG7D20G,CACf,EACItB,EAAY,UAAU,MAAQ,UAAY,CACtC,KAAK,QAAQ,IAAI,CACzB,EACIA,EAAY,UAAU,QAAU,UAAY,CACxC,IAAI72G,EAAQ,KACR0Q,EAAM,KAAK,WACX0nG,EAAe,GACnB,YAAK,aAAY,EAAG,QAAQ,SAAUx4H,EAAI,CACjC41H,GAAO,KAAKx1G,EAAM,SAAS,kBAAmBpgB,CAAE,GACjDw4H,EAAa,KAAKx4H,CAAE,CAEpC,CAAS,EACGw4H,EAAa,SACb1nG,EAAI,OAAS,CAAE,aAAc0nG,EAAa,KAAM,IAE7C1nG,CACf,EACImmG,EAAY,UAAU,QAAU,SAAUwB,EAAS,CAC/C,IAAIr4G,EAAQ,KAMZ,GALA,OAAO,KAAK,KAAK,IAAI,EAAE,QAAQ,SAAUm3G,EAAQ,CACvCkB,GAAW7C,GAAO,KAAK6C,EAASlB,CAAM,GACxCn3G,EAAM,OAAOm3G,CAAM,CAEnC,CAAS,EACGkB,EAAS,CACT,IAAIC,EAASD,EAAQ,OAAQE,EAAS/7G,GAAO67G,EAAS,CAAC,QAAQ,CAAC,EAChE,OAAO,KAAKE,CAAM,EAAE,QAAQ,SAAUpB,EAAQ,CAC1Cn3G,EAAM,MAAMm3G,EAAQoB,EAAOpB,CAAM,CAAC,CAClD,CAAa,EACGmB,GACAA,EAAO,aAAa,QAAQ,KAAK,OAAQ,IAAI,CAEpD,CACT,EACIzB,EAAY,UAAU,OAAS,SAAU2B,EAAQ,CAC7C,OAAO,KAAK,QAAQA,CAAM,GAAK,KAAK,QAAQA,CAAM,GAAK,GAAK,CACpE,EACI3B,EAAY,UAAU,QAAU,SAAU2B,EAAQ,CAC9C,GAAI,KAAK,QAAQA,CAAM,EAAI,EAAG,CAC1B,IAAIryG,EAAQ,EAAE,KAAK,QAAQqyG,CAAM,EACjC,OAAKryG,GACD,OAAO,KAAK,QAAQqyG,CAAM,EACvBryG,CACV,CACD,MAAO,EACf,EACI0wG,EAAY,UAAU,aAAe,SAAU4B,EAAK,CAChD,OAAIA,IAAQ,SAAUA,EAAM,IAAI,KAChC,OAAO,KAAK,KAAK,OAAO,EAAE,QAAQA,EAAI,IAAKA,CAAG,EAC1C,gBAAgBhqE,GAChB,KAAK,OAAO,aAAagqE,CAAG,EAG5B,OAAO,KAAK,KAAK,SAAS,iBAAiB,EAAE,QAAQA,EAAI,IAAKA,CAAG,EAE9DA,CACf,EACI5B,EAAY,UAAU,GAAK,UAAY,CACnC,IAAI72G,EAAQ,KACRy4G,EAAM,KAAK,eACX54C,EAAW,KAAK,WACpB44C,EAAI,QAAQ,SAAU74H,EAAI,CAClB41H,GAAO,KAAK31C,EAAUjgF,CAAE,IACxB,OAAO,KAAKogB,EAAM,gBAAgBpgB,CAAE,CAAC,EAAE,QAAQ64H,EAAI,IAAKA,CAAG,EAC3D,OAAO54C,EAASjgF,CAAE,EAElC,CAAS,EACD,IAAI84H,EAAc,OAAO,KAAK74C,CAAQ,EACtC,GAAI64C,EAAY,OAAQ,CAEpB,QADIC,EAAS,KACNA,aAAkBlqE,IACrBkqE,EAASA,EAAO,OACpBD,EAAY,QAAQ,SAAU94H,EAAI,CAAE,OAAO+4H,EAAO,OAAO/4H,CAAE,CAAE,CAAE,CAClE,CACD,OAAO84H,CACf,EACI7B,EAAY,UAAU,gBAAkB,SAAUM,EAAQ,CACtD,GAAI,CAAC3B,GAAO,KAAK,KAAK,KAAM2B,CAAM,EAAG,CACjC,IAAIyB,EAAU,KAAK,KAAKzB,CAAM,EAAI,OAAO,OAAO,IAAI,EAChDt0E,EAAO,KAAK,KAAKs0E,CAAM,EAC3B,GAAI,CAACt0E,EACD,OAAO+1E,EACX,IAAIC,EAAY,IAAI,IAAI,CAACh2E,CAAI,CAAC,EAC9Bg2E,EAAU,QAAQ,SAAUnoG,EAAK,CACzB8nF,GAAY9nF,CAAG,IACfkoG,EAAQloG,EAAI,KAAK,EAAI,IAErB4nF,GAAgB5nF,CAAG,GACnB,OAAO,KAAKA,CAAG,EAAE,QAAQ,SAAU9T,EAAK,CACpC,IAAIuX,EAAQzD,EAAI9T,CAAG,EACf07F,GAAgBnkF,CAAK,GACrB0kG,EAAU,IAAI1kG,CAAK,CAE/C,CAAqB,CAErB,CAAa,CACJ,CACD,OAAO,KAAK,KAAKgjG,CAAM,CAC/B,EACIN,EAAY,UAAU,aAAe,UAAY,CAC7C,OAAO,KAAK,MAAM,SAAS,YAAY,SAAS,CACxD,EACWA,CACX,EAAC,EAEGiC,GAAc,UAAY,CAC1B,SAASA,EAAWC,EAAStvG,EAAQ,CAC7BA,IAAW,SAAUA,EAAS,MAClC,KAAK,QAAUsvG,EACf,KAAK,OAAStvG,EACd,KAAK,EAAI,KACT,KAAK,aAAY,CACpB,CACD,OAAAqvG,EAAW,UAAU,aAAe,UAAY,CAC5C,KAAK,EAAI,KAAK,QAAUztF,GAAG,EAAK,KAChC,KAAK,SAAW,IAAI6lF,GAAKnM,EAAa,CAC9C,EACI+T,EAAW,UAAU,OAAS,SAAU3B,EAAQd,EAAgB,CAC5D,GAAI,KAAK,EAAG,CACR,KAAK,EAAE2C,GAAW7B,EAAQd,CAAc,CAAC,EACzC,IAAIxc,EAAYuc,GAAuBC,CAAc,EACjDxc,IAAcwc,GACd,KAAK,EAAE2C,GAAW7B,EAAQtd,CAAS,CAAC,EAEpC,KAAK,QACL,KAAK,OAAO,OAAOsd,EAAQd,CAAc,CAEhD,CACT,EACIyC,EAAW,UAAU,MAAQ,SAAU3B,EAAQd,EAAgB,CACvD,KAAK,GACL,KAAK,EAAE,MAAM2C,GAAW7B,EAAQd,CAAc,EAAGA,IAAmB,WAAa,SAAW,UAAU,CAElH,EACWyC,CACX,EAAC,EACD,SAASE,GAAW7B,EAAQd,EAAgB,CACxC,OAAOA,EAAiB,IAAMc,CAClC,CACO,SAAS8B,GAA+BhD,EAAOiD,EAAU,CACxDC,GAAsBlD,CAAK,GAC3BA,EAAM,MAAM,OAAOiD,EAAU,UAAU,CAE/C,EACC,SAAUrC,EAAa,CACpB,IAAI3rE,EAAQ,SAAUz7B,EAAQ,CAC1BtT,GAAU+uC,EAAMz7B,CAAM,EACtB,SAASy7B,EAAK3rC,EAAI,CACd,IAAIu3G,EAAWv3G,EAAG,SAAUC,EAAKD,EAAG,cAAe65G,EAAgB55G,IAAO,OAAS,GAAOA,EAAI0iG,EAAO3iG,EAAG,KACpGS,EAAQyP,EAAO,KAAK,KAAMqnG,EAAU,IAAIgC,GAAWM,CAAa,CAAC,GAAK,KAC1E,OAAAp5G,EAAM,MAAQ,IAAIq5G,GAAMr5G,CAAK,EAC7BA,EAAM,YAAc,IAAIkxG,GAAKnM,EAAa,EACtC7C,GACAliG,EAAM,QAAQkiG,CAAI,EACfliG,CACV,CACD,OAAAkrC,EAAK,UAAU,SAAW,SAAUouE,EAASC,EAAQ,CACjD,OAAO,KAAK,MAAM,SAASD,EAASC,CAAM,CACtD,EACQruE,EAAK,UAAU,YAAc,UAAY,CACrC,OAAO,IACnB,EACQA,EAAK,UAAU,WAAa,UAAY,CACpC,OAAO,KAAK,YAAY,YAAY,SAAS,CACzD,EACeA,CACf,EAAM2rE,CAAW,EACbA,EAAY,KAAO3rE,CACvB,GAAG2rE,KAAgBA,GAAc,CAAE,EAAC,EACpC,IAAIpoE,GAAS,SAAUh/B,EAAQ,CAC3BtT,GAAUsyC,EAAOh/B,CAAM,EACvB,SAASg/B,EAAM7uD,EAAI6pB,EAAQ8vG,EAAQxC,EAAO,CACtC,IAAI/2G,EAAQyP,EAAO,KAAK,KAAMhG,EAAO,SAAUstG,CAAK,GAAK,KACzD,OAAA/2G,EAAM,GAAKpgB,EACXogB,EAAM,OAASyJ,EACfzJ,EAAM,OAASu5G,EACfv5G,EAAM,MAAQ+2G,EACdwC,EAAOv5G,CAAK,EACLA,CACV,CACD,OAAAyuC,EAAM,UAAU,SAAW,SAAU6qE,EAASC,EAAQ,CAClD,OAAO,IAAI9qE,EAAM6qE,EAAS,KAAMC,EAAQ,KAAK,KAAK,CAC1D,EACI9qE,EAAM,UAAU,YAAc,SAAU6qE,EAAS,CAC7C,IAAIt5G,EAAQ,KACRyJ,EAAS,KAAK,OAAO,YAAY6vG,CAAO,EAC5C,OAAIA,IAAY,KAAK,IACb,KAAK,MAAM,SACX,OAAO,KAAK,KAAK,IAAI,EAAE,QAAQ,SAAUnC,EAAQ,CAC7C,IAAIqC,EAAiBx5G,EAAM,KAAKm3G,CAAM,EAClCsC,EAAoBhwG,EAAO,OAAU0tG,CAAM,EAC1CsC,EAGKD,EAMDA,IAAmBC,GACxB,OAAO,KAAKD,CAAc,EAAE,QAAQ,SAAUnD,EAAgB,CACrDzG,GAAM4J,EAAenD,CAAc,EAAGoD,EAAkBpD,CAAc,CAAC,GACxEr2G,EAAM,MAAM,MAAMm3G,EAAQd,CAAc,CAExE,CAAyB,GAVDr2G,EAAM,MAAM,MAAMm3G,EAAQ,UAAU,EACpC,OAAO,KAAKsC,CAAiB,EAAE,QAAQ,SAAUpD,EAAgB,CAC7Dr2G,EAAM,MAAM,MAAMm3G,EAAQd,CAAc,CACpE,CAAyB,GANDr2G,EAAM,OAAOm3G,CAAM,CAe3C,CAAiB,EAEE1tG,GAEPA,IAAW,KAAK,OACT,KACJA,EAAO,SAAS,KAAK,GAAI,KAAK,MAAM,CACnD,EACIglC,EAAM,UAAU,SAAW,UAAY,CACnC,OAAOpyC,EAASA,EAAS,GAAI,KAAK,OAAO,UAAU,EAAG,KAAK,IAAI,CACvE,EACIoyC,EAAM,UAAU,gBAAkB,SAAU0oE,EAAQ,CAChD,IAAIuC,EAAa,KAAK,OAAO,gBAAgBvC,CAAM,EACnD,OAAO3B,GAAO,KAAK,KAAK,KAAM2B,CAAM,EAAI96G,EAASA,EAAS,CAAE,EAAEq9G,CAAU,EAAGjqG,EAAO,UAAU,gBAAgB,KAAK,KAAM0nG,CAAM,CAAC,EAAIuC,CAC1I,EACIjrE,EAAM,UAAU,WAAa,UAAY,CAErC,QADIn8D,EAAI,KAAK,OACNA,EAAE,QACLA,EAAIA,EAAE,OACV,OAAOA,EAAE,WAAW,MAAMA,EAAG,SAAS,CAC9C,EACWm8D,CACX,EAAEooE,EAAW,EACTwC,GAAS,SAAU5pG,EAAQ,CAC3BtT,GAAUk9G,EAAO5pG,CAAM,EACvB,SAAS4pG,EAAMx2E,EAAM,CACjB,OAAOpzB,EAAO,KAAK,KAAM,oBAAqBozB,EAAM,UAAY,GAAK,IAAIi2E,GAAWj2E,EAAK,MAAM,QAASA,EAAK,KAAK,CAAC,GAAK,IAC3H,CACD,OAAAw2E,EAAM,UAAU,YAAc,UAAY,CACtC,OAAO,IACf,EACIA,EAAM,UAAU,MAAQ,UAAY,CAChC,OAAO,KAAK,OAAO,MAAM,MAAM,KAAK,OAAQ,SAAS,CAC7D,EACWA,CACX,EAAE5qE,EAAK,EACP,SAASgpE,GAAsBkC,EAAgBC,EAAgB78F,EAAU,CACrE,IAAI88F,EAAgBF,EAAe58F,CAAQ,EACvC+8F,EAAgBF,EAAe78F,CAAQ,EAC3C,OAAO6yF,GAAMiK,EAAeC,CAAa,EAAID,EAAgBC,CACjE,CACO,SAASX,GAAsBlD,EAAO,CACzC,MAAO,CAAC,EAAEA,aAAiBY,IAAeZ,EAAM,MAAM,QAC1D,CC5cA,SAAS8D,GAAY58G,EAAO,CACxB,OAAI68G,GAAgB78G,CAAK,EACdkkB,GAAQlkB,CAAK,EACdA,EAAM,MAAM,CAAC,EACbd,EAAS,CAAE,UAAW,OAAO,eAAec,CAAK,CAAC,EAAIA,CAAK,EAE9DA,CACX,CACA,IAAI88G,GAAe,UAAY,CAC3B,SAASA,GAAc,CACnB,KAAK,MAAQ,IAAKjV,GAAgB,QAAU,KAC5C,KAAK,KAAO,IAAIkM,GAAKnM,EAAa,EAClC,KAAK,OAAS,IAAI,QAClB,KAAK,WAAa,IAAI,IACtB,KAAK,MAAQ,KAAK,MAAM,CAAE,EAC7B,CACD,OAAAkV,EAAY,UAAU,QAAU,SAAU98G,EAAO,CAC7C,OAAO68G,GAAgB78G,CAAK,GAAK,KAAK,MAAM,IAAIA,CAAK,CAC7D,EACI88G,EAAY,UAAU,KAAO,SAAU98G,EAAO,CAC1C,GAAI68G,GAAgB78G,CAAK,EAAG,CACxB,IAAIgW,EAAO4mG,GAAY58G,CAAK,EAC5B,YAAK,OAAO,IAAIgW,EAAMhW,CAAK,EACpBgW,CACV,CACD,OAAOhW,CACf,EACI88G,EAAY,UAAU,MAAQ,SAAU98G,EAAO,CAC3C,IAAI6C,EAAQ,KACZ,GAAIg6G,GAAgB78G,CAAK,EAAG,CACxB,IAAI+8G,EAAW,KAAK,OAAO,IAAI/8G,CAAK,EACpC,GAAI+8G,EACA,OAAOA,EACX,IAAIxyB,EAAQ,OAAO,eAAevqF,CAAK,EACvC,OAAQuqF,EAAK,CACT,KAAK,MAAM,UAAW,CAClB,GAAI,KAAK,MAAM,IAAIvqF,CAAK,EACpB,OAAOA,EACX,IAAI2V,EAAQ3V,EAAM,IAAI,KAAK,MAAO,IAAI,EAClCgpB,EAAO,KAAK,KAAK,YAAYrT,CAAK,EACtC,OAAKqT,EAAK,QACN,KAAK,MAAM,IAAIA,EAAK,MAAQrT,CAAK,EAC7B,SACA,OAAO,OAAOA,CAAK,GAGpBqT,EAAK,KACf,CACD,KAAK,KACL,KAAK,OAAO,UAAW,CACnB,GAAI,KAAK,MAAM,IAAIhpB,CAAK,EACpB,OAAOA,EACX,IAAIg9G,EAAU,OAAO,eAAeh9G,CAAK,EACrCi9G,EAAU,CAACD,CAAO,EAClB75F,EAAO,KAAK,WAAWnjB,CAAK,EAChCi9G,EAAQ,KAAK95F,EAAK,IAAI,EACtB,IAAI+5F,EAAoBD,EAAQ,OAChC95F,EAAK,OAAO,QAAQ,SAAU1jB,EAAK,CAC/Bw9G,EAAQ,KAAKp6G,EAAM,MAAM7C,EAAMP,CAAG,CAAC,CAAC,CAC5D,CAAqB,EACD,IAAIupB,EAAO,KAAK,KAAK,YAAYi0F,CAAO,EACxC,GAAI,CAACj0F,EAAK,OAAQ,CACd,IAAIm0F,EAAQn0F,EAAK,OAAS,OAAO,OAAOg0F,CAAO,EAC/C,KAAK,MAAM,IAAIG,CAAK,EACpBh6F,EAAK,OAAO,QAAQ,SAAU1jB,EAAKL,EAAG,CAClC+9G,EAAM19G,CAAG,EAAIw9G,EAAQC,EAAoB99G,CAAC,CACtE,CAAyB,EACG,SACA,OAAO,OAAO+9G,CAAK,CAE1B,CACD,OAAOn0F,EAAK,MACf,CACJ,CACJ,CACD,OAAOhpB,CACf,EACI88G,EAAY,UAAU,WAAa,SAAUvpG,EAAK,CAC9C,IAAI4P,EAAO,OAAO,KAAK5P,CAAG,EACtByV,EAAO,KAAK,KAAK,YAAY7F,CAAI,EACrC,GAAI,CAAC6F,EAAK,KAAM,CACZ7F,EAAK,KAAI,EACT,IAAIi6F,EAAO,KAAK,UAAUj6F,CAAI,GACxB6F,EAAK,KAAO,KAAK,WAAW,IAAIo0F,CAAI,IACtC,KAAK,WAAW,IAAIA,EAAMp0F,EAAK,KAAO,CAAE,OAAQ7F,EAAM,KAAMi6F,CAAM,EAEzE,CACD,OAAOp0F,EAAK,IACpB,EACW8zF,CACX,EAAC,EAEUO,GAAqB,OAAO,OAAO,SAAUr9G,EAAO,CAC3D,GAAI68G,GAAgB78G,CAAK,EAAG,CACpBs9G,KAAmB,QACnBC,KAEJ,IAAIC,EAAYF,GAAe,MAAMt9G,CAAK,EACtCo9G,EAAOK,GAAe,IAAID,CAAS,EACvC,OAAIJ,IAAS,QACTK,GAAe,IAAID,EAAWJ,EAAO,KAAK,UAAUI,CAAS,CAAC,EAE3DJ,CACV,CACD,OAAO,KAAK,UAAUp9G,CAAK,CAC/B,EAAG,CACC,MAAOu9G,EACX,CAAC,EACGD,GACAG,GACJ,SAASF,IAA0B,CAC/BD,GAAiB,IAAIR,GACrBW,GAAiB,IAAK7V,GAAgB,QAAU,IACpD,CC5GA,SAAS8V,GAAwBr3G,EAAS,CACtC,MAAO,CACHA,EAAQ,aACRA,EAAQ,kBACRA,EAAQ,QACRA,EAAQ,QAAQ,eACxB,CACA,CACA,IAAIs3G,GAAe,UAAY,CAC3B,SAASA,EAAYz7G,EAAQ,CACzB,IAAIW,EAAQ,KACZ,KAAK,aAAe,IAAK+kG,GAAgB,QAAU,KACnD,KAAK,OAAS4B,GAAQtnG,EAAQ,CAC1B,YAAaA,EAAO,cAAgB,GACpC,gBAAiB02G,GAAsB12G,CAAM,CACzD,CAAS,EACD,KAAK,MAAQA,EAAO,OAAS,IAAI46G,GACjC,KAAK,oBAAsB3kB,GAAK,SAAU9xF,EAAS,CAC/C,IAAIjE,EACAw7G,EAAkBv3G,EAAQ,QAAQ,gBAClCw3G,EAAWH,GAAwBr3G,CAAO,EAC9Cw3G,EAAS,CAAC,EAAI,CAACD,EACf,IAAIE,GAAS17G,EAAKS,EAAM,qBAAqB,KAAK,MAAMT,EAAIy7G,CAAQ,EACpE,OAAIC,EACIF,EACO1+G,EAASA,EAAS,GAAI4+G,CAAK,EAAG,CAAE,OAAQj7G,EAAM,MAAM,MAAMi7G,EAAM,MAAM,CAAG,GAE7EA,GAEXhC,GAA+Bz1G,EAAQ,QAAQ,MAAOA,EAAQ,aAAa,KAAK,EACzExD,EAAM,qBAAqBwD,CAAO,EACrD,EAAW,CACC,IAAK,KAAK,OAAO,mBACjB,QAASq3G,GACT,aAAc,SAAUplB,EAAchsF,EAAQkG,EAASorG,EAAiB,CACpE,GAAI5B,GAAsBxpG,EAAQ,KAAK,EACnC,OAAOA,EAAQ,MAAM,aAAa8lF,EAAc+C,GAAY/uF,CAAM,EAAIA,EAAO,MAAQA,EAAQkG,EAAQ,UAAWorG,CAAe,CAEtI,CACb,CAAS,EACD,KAAK,wBAA0BzlB,GAAK,SAAU9xF,EAAS,CACnD,OAAAy1G,GAA+Bz1G,EAAQ,QAAQ,MAAOA,EAAQ,aAAa,KAAK,EACzExD,EAAM,yBAAyBwD,CAAO,CACzD,EAAW,CACC,IAAK,KAAK,OAAO,mBACjB,aAAc,SAAUjE,EAAI,CACxB,IAAIo4E,EAAQp4E,EAAG,MAAOuT,EAAQvT,EAAG,MAAOoQ,EAAUpQ,EAAG,QACrD,GAAI45G,GAAsBxpG,EAAQ,KAAK,EACnC,OAAOA,EAAQ,MAAM,aAAagoE,EAAO7kE,EAAOnD,EAAQ,SAAS,CAExE,CACb,CAAS,CACJ,CACD,OAAAmrG,EAAY,UAAU,WAAa,UAAY,CAC3C,KAAK,MAAQ,IAAIb,EACzB,EACIa,EAAY,UAAU,sBAAwB,SAAUv7G,EAAI,CACxD,IAAI02G,EAAQ12G,EAAG,MAAOy4F,EAAQz4F,EAAG,MAAOC,EAAKD,EAAG,OAAQi5G,EAASh5G,IAAO,OAAS,aAAeA,EAAIq3F,EAAYt3F,EAAG,UAAWE,EAAKF,EAAG,kBAAmB27G,EAAoBz7G,IAAO,OAAS,GAAOA,EAAIC,EAAKH,EAAG,gBAAiBw7G,EAAkBr7G,IAAO,OAAS,KAAK,OAAO,gBAAkBA,EAC7Ro3G,EAAW,KAAK,OAAO,MAAM,SACjCjgB,EAAYx6F,EAASA,EAAS,GAAIm/F,GAAiBP,GAAmBjD,CAAK,CAAC,CAAC,EAAGnB,CAAS,EACzF,IAAIhzE,EAAU00E,GAAcigB,CAAM,EAC9B2C,EAAa,KAAK,oBAAoB,CACtC,aAAc9f,GAAkBrD,CAAK,EAAE,aACvC,kBAAmBn0E,EACnB,aAAcA,EACd,QAASxnB,EAAS,CAAE,MAAO45G,EAAO,MAAOje,EAAO,SAAU8e,EAAU,UAAWjgB,EAAW,UAAW2jB,GAAmB3jB,CAAS,EAAG,gBAAiBkkB,CAAiB,EAAEtE,GAAuBze,EAAO,KAAK,OAAO,SAAS,CAAC,CACxO,CAAS,EACGojB,EACJ,GAAID,EAAW,UACXC,EAAU,CAAC,IAAI7F,GAAkB8F,GAAaF,EAAW,OAAO,EAAGA,EAAW,QAASnjB,EAAOnB,CAAS,CAAC,EACpG,CAACqkB,GACD,MAAME,EAAQ,CAAC,EAGvB,MAAO,CACH,OAAQD,EAAW,OACnB,SAAU,CAACC,EACX,QAASA,CACrB,CACA,EACIN,EAAY,UAAU,QAAU,SAAUr9G,EAAQgM,EAAQgsF,EAAc9lF,EAAS,CAC7E,GAAIwpG,GAAsBxpG,EAAQ,KAAK,GACnC,KAAK,aAAa,IAAIlS,CAAM,IAAMg4F,EAAc,CAChD,IAAI6lB,EAAS,KAAK,oBAAoB,KAAK7lB,EAAchsF,EAAQkG,EAAS,KAAK,MAAM,QAAQlS,CAAM,CAAC,EACpG,GAAI69G,GAAU79G,IAAW69G,EAAO,OAC5B,MAAO,EAEd,CACD,MAAO,EACf,EACIR,EAAY,UAAU,qBAAuB,SAAUv7G,EAAI,CACvD,IAAIS,EAAQ,KACRy1F,EAAel2F,EAAG,aAAc22G,EAAoB32G,EAAG,kBAAmBg8G,EAAeh8G,EAAG,aAAcoQ,EAAUpQ,EAAG,QAC3H,GAAIi5F,GAAY0d,CAAiB,GAC7B,CAACvmG,EAAQ,SAAS,kBAAkBumG,EAAkB,KAAK,GAC3D,CAACvmG,EAAQ,MAAM,IAAIumG,EAAkB,KAAK,EAC1C,MAAO,CACH,OAAQ,KAAK,MAAM,MACnB,QAAS,iCAAiC,OAAOA,EAAkB,MAAO,SAAS,CACnG,EAEQ,IAAIrf,EAAYlnF,EAAQ,UAAWmnG,EAAWnnG,EAAQ,SAAUsmG,EAAQtmG,EAAQ,MAC5E+qF,EAAWub,EAAM,cAAcC,EAAmB,YAAY,EAC9DsF,EAAiB,GACjBJ,EACAK,EAAgB,IAAI7c,GACpB,KAAK,OAAO,aACZ,OAAOlE,GAAa,UACpB,CAACoc,EAAS,kBAAkBpc,CAAQ,GACpC8gB,EAAe,KAAK,CAAE,WAAY9gB,CAAU,GAEhD,SAASghB,EAAcj+G,EAAQk+G,EAAY,CACvC,IAAIp8G,EACJ,OAAI9B,EAAO,UACP29G,EAAUK,EAAc,MAAML,GAAU77G,EAAK,GAAIA,EAAGo8G,CAAU,EAAIl+G,EAAO,QAAS8B,EAAE,GAEjF9B,EAAO,MACjB,CACD,IAAIgmG,EAAU,IAAI,IAAIhO,EAAa,UAAU,EAC7CgO,EAAQ,QAAQ,SAAU3jC,EAAW,CACjC,IAAIvgE,EAAIC,EACR,GAAKo3F,GAAc92B,EAAW+2B,CAAS,EAEvC,GAAI2D,GAAQ16B,CAAS,EAAG,CACpB,IAAIk4C,EAAalB,EAAS,UAAU,CAChC,UAAWh3C,EAAU,KAAK,MAC1B,MAAOA,EACP,UAAWnwD,EAAQ,UACnB,KAAMumG,CACT,EAAEvmG,CAAO,EACNgsG,EAAarhB,GAAuBx6B,CAAS,EAC7Ck4C,IAAe,OACVla,GAAsB,MAAMh+B,CAAS,IACtCs7C,EAAUK,EAAc,MAAML,GAAU77G,EAAK,CAAE,EAC3CA,EAAGo8G,CAAU,EAAI,qBAAqB,OAAO77C,EAAU,KAAK,MAAO,OAAO,EAAE,OAAO04B,GAAY0d,CAAiB,EAC1GA,EAAkB,MAAQ,UAC1B,UAAY,KAAK,UAAUA,EAAmB,KAAM,CAAC,CAAC,EAC5D32G,KAGH8hB,GAAQ22F,CAAU,EACvBA,EAAa0D,EAAc17G,EAAM,wBAAwB,CACrD,MAAO8/D,EACP,MAAOk4C,EACP,aAAcuD,EACd,QAAS5rG,CACjC,CAAqB,EAAGgsG,CAAU,EAER77C,EAAU,aAKXk4C,GAAc,OACnBA,EAAa0D,EAAc17G,EAAM,oBAAoB,CACjD,aAAc8/D,EAAU,aACxB,kBAAmBk4C,EACnB,aAAcxf,GAAYwf,CAAU,EAAIA,EAAauD,EACrD,QAAS5rG,CACjC,CAAqB,EAAGgsG,CAAU,GAVVhsG,EAAQ,kBACRqoG,EAAah4G,EAAM,MAAM,KAAKg4G,CAAU,GAW5CA,IAAe,QACfwD,EAAe,MAAMh8G,EAAK,CAAE,EAAEA,EAAGm8G,CAAU,EAAI3D,EAAYx4G,GAElE,KACI,CACD,IAAI24F,EAAWC,GAAyBt4B,EAAWnwD,EAAQ,cAAc,EACzE,GAAI,CAACwoF,GAAYr4B,EAAU,OAAS8rB,GAAK,gBACrC,MAAM,QAAU,IAAIjE,GAAe,qBAAqB,OAAO7nB,EAAU,KAAK,KAAK,CAAC,EAAI,IAAI6nB,GAAe,CAAC,EAE5GwQ,GAAY2e,EAAS,gBAAgB3e,EAAUuC,CAAQ,GACvDvC,EAAS,aAAa,WAAW,QAAQsL,EAAQ,IAAKA,CAAO,CAEpE,CACb,CAAS,EACD,IAAIhmG,EAASihG,GAAe8c,CAAc,EACtCI,EAAc,CAAE,OAAQn+G,EAAQ,QAAS29G,CAAO,EAChDS,EAASlsG,EAAQ,gBACf,KAAK,MAAM,MAAMisG,CAAW,EAC5BjY,GAAgBiY,CAAW,EACjC,OAAIC,EAAO,QACP,KAAK,aAAa,IAAIA,EAAO,OAAQpmB,CAAY,EAE9ComB,CACf,EACIf,EAAY,UAAU,yBAA2B,SAAUv7G,EAAI,CAC3D,IAAIS,EAAQ,KACR23E,EAAQp4E,EAAG,MAAOuT,EAAQvT,EAAG,MAAOg8G,EAAeh8G,EAAG,aAAcoQ,EAAUpQ,EAAG,QACjF67G,EACAK,EAAgB,IAAI7c,GACxB,SAAS8c,EAAcI,EAAav/G,EAAG,CACnC,IAAIgD,EACJ,OAAIu8G,EAAY,UACZV,EAAUK,EAAc,MAAML,GAAU77G,EAAK,GAAIA,EAAGhD,CAAC,EAAIu/G,EAAY,QAASv8G,EAAE,GAE7Eu8G,EAAY,MACtB,CACD,OAAInkC,EAAM,eACN7kE,EAAQA,EAAM,OAAOnD,EAAQ,MAAM,OAAO,GAE9CmD,EAAQA,EAAM,IAAI,SAAUuN,EAAM9jB,EAAG,CACjC,OAAI8jB,IAAS,KACF,KAEPgB,GAAQhB,CAAI,EACLq7F,EAAc17G,EAAM,wBAAwB,CAC/C,MAAO23E,EACP,MAAOt3D,EACP,aAAck7F,EACd,QAAS5rG,CAC7B,CAAiB,EAAGpT,CAAC,EAELo7E,EAAM,aACC+jC,EAAc17G,EAAM,oBAAoB,CAC3C,aAAc23E,EAAM,aACpB,kBAAmBt3D,EACnB,aAAcm4E,GAAYn4E,CAAI,EAAIA,EAAOk7F,EACzC,QAAS5rG,CAC7B,CAAiB,EAAGpT,CAAC,GAEL,SACAw/G,GAA6BpsG,EAAQ,MAAOgoE,EAAOt3D,CAAI,EAEpDA,EACnB,CAAS,EACM,CACH,OAAQ1Q,EAAQ,gBAAkB,KAAK,MAAM,MAAMmD,CAAK,EAAIA,EAC5D,QAASsoG,CACrB,CACA,EACWN,CACX,EAAC,EAED,SAASO,GAAaW,EAAM,CACxB,GAAI,CACA,KAAK,UAAUA,EAAM,SAAUp+G,EAAGT,EAAO,CACrC,GAAI,OAAOA,GAAU,SACjB,MAAMA,EACV,OAAOA,CACnB,CAAS,CACJ,OACMM,EAAQ,CACX,OAAOA,CACV,CACL,CACA,SAASs+G,GAA6B9F,EAAOt+B,EAAOqgC,EAAY,CAC5D,GAAI,CAACrgC,EAAM,aAAc,CACrB,IAAIkhC,EAAY,IAAI,IAAI,CAACb,CAAU,CAAC,EACpCa,EAAU,QAAQ,SAAU17G,EAAO,CAC3Bm7F,GAAgBn7F,CAAK,IACrB,QAAU40E,GAAU,CAACymB,GAAYr7F,CAAK,EAAG,4CAA4C,OAAO64G,GAA2BC,EAAO94G,CAAK,EAAG,4BAA4B,EAAE,OAAOw6E,EAAM,KAAK,KAAK,CAAC,EAAI5F,GAAU,CAACymB,GAAYr7F,CAAK,EAAG,CAAC,EAChO,OAAO,OAAOA,CAAK,EAAE,QAAQ07G,EAAU,IAAKA,CAAS,EAErE,CAAS,CACJ,CACL,CCvQO,IAAIoD,GAAY,IAAInK,GACvBoK,GAAe,IAAI,QACvB,SAASC,GAAarhG,EAAO,CACzB,IAAIy1F,EAAO2L,GAAa,IAAIphG,CAAK,EACjC,OAAKy1F,GACD2L,GAAa,IAAIphG,EAAOy1F,EAAO,CAC3B,KAAM,IAAI,IACV,IAAKllF,GAAK,CACtB,CAAS,EAEEklF,CACX,CACO,SAAS6L,GAAYthG,EAAO,CAC/BqhG,GAAarhG,CAAK,EAAE,KAAK,QAAQ,SAAUuhG,EAAI,CAAE,OAAOA,EAAG,YAAYvhG,CAAK,CAAI,EACpF,CACO,SAASwhG,GAAYxhG,EAAO,CAC/BqhG,GAAarhG,CAAK,EAAE,KAAK,QAAQ,SAAUuhG,EAAI,CAAE,OAAOA,EAAG,YAAYvhG,CAAK,CAAI,EACpF,CACO,SAASyhG,GAAQp/G,EAAO,CAC3B,IAAIw3G,EAAS,IAAI,IACb6H,EAAY,IAAI,IAChBH,EAAK,SAAUr5F,EAAU,CACzB,GAAI,UAAU,OAAS,GACnB,GAAI7lB,IAAU6lB,EAAU,CACpB7lB,EAAQ6lB,EACR2xF,EAAO,QAAQ,SAAU75F,EAAO,CAC5BqhG,GAAarhG,CAAK,EAAE,IAAI,MAAMuhG,CAAE,EAChCI,GAAU3hG,CAAK,CACnC,CAAiB,EACD,IAAI4hG,EAAe,MAAM,KAAKF,CAAS,EACvCA,EAAU,MAAK,EACfE,EAAa,QAAQ,SAAU3pC,EAAU,CAAE,OAAOA,EAAS51E,CAAK,CAAE,CAAE,CACvE,MAEA,CACD,IAAI2d,EAAQmhG,GAAU,WAClBnhG,IACA6hG,EAAO7hG,CAAK,EACZqhG,GAAarhG,CAAK,EAAE,IAAIuhG,CAAE,EAEjC,CACD,OAAOl/G,CACf,EACIk/G,EAAG,aAAe,SAAUtpC,EAAU,CAClC,OAAAypC,EAAU,IAAIzpC,CAAQ,EACf,UAAY,CACfypC,EAAU,OAAOzpC,CAAQ,CACrC,CACA,EACI,IAAI4pC,EAASN,EAAG,YAAc,SAAUvhG,EAAO,CAC3C,OAAA65F,EAAO,IAAI75F,CAAK,EAChBqhG,GAAarhG,CAAK,EAAE,KAAK,IAAIuhG,CAAE,EACxBA,CACf,EACI,OAAAA,EAAG,YAAc,SAAUvhG,EAAO,CAAE,OAAO65F,EAAO,OAAO75F,CAAK,GACvDuhG,CACX,CACA,SAASI,GAAU3hG,EAAO,CAClBA,EAAM,kBACNA,EAAM,iBAAgB,CAE9B,CC5DA,IAAI8hG,GAAqB,OAAO,OAAO,IAAI,EAC3C,SAASC,GAAoBC,EAAM,CAC/B,IAAIC,EAAW,KAAK,UAAUD,CAAI,EAClC,OAAOF,GAAmBG,CAAQ,IAC7BH,GAAmBG,CAAQ,EAAI,OAAO,OAAO,IAAI,EAC1D,CACO,SAASC,GAAyBC,EAAW,CAChD,IAAI1M,EAAOsM,GAAoBI,CAAS,EACxC,OAAO1M,EAAK,cAAgBA,EAAK,YAAc,SAAUtgB,EAAQtgF,EAAS,CACtE,IAAIutG,EAAU,SAAU5+G,EAAM1B,EAAK,CAAE,OAAO+S,EAAQ,UAAU/S,EAAK0B,CAAI,GACnE6+G,EAAYxtG,EAAQ,UAAYytG,GAAsBH,EAAW,SAAUI,EAAe,CAC1F,IAAIC,EAAYC,GAAe5tG,EAAQ,YAAa0tG,EAAeH,CAAO,EAC1E,OAAII,IAAc,QACdrtB,IAAWtgF,EAAQ,aACnB6lG,GAAO,KAAKvlB,EAAQotB,EAAc,CAAC,CAAC,IACpCC,EAAYC,GAAettB,EAAQotB,EAAeG,EAAU,GAEhE,QAAUzrC,GAAUurC,IAAc,OAAQ,kBAAkB,OAAOD,EAAc,KAAK,GAAG,EAAG,oCAAoC,EAAE,OAAO,KAAK,UAAUptB,CAAM,CAAC,CAAC,EAAIle,GAAUurC,IAAc,OAAQ,CAAC,EAC9LA,CACnB,CAAS,EACD,MAAO,GAAG,OAAO3tG,EAAQ,SAAU,GAAG,EAAE,OAAO,KAAK,UAAUwtG,CAAS,CAAC,CAChF,EACA,CACO,SAASM,GAAuBR,EAAW,CAC9C,IAAI1M,EAAOsM,GAAoBI,CAAS,EACxC,OAAO1M,EAAK,YAAcA,EAAK,UAAY,SAAUlwG,EAAMd,EAAI,CAC3D,IAAIo4E,EAAQp4E,EAAG,MAAOs3F,EAAYt3F,EAAG,UAAWs6F,EAAYt6F,EAAG,UAC3Dm+G,EAAYN,GAAsBH,EAAW,SAAUU,EAAS,CAChE,IAAIC,EAAWD,EAAQ,CAAC,EACpBE,EAAYD,EAAS,OAAO,CAAC,EACjC,GAAIC,IAAc,IAAK,CACnB,GAAIlmC,GAASikB,GAAgBjkB,EAAM,UAAU,EAAG,CAC5C,IAAImmC,EAAkBF,EAAS,MAAM,CAAC,EAClC5pI,EAAI2jG,EAAM,WAAW,KAAK,SAAU3jG,EAAG,CAAE,OAAOA,EAAE,KAAK,QAAU8pI,CAAkB,GACnFC,EAAgB/pI,GAAKomH,GAAyBpmH,EAAG6iH,CAAS,EAC9D,OAAOknB,GAAiBR,GAAeQ,EAAeJ,EAAQ,MAAM,CAAC,CAAC,CACzE,CACD,MACH,CACD,GAAIE,IAAc,IAAK,CACnB,IAAIG,EAAeJ,EAAS,MAAM,CAAC,EACnC,GAAI/mB,GAAa2e,GAAO,KAAK3e,EAAWmnB,CAAY,EAAG,CACnD,IAAIC,EAAaN,EAAQ,MAAM,CAAC,EAChC,OAAAM,EAAW,CAAC,EAAID,EACTT,GAAe1mB,EAAWonB,CAAU,CAC9C,CACD,MACH,CACD,GAAI59G,EACA,OAAOk9G,GAAel9G,EAAMs9G,CAAO,CAEnD,CAAS,EACG54G,EAAS,KAAK,UAAU24G,CAAS,EACrC,OAAIr9G,GAAQ0E,IAAW,QACnB80F,GAAa,IAAM90F,GAEhB80F,CACf,EACA,CACO,SAASujB,GAAsBH,EAAWiB,EAAW,CACxD,IAAIvf,EAAS,IAAIC,GACjB,OAAOuf,GAAkBlB,CAAS,EAAE,OAAO,SAAUS,EAAWtlG,EAAM,CAClE,IAAI7Y,EACA6+G,EAAUF,EAAU9lG,CAAI,EAC5B,GAAIgmG,IAAY,OAAQ,CACpB,QAAS7hH,EAAI6b,EAAK,OAAS,EAAG7b,GAAK,EAAG,EAAEA,EACpC6hH,GAAW7+G,EAAK,CAAE,EAAEA,EAAG6Y,EAAK7b,CAAC,CAAC,EAAI6hH,EAAS7+G,GAE/Cm+G,EAAY/e,EAAO,MAAM+e,EAAWU,CAAO,CAC9C,CACD,OAAOV,CACV,EAAE,OAAO,OAAO,IAAI,CAAC,CAC1B,CACO,SAASS,GAAkBrB,EAAM,CACpC,IAAIvM,EAAOsM,GAAoBC,CAAI,EACnC,GAAI,CAACvM,EAAK,MAAO,CACb,IAAI8N,EAAU9N,EAAK,MAAQ,GACvB+N,EAAgB,GACpBxB,EAAK,QAAQ,SAAUxgH,EAAGC,EAAG,CACrB8kB,GAAQ/kB,CAAC,GACT6hH,GAAkB7hH,CAAC,EAAE,QAAQ,SAAUhqB,EAAG,CAAE,OAAO+rI,EAAQ,KAAKC,EAAc,OAAOhsI,CAAC,CAAC,CAAI,GAC3FgsI,EAAc,OAAS,IAGvBA,EAAc,KAAKhiH,CAAC,EACf+kB,GAAQy7F,EAAKvgH,EAAI,CAAC,CAAC,IACpB8hH,EAAQ,KAAKC,EAAc,MAAM,CAAC,CAAC,EACnCA,EAAc,OAAS,GAG3C,CAAS,CACJ,CACD,OAAO/N,EAAK,KAChB,CACA,SAASiN,GAAWvtB,EAAQrzF,EAAK,CAC7B,OAAOqzF,EAAOrzF,CAAG,CACrB,CACO,SAAS2gH,GAAettB,EAAQ73E,EAAM8kG,EAAS,CAClD,OAAAA,EAAUA,GAAWM,GACdnmF,GAAUjf,EAAK,OAAO,SAASmmG,EAAQ7tG,EAAK9T,EAAK,CACpD,OAAOykB,GAAQ3Q,CAAG,EACZA,EAAI,IAAI,SAAUyD,EAAO,CAAE,OAAOoqG,EAAQpqG,EAAOvX,CAAG,EAAI,EACxD8T,GAAOwsG,EAAQxsG,EAAK9T,CAAG,CACrC,EAAOqzF,CAAM,CAAC,CACd,CACA,SAAS54D,GAAUl6B,EAAO,CACtB,OAAIm7F,GAAgBn7F,CAAK,EACjBkkB,GAAQlkB,CAAK,EACNA,EAAM,IAAIk6B,EAAS,EAEvB+lF,GAAsB,OAAO,KAAKjgH,CAAK,EAAE,KAAM,EAAE,SAAUib,EAAM,CAAE,OAAOmlG,GAAepgH,EAAOib,CAAI,CAAI,GAE5Gjb,CACX,CC7GAw8F,GAAgB,aAAa6gB,EAAkB,EAC/C,SAASgE,GAAuB1B,EAAM,CAClC,OAAOA,EAAK,OAAS,OAASA,EAAK,KAC/BA,EAAK,MAAQ1iB,GAAyB0iB,EAAK,MAAOA,EAAK,SAAS,EAAI,IAC5E,CACA,IAAI2B,GAAkB,UAAY,CAAgB,EAC9CC,GAAkB,SAAUC,EAAOhvG,EAAS,CAAE,OAAOA,EAAQ,WAC7DivG,GAAc,SAAUtH,EAAUC,EAAUh4G,EAAI,CAChD,IAAIs/G,EAAet/G,EAAG,aACtB,OAAOs/G,EAAavH,EAAUC,CAAQ,CAC1C,EACIuH,GAAe,SAAUlhH,EAAG25G,EAAU,CAAE,OAAOA,CAAS,EACxDwH,GAAY,UAAY,CACxB,SAASA,EAAS1/G,EAAQ,CACtB,KAAK,OAASA,EACd,KAAK,aAAe,OAAO,OAAO,IAAI,EACtC,KAAK,UAAY,OAAO,OAAO,IAAI,EACnC,KAAK,aAAe,IAAI,IACxB,KAAK,cAAgB,IAAI,IACzB,KAAK,kBAAoB,OAAO,OAAO,IAAI,EAC3C,KAAK,kBAAoB,OAAO,OAAO,IAAI,EAC3C,KAAK,mBAAqB,GAC1B,KAAK,OAAShD,EAAS,CAAE,iBAAkBq5G,EAAuB,EAAIr2G,CAAM,EAC5E,KAAK,MAAQ,KAAK,OAAO,MACzB,KAAK,gBAAgB,OAAO,EAC5B,KAAK,gBAAgB,UAAU,EAC/B,KAAK,gBAAgB,cAAc,EAC/BA,EAAO,eACP,KAAK,iBAAiBA,EAAO,aAAa,EAE1CA,EAAO,cACP,KAAK,gBAAgBA,EAAO,YAAY,CAE/C,CACD,OAAA0/G,EAAS,UAAU,SAAW,SAAU9uB,EAAQ+uB,EAAgB,CAC5D,IAAIz/G,EACAu3G,EAAW,KACXpc,EAAWskB,IAAmBA,EAAe,YAC3Cz/G,EAAKy/G,EAAe,eAAiB,MAAQz/G,IAAO,OAAS,OAASA,EAAG,cAAgB0wF,EAAO,WACtG,GAAIyK,IAAa,KAAK,kBAAkB,WACpC,MAAO,CAAC,YAAY,EAaxB,QAXI0c,EAAc4H,GAAkBA,EAAe,aAAe/uB,EAC9DtgF,EAAUtT,EAASA,EAAS,GAAI2iH,CAAc,EAAG,CAAE,SAAUtkB,EAAU,YAAa0c,EAAa,UAAW4H,GAAkBA,EAAe,WAAa,UAAY,CAClK,IAAIx7G,EAAUy7G,GAA0B,UAAW7H,CAAW,EAC9D,OAAON,EAAS,UAAUtzG,EAAS,CAC/B,MAAOszG,EAAS,MAAM,KACtB,UAAWtzG,EAAQ,SACvC,CAAiB,CACJ,EAAE,EACH5jB,EACAs/H,EAASxkB,GAAY,KAAK,cAAcA,CAAQ,EAChDykB,EAAQD,GAAUA,EAAO,OAAS,KAAK,OAAO,iBAC3CC,GAAO,CACV,IAAIC,EAAgBD,EAAM9iH,EAASA,EAAS,GAAI4zF,CAAM,EAAGmnB,CAAW,EAAGznG,CAAO,EAC9E,GAAI0R,GAAQ+9F,CAAa,EACrBD,EAAQnC,GAAyBoC,CAAa,MAE7C,CACDx/H,EAAKw/H,EACL,KACH,CACJ,CACD,OAAAx/H,EAAKA,EAAK,OAAOA,CAAE,EAAI,OAChB+vB,EAAQ,UAAY,CAAC/vB,EAAI+vB,EAAQ,SAAS,EAAI,CAAC/vB,CAAE,CAChE,EACIm/H,EAAS,UAAU,gBAAkB,SAAUM,EAAc,CACzD,IAAIr/G,EAAQ,KACZ,OAAO,KAAKq/G,CAAY,EAAE,QAAQ,SAAU3kB,EAAU,CAClD,IAAIn7F,EAAK8/G,EAAa3kB,CAAQ,EAAG4kB,EAAY//G,EAAG,UAAWggH,EAAehgH,EAAG,aAAcigH,EAAmBjgH,EAAG,iBAAkBg4G,EAAW/6G,GAAO+C,EAAI,CAAC,YAAa,eAAgB,kBAAkB,CAAC,EACtM+/G,GACAt/G,EAAM,gBAAgB,QAAS06F,CAAQ,EACvC6kB,GACAv/G,EAAM,gBAAgB,WAAY06F,CAAQ,EAC1C8kB,GACAx/G,EAAM,gBAAgB,eAAgB06F,CAAQ,EAC9C8a,GAAO,KAAKx1G,EAAM,UAAW06F,CAAQ,EACrC16F,EAAM,UAAU06F,CAAQ,EAAE,KAAK6c,CAAQ,EAGvCv3G,EAAM,UAAU06F,CAAQ,EAAI,CAAC6c,CAAQ,CAErD,CAAS,CACT,EACIwH,EAAS,UAAU,iBAAmB,SAAUrkB,EAAU6c,EAAU,CAChE,IAAIv3G,EAAQ,KACRs3G,EAAW,KAAK,cAAc5c,CAAQ,EACtC+kB,EAAYlI,EAAS,UAAW54F,EAAS44F,EAAS,OACtD,SAASmI,EAASpI,EAAU9xF,EAAO,CAC/B8xF,EAAS,MACL,OAAO9xF,GAAU,WAAaA,EAC1BA,IAAU,GAAOo5F,GACbp5F,IAAU,GAAQs5F,GACdxH,EAAS,KAC5B,CACDoI,EAASpI,EAAUC,EAAS,KAAK,EACjCD,EAAS,MACLmI,IAAc,GAAQhB,GAClBp9F,GAAQo+F,CAAS,EAAIzC,GAAyByC,CAAS,EACnD,OAAOA,GAAc,WAAaA,EAC9BnI,EAAS,MACrB34F,GACA,OAAO,KAAKA,CAAM,EAAE,QAAQ,SAAUk7E,EAAW,CAC7C,IAAIyd,EAAWt3G,EAAM,eAAe06F,EAAUb,EAAW,EAAI,EACzD0d,EAAW54F,EAAOk7E,CAAS,EAC/B,GAAI,OAAO0d,GAAa,WACpBD,EAAS,KAAOC,MAEf,CACD,IAAI1C,EAAU0C,EAAS,QAASoI,EAAOpI,EAAS,KAAM/xF,EAAQ+xF,EAAS,MACvED,EAAS,MACLzC,IAAY,GAAQ6J,GAChBr9F,GAAQwzF,CAAO,EAAI4I,GAAuB5I,CAAO,EAC7C,OAAOA,GAAY,WAAaA,EAC5ByC,EAAS,MACrB,OAAOqI,GAAS,aAChBrI,EAAS,KAAOqI,GAEpBD,EAASpI,EAAU9xF,CAAK,CAC3B,CACG8xF,EAAS,MAAQA,EAAS,QAC1BA,EAAS,MAAQA,EAAS,OAASoH,GAEvD,CAAa,CAEb,EACIK,EAAS,UAAU,gBAAkB,SAAUz8F,EAAOo4E,EAAU,CACxDA,IAAa,SAAUA,EAAWp4E,GACtC,IAAIk2F,EAAS,QAAUl2F,EAAM,YAAW,EACpCs9F,EAAM,KAAK,kBAAkBpH,CAAM,EACnC9d,IAAaklB,IACb,QAAU7tC,GAAU,CAAC6tC,GAAOA,IAAQt9F,EAAO,sBAAsB,OAAOA,EAAO,4BAA4B,CAAC,EAAIyvD,GAAU,CAAC6tC,GAAOA,IAAQt9F,EAAO,CAAC,EAC9Is9F,GACA,OAAO,KAAK,kBAAkBA,CAAG,EACrC,KAAK,kBAAkBllB,CAAQ,EAAI8d,EACnC,KAAK,kBAAkBA,CAAM,EAAI9d,EAE7C,EACIqkB,EAAS,UAAU,iBAAmB,SAAUc,EAAe,CAC3D,IAAI7/G,EAAQ,KACZ,KAAK,mBAAqB,GAC1B,OAAO,KAAK6/G,CAAa,EAAE,QAAQ,SAAUC,EAAW,CACpD9/G,EAAM,gBAAgB8/G,EAAW,EAAI,EACrCD,EAAcC,CAAS,EAAE,QAAQ,SAAUC,EAAS,CAChD//G,EAAM,gBAAgB+/G,EAAS,EAAI,EAAE,IAAID,CAAS,EAClD,IAAIp7G,EAAQq7G,EAAQ,MAAM5J,EAAqB,GAC3C,CAACzxG,GAASA,EAAM,CAAC,IAAMq7G,IACvB//G,EAAM,cAAc,IAAI+/G,EAAS,IAAI,OAAOA,CAAO,CAAC,CAExE,CAAa,CACb,CAAS,CACT,EACIhB,EAAS,UAAU,cAAgB,SAAUrkB,EAAU,CACnD,IAAI16F,EAAQ,KACZ,GAAI,CAACw1G,GAAO,KAAK,KAAK,aAAc9a,CAAQ,EAAG,CAC3C,IAAIslB,EAAW,KAAK,aAAatlB,CAAQ,EAAI,OAAO,OAAO,IAAI,EAC/DslB,EAAS,OAAS,OAAO,OAAO,IAAI,EACpC,IAAIC,EAAa,KAAK,aAAa,IAAIvlB,CAAQ,EAC3CulB,GAAcA,EAAW,MACzBA,EAAW,QAAQ,SAAUH,EAAW,CACpC,IAAIvgH,EAAKS,EAAM,cAAc8/G,CAAS,EAAGnhG,EAASpf,EAAG,OAAQmoB,EAAOlrB,GAAO+C,EAAI,CAAC,QAAQ,CAAC,EACzF,OAAO,OAAOygH,EAAUt4F,CAAI,EAC5B,OAAO,OAAOs4F,EAAS,OAAQrhG,CAAM,CACzD,CAAiB,CAER,CACD,IAAIuhG,EAAQ,KAAK,UAAUxlB,CAAQ,EACnC,OAAIwlB,GAASA,EAAM,QACfA,EAAM,OAAO,CAAC,EAAE,QAAQ,SAAUhB,EAAQ,CACtCl/G,EAAM,iBAAiB06F,EAAUwkB,CAAM,CACvD,CAAa,EAEE,KAAK,aAAaxkB,CAAQ,CACzC,EACIqkB,EAAS,UAAU,eAAiB,SAAUrkB,EAAUb,EAAWsmB,EAAiB,CAChF,GAAIzlB,EAAU,CACV,IAAI0lB,EAAgB,KAAK,cAAc1lB,CAAQ,EAAE,OACjD,OAAO0lB,EAAcvmB,CAAS,GAAMsmB,IAAoBC,EAAcvmB,CAAS,EAAI,OAAO,OAAO,IAAI,EACxG,CACT,EACIklB,EAAS,UAAU,gBAAkB,SAAUgB,EAASI,EAAiB,CACrE,IAAIE,EAAe,KAAK,aAAa,IAAIN,CAAO,EAChD,MAAI,CAACM,GAAgBF,GACjB,KAAK,aAAa,IAAIJ,EAASM,EAAe,IAAI,GAAK,EAEpDA,CACf,EACItB,EAAS,UAAU,gBAAkB,SAAU5mB,EAAUuC,EAAUj9F,EAAQo5F,EAAW,CAClF,IAAI72F,EAAQ,KACZ,GAAI,CAACm4F,EAAS,cACV,MAAO,GACX,GAAI,CAACuC,EACD,MAAO,GACX,IAAIolB,EAAY3nB,EAAS,cAAc,KAAK,MAC5C,GAAIuC,IAAaolB,EACb,MAAO,GACX,GAAI,KAAK,oBACL,KAAK,aAAa,IAAIA,CAAS,EAa/B,QAZIQ,EAAuB,KAAK,gBAAgB5lB,EAAU,EAAI,EAC1D6lB,EAAc,CAACD,CAAoB,EACnCE,EAAiB,SAAUT,EAAS,CACpC,IAAIM,EAAergH,EAAM,gBAAgB+/G,EAAS,EAAK,EACnDM,GACAA,EAAa,MACbE,EAAY,QAAQF,CAAY,EAAI,GACpCE,EAAY,KAAKF,CAAY,CAEjD,EACgBI,EAA2B,CAAC,EAAEhjH,GAAU,KAAK,cAAc,MAC3DijH,EAAwB,GACnBnkH,EAAI,EAAGA,EAAIgkH,EAAY,OAAQ,EAAEhkH,EAAG,CACzC,IAAI8jH,EAAeE,EAAYhkH,CAAC,EAChC,GAAI8jH,EAAa,IAAIP,CAAS,EAC1B,OAAKQ,EAAqB,IAAIR,CAAS,IAC/BY,GACA,SAAW3uC,GAAU,KAAK,qBAAqB,OAAO2oB,EAAU,gBAAgB,EAAE,OAAOolB,CAAS,CAAC,EAEvGQ,EAAqB,IAAIR,CAAS,GAE/B,GAEXO,EAAa,QAAQG,CAAc,EAC/BC,GACAlkH,IAAMgkH,EAAY,OAAS,GAC3BjK,GAA0Bne,EAAS,aAAc16F,EAAQo5F,CAAS,IAClE4pB,EAA2B,GAC3BC,EAAwB,GACxB,KAAK,cAAc,QAAQ,SAAUC,EAAQC,EAAa,CACtD,IAAIl8G,EAAQg2F,EAAS,MAAMimB,CAAM,EAC7Bj8G,GAASA,EAAM,CAAC,IAAMg2F,GACtB8lB,EAAeI,CAAW,CAEtD,CAAqB,EAER,CAEL,MAAO,EACf,EACI7B,EAAS,UAAU,WAAa,SAAUrkB,EAAUb,EAAW,CAC3D,IAAIqlB,EAAS,KAAK,eAAexkB,EAAUb,EAAW,EAAK,EAC3D,MAAO,CAAC,EAAEqlB,GAAUA,EAAO,MACnC,EACIH,EAAS,UAAU,kBAAoB,SAAU8B,EAAW,CACxD,IAAInmB,EAAWmmB,EAAU,SAAUhnB,EAAYgnB,EAAU,UACrD3B,EAAS,KAAK,eAAexkB,EAAUb,EAAW,EAAK,EACvDwc,EACA8I,EAAQD,GAAUA,EAAO,MAC7B,GAAIC,GAASzkB,EAQT,QAPI/qF,EAAU,CACV,SAAU+qF,EACV,UAAWb,EACX,MAAOgnB,EAAU,OAAS,KAC1B,UAAWA,EAAU,SACrC,EACgBxgH,EAAOm+G,GAAuBqC,CAAS,EACpC1B,GAAO,CACV,IAAI2B,EAAoB3B,EAAM9+G,EAAMsP,CAAO,EAC3C,GAAI0R,GAAQy/F,CAAiB,EACzB3B,EAAQ1B,GAAuBqD,CAAiB,MAE/C,CACDzK,EAAiByK,GAAqBjnB,EACtC,KACH,CACJ,CAOL,OALIwc,IAAmB,SACnBA,EAAiBwK,EAAU,MACrBpnB,GAAsBonB,EAAU,MAAOA,EAAU,SAAS,EAC1DlnB,GAAgBE,EAAW2kB,GAAuBqC,CAAS,CAAC,GAElExK,IAAmB,GACZxc,EAEJA,IAAcuc,GAAuBC,CAAc,EACpDA,EACAxc,EAAY,IAAMwc,CAChC,EACI0I,EAAS,UAAU,UAAY,SAAUv7G,EAASmM,EAAS,CACvD,IAAIumG,EAAoB1yG,EAAQ,KAChC,GAAK0yG,EAEL,KAAI6K,EAAcv9G,EAAQ,OAASA,EAAQ,UAC3C,GAAKu9G,EAEL,IAAIv9G,EAAQ,WAAa,OAAQ,CAC7B,IAAIk3F,EAAW/qF,EAAQ,MAAM,cAAcumG,EAAmB,YAAY,EACtExb,IACAl3F,EAAQ,SAAWk3F,EAC1B,CACD,IAAI2b,EAAiB,KAAK,kBAAkB7yG,CAAO,EAC/Cq2F,EAAYuc,GAAuBC,CAAc,EACjDiB,EAAW3nG,EAAQ,MAAM,cAAcumG,EAAmBG,CAAc,EACxE6I,EAAS,KAAK,eAAe17G,EAAQ,SAAUq2F,EAAW,EAAK,EAC/D8lB,EAAOT,GAAUA,EAAO,KAC5B,GAAIS,EAAM,CACN,IAAIqB,EAAcC,GAAyB,KAAM/K,EAAmB1yG,EAASmM,EAASA,EAAQ,MAAM,WAAW6oF,GAAY0d,CAAiB,EACtIA,EAAkB,MAClBA,EAAmBG,CAAc,CAAC,EACxC,OAAO4F,GAAU,UAAU,KAAK,MAAO0D,EAAM,CAACrI,EAAU0J,CAAW,CAAC,CACvE,CACD,OAAO1J,GACf,EACIyH,EAAS,UAAU,gBAAkB,SAAUrkB,EAAUb,EAAW,CAChE,IAAIqlB,EAAS,KAAK,eAAexkB,EAAUb,EAAW,EAAK,EAC3D,OAAOqlB,GAAUA,EAAO,IAChC,EACIH,EAAS,UAAU,iBAAmB,SAAUmC,EAAgBrnB,EAAWsnB,EAAe,CACtF,IAAIjC,EAAS,KAAK,eAAegC,EAAgBrnB,EAAW,EAAK,EAC7Dr0E,EAAQ05F,GAAUA,EAAO,MAC7B,MAAI,CAAC15F,GAAS27F,IACVjC,EAAS,KAAK,cAAciC,CAAa,EACzC37F,EAAQ05F,GAAUA,EAAO,OAEtB15F,CACf,EACIu5F,EAAS,UAAU,iBAAmB,SAAUzH,EAAUC,EAAUh4G,EAAIoQ,EAASyxG,EAAS,CACtF,IAAIzpC,EAAQp4E,EAAG,MAAOm7F,EAAWn7F,EAAG,SAAUimB,EAAQjmB,EAAG,MACzD,OAAIimB,IAAUo5F,GACHyC,GAAyB1xG,EAAQ,KAAK,EAAE2nG,EAAUC,CAAQ,EAEjE/xF,IAAUs5F,GACHvH,GAEP5nG,EAAQ,YACR2nG,EAAW,QAER9xF,EAAM8xF,EAAUC,EAAU0J,GAAyB,KAAM,OAAQ,CAAE,SAAUvmB,EAAU,UAAW/iB,EAAM,KAAK,MAAO,MAAOA,EAAO,UAAWhoE,EAAQ,SAAW,EAAEA,EAASyxG,GAAW,OAAO,OAAO,IAAI,CAAC,CAAC,EACzN,EACWrC,CACX,EAAC,EAED,SAASkC,GAAyBnK,EAAUZ,EAAmB2K,EAAWlxG,EAASyxG,EAAS,CACxF,IAAI/K,EAAiBS,EAAS,kBAAkB+J,CAAS,EACrDhnB,EAAYuc,GAAuBC,CAAc,EACjDxf,EAAYgqB,EAAU,WAAalxG,EAAQ,UAC3CpQ,EAAKoQ,EAAQ,MAAO2xG,EAAc/hH,EAAG,YAAagiH,EAAUhiH,EAAG,QACnE,MAAO,CACH,KAAMi/G,GAAuBqC,CAAS,EACtC,MAAOA,EAAU,OAAS,KAC1B,UAAWhnB,EACX,eAAgBwc,EAChB,UAAWxf,EACX,YAAa2B,GACb,YAAa8oB,EACb,QAASF,EACT,MAAOtK,EAAS,MAChB,QAASyK,EACT,UAAW,UAAY,CACnB,OAAOzK,EAAS,UAAUmI,GAA0B,UAAW/I,EAAmBrf,CAAS,EAAGlnF,CAAO,CACxG,EACD,aAAc0xG,GAAyB1xG,EAAQ,KAAK,CAC5D,CACA,CACO,SAASsvG,GAA0BuC,EAAetL,EAAmBrf,EAAW,CACnF,IAAIkhB,EAAqByJ,EAAc,CAAC,EAAGljH,EAAOkjH,EAAc,CAAC,EAAGC,EAAOD,EAAc,OACrFh+G,EACJ,OAAI,OAAOu0G,GAAuB,SAC9Bv0G,EAAU,CACN,UAAWu0G,EACX,KAAM0J,EAAO,EAAInjH,EAAO43G,CACpC,GAGQ1yG,EAAUnH,EAAS,GAAI07G,CAAkB,EACpCvC,GAAO,KAAKhyG,EAAS,MAAM,IAC5BA,EAAQ,KAAO0yG,IAGnB,SAAW1yG,EAAQ,OAAS,QAC5B,SAAWuuE,GAAU,KAAK,uDAAuD,OAAO+0B,GAAoB,MAAM,KAAK0a,CAAa,CAAC,CAAC,CAAC,EAE5Hh+G,EAAQ,YAAnB,SACAA,EAAQ,UAAYqzF,GAEjBrzF,CACX,CACA,SAAS69G,GAAyBpL,EAAO,CACrC,OAAO,SAAsBqB,EAAUC,EAAU,CAC7C,GAAIl2F,GAAQi2F,CAAQ,GAAKj2F,GAAQk2F,CAAQ,EACrC,MAAM,QAAU,IAAI5vB,GAAe,mCAAmC,EAAI,IAAIA,GAAe,CAAC,EAElG,GAAI2Q,GAAgBgf,CAAQ,GACxBhf,GAAgBif,CAAQ,EAAG,CAC3B,IAAImK,EAAQzL,EAAM,cAAcqB,EAAU,YAAY,EAClDqK,EAAQ1L,EAAM,cAAcsB,EAAU,YAAY,EAClDqK,EAAcF,GAASC,GAASD,IAAUC,EAC9C,GAAIC,EACA,OAAOrK,EAEX,GAAI/e,GAAY8e,CAAQ,GACpBf,GAAwBgB,CAAQ,EAChC,OAAAtB,EAAM,MAAMqB,EAAS,MAAOC,CAAQ,EAC7BD,EAEX,GAAIf,GAAwBe,CAAQ,GAChC9e,GAAY+e,CAAQ,EACpB,OAAAtB,EAAM,MAAMqB,EAAUC,EAAS,KAAK,EAC7BA,EAEX,GAAIhB,GAAwBe,CAAQ,GAChCf,GAAwBgB,CAAQ,EAChC,OAAOl7G,EAASA,EAAS,GAAIi7G,CAAQ,EAAGC,CAAQ,CAEvD,CACD,OAAOA,CACf,CACA,CCpZA,SAASsK,GAAiBlyG,EAASmyG,EAAYC,EAAU,CACrD,IAAInlH,EAAM,GAAG,OAAOklH,CAAU,EAAE,OAAOC,CAAQ,EAC3CC,EAAWryG,EAAQ,QAAQ,IAAI/S,CAAG,EACtC,OAAKolH,GACDryG,EAAQ,QAAQ,IAAI/S,EAAKolH,EAAYryG,EAAQ,aAAemyG,GACxDnyG,EAAQ,WAAaoyG,EAAYpyG,EAAUtT,EAASA,EAAS,CAAE,EAAEsT,CAAO,EAAG,CAAE,WAAYmyG,EAAY,SAAUC,CAAQ,CAAE,CAAC,EAE3HC,CACX,CACA,IAAIC,GAAe,UAAY,CAC3B,SAASA,EAAYnnG,EAAOqvF,EAAQrS,EAAW,CAC3C,KAAK,MAAQh9E,EACb,KAAK,OAASqvF,EACd,KAAK,UAAYrS,CACpB,CACD,OAAAmqB,EAAY,UAAU,aAAe,SAAUhM,EAAO12G,EAAI,CACtD,IAAIS,EAAQ,KACRg4F,EAAQz4F,EAAG,MAAO9B,EAAS8B,EAAG,OAAQ43G,EAAS53G,EAAG,OAAQs3F,EAAYt3F,EAAG,UAAW2iH,EAAY3iH,EAAG,UACnG4iH,EAAsBrnB,GAAuB9C,CAAK,EAClD2G,EAAS6X,KACb3f,EAAYx6F,EAASA,EAAS,CAAE,EAAEm/F,GAAiB2mB,CAAmB,CAAC,EAAGtrB,CAAS,EACnF,IAAIlnF,EAAUtT,EAASA,EAAS,CAAE,MAAO45G,EAAO,QAAS,OAAO,OAAO,IAAI,EAAG,MAAO,SAAUqB,EAAUC,EAAU,CAC3G,OAAO5Y,EAAO,MAAM2Y,EAAUC,CAAQ,CACzC,EAAE,UAAW1gB,EAAW,UAAW2jB,GAAmB3jB,CAAS,GAAK4f,GAAuBze,EAAO,KAAK,SAAS,CAAC,EAAG,CAAE,UAAW,CAAC,CAACkqB,EAAW,aAAc,IAAI,IAAK,WAAY,GAAO,SAAU,GAAO,QAAS,IAAI,GAAK,GAC5N9xG,EAAM,KAAK,oBAAoB,CAC/B,OAAQ3S,GAAU,OAAO,OAAO,IAAI,EACpC,OAAQ05G,EACR,aAAcgL,EAAoB,aAClC,UAAW,CAAE,IAAK,IAAI,GAAK,EAC3B,QAASxyG,CACrB,CAAS,EACD,GAAI,CAAC6oF,GAAYpoF,CAAG,EAChB,MAAM,QAAU,IAAIu3E,GAAe,6BAA6B,OAAO,KAAK,UAAUlqF,CAAM,CAAC,CAAC,EAAI,IAAIkqF,GAAe,CAAC,EAE1H,OAAAh4E,EAAQ,aAAa,QAAQ,SAAUpQ,EAAI43G,EAAQ,CAC/C,IAAIC,EAAc73G,EAAG,YAAa6iH,EAAY7iH,EAAG,UAAW8iH,EAAe9iH,EAAG,aAC1E+iH,EAAY/pB,GAAc4e,CAAM,EACpC,GAAIiL,GAAaA,EAAU,IAAI,KAAM,CACjC,IAAIG,EAAUviH,EAAM,YAAYoiH,EAAWE,EAAWlL,EAAaznG,CAAO,EAC1E,GAAI6oF,GAAY+pB,CAAO,EACnB,OAEJnL,EAAcmL,CACjB,CACD,GAAI,SAAW,CAAC5yG,EAAQ,UAAW,CAC/B,IAAI6yG,EAA4B,OAAO,OAAO,IAAI,EAClDH,EAAa,QAAQ,SAAU1qC,EAAO,CAC9BA,EAAM,eACN6qC,EAA0B7qC,EAAM,KAAK,KAAK,EAAI,GAEtE,CAAiB,EACD,IAAI8qC,EAAoB,SAAUpM,EAAgB,CAC9C,OAAOmM,EAA0BpM,GAAuBC,CAAc,CAAC,IAAM,EACjG,EACoBqM,EAAqB,SAAUrM,EAAgB,CAC/C,IAAIsM,EAAYP,GAAaA,EAAU,IAAI,IAAI/L,CAAc,EAC7D,MAAO,GAAQsM,GAAaA,EAAU,MAAQA,EAAU,KAAK,MACjF,EACgB,OAAO,KAAKvL,CAAW,EAAE,QAAQ,SAAUf,EAAgB,CACnDoM,EAAkBpM,CAAc,GAChC,CAACqM,EAAmBrM,CAAc,GAClCuM,GAAkBN,EAAWlL,EAAaf,EAAgB1mG,EAAQ,KAAK,CAE/F,CAAiB,CACJ,CACDsmG,EAAM,MAAMkB,EAAQC,CAAW,CAC3C,CAAS,EACDnB,EAAM,OAAO7lG,EAAI,KAAK,EACfA,CACf,EACI6xG,EAAY,UAAU,oBAAsB,SAAU1iH,EAAI,CACtD,IAAIS,EAAQ,KACRm3G,EAAS53G,EAAG,OAAQ9B,EAAS8B,EAAG,OAAQk2F,EAAel2F,EAAG,aAAcoQ,EAAUpQ,EAAG,QAAS6iH,EAAY7iH,EAAG,UAC7Gu3G,EAAW,KAAK,MAAM,SACtBS,EAAW,OAAO,OAAO,IAAI,EAC7B7c,EAAYyc,GAAUL,EAAS,kBAAkBK,CAAM,GACvD5c,GAAsB98F,EAAQg4F,EAAc9lF,EAAQ,WAAW,GAC9DwnG,GAAUxnG,EAAQ,MAAM,IAAIwnG,EAAQ,YAAY,EACpC,OAAOzc,GAApB,WACA6c,EAAS,WAAa7c,GAE1B,IAAImoB,EAAY,UAAY,CACxB,IAAIr/G,EAAUy7G,GAA0B,UAAW1H,EAAU5nG,EAAQ,SAAS,EAC9E,GAAI6oF,GAAYh1F,EAAQ,IAAI,EAAG,CAC3B,IAAI+sG,EAAO5gG,EAAQ,aAAa,IAAInM,EAAQ,KAAK,KAAK,EACtD,GAAI+sG,EAAM,CACN,IAAIuS,EAAWhM,EAAS,UAAUz6G,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,KAAM+sG,EAAK,WAAW,CAAE,EAAG5gG,CAAO,EACtG,GAAImzG,IAAa,OACb,OAAOA,CAEd,CACJ,CACD,OAAOhM,EAAS,UAAUtzG,EAASmM,CAAO,CACtD,EACY0yG,EAAe,IAAI,IACvB,KAAK,cAAc5sB,EAAch4F,EAAQkS,EAAS+qF,CAAQ,EAAE,QAAQ,SAAU/qF,EAASgoE,EAAO,CAC1F,IAAIp4E,EACAwjH,EAAiBzoB,GAAuB3iB,CAAK,EAC7Cx6E,EAAQM,EAAOslH,CAAc,EAEjC,GADAV,EAAa,IAAI1qC,CAAK,EAClBx6E,IAAU,OAAQ,CAClB,IAAIk5G,EAAiBS,EAAS,kBAAkB,CAC5C,SAAUpc,EACV,UAAW/iB,EAAM,KAAK,MACtB,MAAOA,EACP,UAAWhoE,EAAQ,SACvC,CAAiB,EACGgzG,EAAYK,GAAkBZ,EAAW/L,CAAc,EACvDyD,EAAgB95G,EAAM,kBAAkB7C,EAAOw6E,EAAOA,EAAM,aAC1DkqC,GAAiBlyG,EAAS,GAAO,EAAK,EACtCA,EAASgzG,CAAS,EACpBxB,EAAgB,OAChBxpC,EAAM,eACL6gB,GAAYshB,CAAa,GACtBvD,GAAwBuD,CAAa,KACzCqH,EAAgB0B,EAAU,aAAc/I,CAAa,GAEzD,IAAIt0F,EAAQsxF,EAAS,iBAAiBpc,EAAU/iB,EAAM,KAAK,MAAOwpC,CAAa,EAC3E37F,EACAm9F,EAAU,KAAO,CACb,MAAOhrC,EACP,SAAU+iB,EACV,MAAOl1E,CAC/B,EAGoBy9F,GAA2Bb,EAAW/L,CAAc,EAExDkB,EAAW5nG,EAAQ,MAAM4nG,GAAWh4G,EAAK,CAAE,EACvCA,EAAG82G,CAAc,EAAIyD,EACrBv6G,GACP,MACQ,SACL,CAACoQ,EAAQ,YACT,CAACA,EAAQ,UACT,CAACmuF,GAAsB,MAAMnmB,CAAK,GAClC,CAACm/B,EAAS,gBAAgBpc,EAAU/iB,EAAM,KAAK,KAAK,GACpD,SAAW5F,GAAU,MAAM,kBAAkB,OAAOuoB,GAAuB3iB,CAAK,EAAG,yBAAyB,EAAE,OAAO,KAAK,UAAUl6E,EAAQ,KAAM,CAAC,CAAC,EAAE,UAAU,EAAG,GAAI,CAAC,CAExL,CAAS,EACD,GAAI,CACA,IAAI+B,EAAKs3G,EAAS,SAASr5G,EAAQ,CAC/B,SAAUi9F,EACV,aAAcjF,EACd,YAAa9lF,EAAQ,YACrB,YAAa4nG,EACb,UAAWsL,CAC3B,CAAa,EAAGjjI,EAAK4f,EAAG,CAAC,EAAG29G,EAAY39G,EAAG,CAAC,EAChC23G,EAASA,GAAUv3H,EACfu9H,IACA5F,EAAW5nG,EAAQ,MAAM4nG,EAAU4F,CAAS,EAEnD,OACM5pI,EAAG,CACN,GAAI,CAAC4jI,EACD,MAAM5jI,CACb,CACD,GAAiB,OAAO4jI,GAApB,SAA4B,CAC5B,IAAI+L,EAAU3qB,GAAc4e,CAAM,EAC9BgM,EAAOxzG,EAAQ,QAAQwnG,CAAM,IAAMxnG,EAAQ,QAAQwnG,CAAM,EAAI,IAIjE,GAHIgM,EAAK,QAAQ1tB,CAAY,GAAK,IAElC0tB,EAAK,KAAK1tB,CAAY,EAClB,KAAK,QAAU,KAAK,OAAO,QAAQh4F,EAAQylH,EAASztB,EAAc9lF,CAAO,GACzE,OAAOuzG,EAEX,IAAIE,EAAazzG,EAAQ,aAAa,IAAIwnG,CAAM,EAChD,OAAIiM,GACAA,EAAW,YAAczzG,EAAQ,MAAMyzG,EAAW,YAAa7L,CAAQ,EACvE6L,EAAW,UAAYC,GAAgBD,EAAW,UAAWhB,CAAS,EACtEC,EAAa,QAAQ,SAAU1qC,EAAO,CAAE,OAAOyrC,EAAW,aAAa,IAAIzrC,CAAK,CAAE,CAAE,GAGpFhoE,EAAQ,aAAa,IAAIwnG,EAAQ,CAC7B,YAAaI,EACb,UAAW+L,GAAiBlB,CAAS,EAAI,OAASA,EAClD,aAAcC,CAClC,CAAiB,EAEEa,CACV,CACD,OAAO3L,CACf,EACI0K,EAAY,UAAU,kBAAoB,SAAU9kH,EAAOw6E,EAAOhoE,EAASyyG,EAAW,CAClF,IAAIpiH,EAAQ,KACZ,MAAI,CAAC23E,EAAM,cAAgBx6E,IAAU,KAC1B,QAAUgmG,GAAUhmG,CAAK,EAAIA,EAEpCkkB,GAAQlkB,CAAK,EACNA,EAAM,IAAI,SAAUkjB,EAAM9jB,EAAG,CAChC,IAAIY,EAAQ6C,EAAM,kBAAkBqgB,EAAMs3D,EAAOhoE,EAASqzG,GAAkBZ,EAAW7lH,CAAC,CAAC,EACzF,OAAA0mH,GAA2Bb,EAAW7lH,CAAC,EAChCY,CACvB,CAAa,EAEE,KAAK,oBAAoB,CAC5B,OAAQA,EACR,aAAcw6E,EAAM,aACpB,QAAShoE,EACT,UAAWyyG,CACvB,CAAS,CACT,EACIH,EAAY,UAAU,cAAgB,SAAUxsB,EAAch4F,EAAQkS,EAAS+qF,EAAU,CACjFA,IAAa,SAAUA,EAAWH,GAAsB98F,EAAQg4F,EAAc9lF,EAAQ,WAAW,GACrG,IAAI4zG,EAAW,IAAI,IACfzM,EAAW,KAAK,MAAM,SACtB0M,EAAe,IAAItS,GAAK,EAAK,EACjC,OAAC,SAASuS,EAAQhuB,EAAciuB,EAAkB,CAC9C,IAAIC,EAAcH,EAAa,OAAO/tB,EAAciuB,EAAiB,WAAYA,EAAiB,QAAQ,EACtGC,EAAY,UAEhBA,EAAY,QAAU,GACtBluB,EAAa,WAAW,QAAQ,SAAU31B,EAAW,CACjD,GAAK82B,GAAc92B,EAAWnwD,EAAQ,SAAS,EAE/C,KAAImyG,EAAa4B,EAAiB,WAAY3B,EAAW2B,EAAiB,SAe1E,GAdI,EAAE5B,GAAcC,IAChBnmB,GAAgB97B,EAAU,UAAU,GACpCA,EAAU,WAAW,QAAQ,SAAUr1B,EAAK,CACxC,IAAI7nC,EAAO6nC,EAAI,KAAK,MAGpB,GAFI7nC,IAAS,WACTk/G,EAAa,IACbl/G,IAAS,QAAS,CAClB,IAAIvC,EAAO+5F,GAAyB3vD,EAAK96B,EAAQ,SAAS,GACtD,CAACtP,GAAQA,EAAK,KAAO,MACrB0hH,EAAW,GAElB,CACzB,CAAqB,EAEDvnB,GAAQ16B,CAAS,EAAG,CACpB,IAAIw3C,EAAWiM,EAAS,IAAIzjD,CAAS,EACjCw3C,IACAwK,EAAaA,GAAcxK,EAAS,WACpCyK,EAAWA,GAAYzK,EAAS,UAEpCiM,EAAS,IAAIzjD,EAAW+hD,GAAiBlyG,EAASmyG,EAAYC,CAAQ,CAAC,CAC1E,KACI,CACD,IAAI5pB,EAAWC,GAAyBt4B,EAAWnwD,EAAQ,cAAc,EACzE,GAAI,CAACwoF,GAAYr4B,EAAU,OAAS8rB,GAAK,gBACrC,MAAM,QAAU,IAAIjE,GAAe,qBAAqB,OAAO7nB,EAAU,KAAK,KAAK,CAAC,EAAI,IAAI6nB,GAAe,CAAC,EAE5GwQ,GACA2e,EAAS,gBAAgB3e,EAAUuC,EAAUj9F,EAAQkS,EAAQ,SAAS,GACtE8zG,EAAQtrB,EAAS,aAAc0pB,GAAiBlyG,EAASmyG,EAAYC,CAAQ,CAAC,CAErF,EACjB,CAAa,EACb,EAAWtsB,EAAc9lF,CAAO,EACjB4zG,CACf,EACItB,EAAY,UAAU,YAAc,SAAUG,EAAW9K,EAAUC,EAAU5nG,EAASi0G,EAAgB,CAClG,IAAIrkH,EACAS,EAAQ,KACZ,GAAIoiH,EAAU,IAAI,MAAQ,CAAC5pB,GAAY+e,CAAQ,EAAG,CAC9C,IAAIsM,EAAO,CAACxiG,GAAQk2F,CAAQ,IACvB/e,GAAY8e,CAAQ,GAAKf,GAAwBe,CAAQ,GAAMA,EAAW,OAC3EwM,EAAMvM,EACNsM,GAAO,CAACD,IACRA,EAAiB,CAACprB,GAAYqrB,CAAG,EAAIA,EAAI,MAAQA,CAAG,GAExD,IAAIlM,EACAoM,EAAa,SAAUzlH,EAAMsE,EAAM,CACnC,OAAOye,GAAQ/iB,CAAI,EACZ,OAAOsE,GAAS,SAAWtE,EAAKsE,CAAI,EAAI,OACzC+M,EAAQ,MAAM,cAAcrR,EAAM,OAAOsE,CAAI,CAAC,CACpE,EACYw/G,EAAU,IAAI,QAAQ,SAAUO,EAAWtM,EAAgB,CACvD,IAAI2N,EAAOD,EAAWF,EAAKxN,CAAc,EACrC4N,EAAOF,EAAWD,EAAKzN,CAAc,EACzC,GAAe4N,IAAX,OAEJ,CAAIL,GACAA,EAAe,KAAKvN,CAAc,EAEtC,IAAI6N,EAAOlkH,EAAM,YAAY2iH,EAAWqB,EAAMC,EAAMt0G,EAASi0G,CAAc,EACvEM,IAASD,IACTtM,EAAkBA,GAAmB,IAAI,IACzCA,EAAgB,IAAItB,EAAgB6N,CAAI,GAExCN,GACA7xC,GAAU6xC,EAAe,IAAK,IAAKvN,CAAc,EAErE,CAAa,EACGsB,IACAJ,EAAYl2F,GAAQyiG,CAAG,EAAIA,EAAI,MAAM,CAAC,EAAIznH,EAAS,GAAIynH,CAAG,EAC1DnM,EAAgB,QAAQ,SAAUx6G,EAAOyF,EAAM,CAC3C20G,EAAS30G,CAAI,EAAIzF,CACrC,CAAiB,EAER,CACD,OAAIilH,EAAU,KACH,KAAK,MAAM,SAAS,iBAAiB9K,EAAUC,EAAU6K,EAAU,KAAMzyG,EAASi0G,IAAmBrkH,EAAKoQ,EAAQ,OAAO,WAAW,MAAMpQ,EAAIqkH,CAAc,CAAC,EAEjKrM,CACf,EACW0K,CACX,EAAC,EAEGkC,GAAqB,GACzB,SAASnB,GAAkBzjH,EAAIqD,EAAM,CACjC,IAAImW,EAAMxZ,EAAG,IACb,OAAKwZ,EAAI,IAAInW,CAAI,GACbmW,EAAI,IAAInW,EAAMuhH,GAAmB,IAAK,GAAI,CAAE,IAAK,IAAI,GAAG,CAAE,EAEvDprG,EAAI,IAAInW,CAAI,CACvB,CACA,SAASygH,GAAgBlxG,EAAMC,EAAO,CAClC,GAAID,IAASC,GAAS,CAACA,GAASkxG,GAAiBlxG,CAAK,EAClD,OAAOD,EACX,GAAI,CAACA,GAAQmxG,GAAiBnxG,CAAI,EAC9B,OAAOC,EACX,IAAIm+F,EAAOp+F,EAAK,MAAQC,EAAM,KAAO/V,EAASA,EAAS,CAAE,EAAE8V,EAAK,IAAI,EAAGC,EAAM,IAAI,EAAID,EAAK,MAAQC,EAAM,KACpGgyG,EAAkBjyG,EAAK,IAAI,MAAQC,EAAM,IAAI,KAC7C2G,EAAMqrG,EAAkB,IAAI,IAC5BjyG,EAAK,IAAI,KAAOA,EAAK,IAAMC,EAAM,IACjColG,EAAS,CAAE,KAAMjH,EAAM,IAAKx3F,CAAG,EACnC,GAAIqrG,EAAiB,CACjB,IAAIC,EAAuB,IAAI,IAAIjyG,EAAM,IAAI,KAAI,CAAE,EACnDD,EAAK,IAAI,QAAQ,SAAUmyG,EAAU1nH,EAAK,CACtC46G,EAAO,IAAI,IAAI56G,EAAKymH,GAAgBiB,EAAUlyG,EAAM,IAAI,IAAIxV,CAAG,CAAC,CAAC,EACjEynH,EAAqB,OAAOznH,CAAG,CAC3C,CAAS,EACDynH,EAAqB,QAAQ,SAAUznH,EAAK,CACxC46G,EAAO,IAAI,IAAI56G,EAAKymH,GAAgBjxG,EAAM,IAAI,IAAIxV,CAAG,EAAGuV,EAAK,IAAI,IAAIvV,CAAG,CAAC,CAAC,CACtF,CAAS,CACJ,CACD,OAAO46G,CACX,CACA,SAAS8L,GAAiBtH,EAAM,CAC5B,MAAO,CAACA,GAAQ,EAAEA,EAAK,MAAQA,EAAK,IAAI,KAC5C,CACA,SAASiH,GAA2B1jH,EAAIqD,EAAM,CAC1C,IAAImW,EAAMxZ,EAAG,IACTojH,EAAY5pG,EAAI,IAAInW,CAAI,EACxB+/G,GAAaW,GAAiBX,CAAS,IACvCwB,GAAmB,KAAKxB,CAAS,EACjC5pG,EAAI,OAAOnW,CAAI,EAEvB,CACA,IAAI2hH,GAAW,IAAI,IACnB,SAAS3B,GAAkB4B,EAAaC,EAAapO,EAAgBJ,EAAO,CACxE,IAAIyO,EAAW,SAAU1N,EAAU,CAC/B,IAAI7iG,EAAQ8hG,EAAM,cAAce,EAAUX,CAAc,EACxD,OAAO,OAAOliG,GAAU,UAAYA,CAC5C,EACQmjG,EAAWoN,EAASF,CAAW,EACnC,GAAKlN,EAEL,KAAIC,EAAWmN,EAASD,CAAW,EACnC,GAAKlN,GAED,CAAA/e,GAAY8e,CAAQ,GAEpB,CAAA1H,GAAM0H,EAAUC,CAAQ,GAExB,QAAO,KAAKD,CAAQ,EAAE,MAAM,SAAU16G,EAAK,CAAE,OAAOq5G,EAAM,cAAcsB,EAAU36G,CAAG,IAAM,MAAO,CAAE,EAGxG,KAAI+nH,EAAa1O,EAAM,cAAcuO,EAAa,YAAY,GAC1DvO,EAAM,cAAcwO,EAAa,YAAY,EAC7C5qB,EAAYuc,GAAuBC,CAAc,EACjDuO,EAAc,GAAG,OAAOD,EAAY,GAAG,EAAE,OAAO9qB,CAAS,EAC7D,GAAI,CAAA0qB,GAAS,IAAIK,CAAW,EAE5B,CAAAL,GAAS,IAAIK,CAAW,EACxB,IAAIC,EAAiB,GACjB,CAACxjG,GAAQi2F,CAAQ,GACjB,CAACj2F,GAAQk2F,CAAQ,GACjB,CAACD,EAAUC,CAAQ,EAAE,QAAQ,SAAUpjG,EAAO,CAC1C,IAAIumF,EAAWub,EAAM,cAAc9hG,EAAO,YAAY,EAClD,OAAOumF,GAAa,UACpB,CAACmqB,EAAe,SAASnqB,CAAQ,GACjCmqB,EAAe,KAAKnqB,CAAQ,CAE5C,CAAS,EAEL,SAAW3oB,GAAU,KAAK,6CAA6C,OAAO8nB,EAAW,cAAc,EAAE,OAAO8qB,EAAY;AAAA;AAAA,gEAA6E,EAAE,OAAOE,EAAe,OAC3N,qCACEA,EAAe,KAAK,OAAO,EAAI,8CACjC,GAAI,yCAAyC,EAAE,OAAOD,EAAa;AAAA;AAAA,aAA0E,EAAE,OAAO,KAAK,UAAUtN,CAAQ,EAAE,MAAM,EAAG,GAAI,EAAG;AAAA,aAAgB,EAAE,OAAO,KAAK,UAAUC,CAAQ,EAAE,MAAM,EAAG,GAAI,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAgR,CAAC,IAC5hB,CCzXA,IAAIuN,GAAiB,SAAUr1G,EAAQ,CACnCtT,GAAU2oH,EAAer1G,CAAM,EAC/B,SAASq1G,EAAczlH,EAAQ,CACvBA,IAAW,SAAUA,EAAS,CAAE,GACpC,IAAIW,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjC,OAAAzP,EAAM,QAAU,IAAI,IACpBA,EAAM,sBAAwB,IAAI,IAClCA,EAAM,QAAUu8G,GAChBv8G,EAAM,QAAU,EAChBA,EAAM,OAAS81G,GAAgBz2G,CAAM,EACrCW,EAAM,YAAc,CAAC,CAACA,EAAM,OAAO,YACnCA,EAAM,SAAW,IAAI++G,GAAS,CAC1B,MAAO/+G,EACP,iBAAkBA,EAAM,OAAO,iBAC/B,cAAeA,EAAM,OAAO,cAC5B,aAAcA,EAAM,OAAO,YACvC,CAAS,EACDA,EAAM,KAAI,EACHA,CACV,CACD,OAAA8kH,EAAc,UAAU,KAAO,UAAY,CACvC,IAAIC,EAAY,KAAK,KAAO,IAAIlO,GAAY,KAAK,CAC7C,SAAU,KAAK,SACf,cAAe,KAAK,OAAO,aACvC,CAAS,EACD,KAAK,eAAiBkO,EAAU,MAChC,KAAK,iBAAgB,CAC7B,EACID,EAAc,UAAU,iBAAmB,SAAUE,EAAuB,CACxE,IAAIhlH,EAAQ,KACRilH,EAAiB,KAAK,YACtBntB,EAAY,KAAK,OAAO,UAC5B,KAAK,YAAc,IAAImqB,GAAY,KAAM,KAAK,YAAc,IAAInH,GAAY,CACxE,MAAO,KACP,YAAa,KAAK,YAClB,mBAAoB,KAAK,OAAO,mBAChC,gBAAiB/E,GAAsB,KAAK,MAAM,EAClD,MAAOiP,EACD,OACAC,GAAkBA,EAAe,MACvC,UAAWntB,CACvB,CAAS,EAAGA,CAAS,EACb,KAAK,oBAAsBxC,GAAK,SAAUrhH,EAAGuvB,EAAS,CAClD,OAAOxD,EAAM,eAAe/rB,EAAGuvB,CAAO,CAClD,EAAW,CACC,IAAK,KAAK,OAAO,mBACjB,aAAc,SAAUvvB,EAAG,CACvB,IAAIgiI,EAAQhiI,EAAE,WAAa+rB,EAAM,eAAiBA,EAAM,KACxD,GAAIm5G,GAAsBlD,CAAK,EAAG,CAC9B,IAAIlB,EAAa9gI,EAAE,WAAY2L,EAAK3L,EAAE,GAAI4iH,EAAY5iH,EAAE,UACxD,OAAOgiI,EAAM,aAAahiI,EAAE,MAAOA,EAAE,SAAUumI,GAAmB,CAAE,WAAYzF,EAAY,GAAIn1H,EAAI,UAAWi3G,CAAW,EAAC,CAC9H,CACJ,CACb,CAAS,EACD,IAAI,IAAI,CACJ,KAAK,KAAK,MACV,KAAK,eAAe,KAChC,CAAS,EAAE,QAAQ,SAAUkgB,EAAO,CAAE,OAAOA,EAAM,aAAY,CAAG,CAAE,CACpE,EACI+N,EAAc,UAAU,QAAU,SAAUrxG,EAAM,CAC9C,YAAK,KAAI,EACLA,GACA,KAAK,KAAK,QAAQA,CAAI,EACnB,IACf,EACIqxG,EAAc,UAAU,QAAU,SAAU/P,EAAY,CACpD,OAAIA,IAAe,SAAUA,EAAa,KAClCA,EAAa,KAAK,eAAiB,KAAK,MAAM,SAC9D,EACI+P,EAAc,UAAU,KAAO,SAAUthH,EAAS,CAC9C,IAAIjE,EAAKiE,EAAQ,kBAAmB03G,EAAoB37G,IAAO,OAAS,GAAQA,EAChF,GAAI,CACA,OAAO,KAAK,YAAY,sBAAsBlD,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,MAAOA,EAAQ,WAAa,KAAK,eAAiB,KAAK,KAAM,OAAQ,KAAK,OAAQ,kBAAmB03G,CAAmB,EAAC,EAAE,QAAU,IACxN,OACM3nI,EAAG,CACN,GAAIA,aAAagiI,GACb,OAAO,KAEX,MAAMhiI,CACT,CACT,EACIuxI,EAAc,UAAU,MAAQ,SAAUthH,EAAS,CAC/C,GAAI,CACA,QAAE,KAAK,QACA,KAAK,YAAY,aAAa,KAAK,KAAMA,CAAO,CAC1D,QACO,CACA,CAAC,EAAE,KAAK,SAAWA,EAAQ,YAAc,IACzC,KAAK,iBAAgB,CAE5B,CACT,EACIshH,EAAc,UAAU,OAAS,SAAUthH,EAAS,CAChD,GAAIgyG,GAAO,KAAKhyG,EAAS,IAAI,GAAK,CAACA,EAAQ,GACvC,MAAO,GAEX,IAAIyyG,EAAQzyG,EAAQ,WACd,KAAK,eACL,KAAK,KACX,GAAI,CACA,QAAE,KAAK,QACAyyG,EAAM,OAAOzyG,EAAQ,IAAM,aAAcA,EAAQ,MAAM,CACjE,QACO,CACA,CAAC,EAAE,KAAK,SAAWA,EAAQ,YAAc,IACzC,KAAK,iBAAgB,CAE5B,CACT,EACIshH,EAAc,UAAU,KAAO,SAAUthH,EAAS,CAC9C,OAAO,KAAK,YAAY,sBAAsBnH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,MAAOA,EAAQ,WAAa,KAAK,eAAiB,KAAK,KAAM,OAAQA,EAAQ,IAAM,aAAc,OAAQ,KAAK,MAAM,CAAE,CAAC,CAC/M,EACIshH,EAAc,UAAU,MAAQ,SAAUI,EAAO,CAC7C,IAAIllH,EAAQ,KACZ,OAAK,KAAK,QAAQ,MACds8G,GAAY,IAAI,EAEpB,KAAK,QAAQ,IAAI4I,CAAK,EAClBA,EAAM,WACN,KAAK,oBAAoBA,CAAK,EAE3B,UAAY,CACXllH,EAAM,QAAQ,OAAOklH,CAAK,GAAK,CAACllH,EAAM,QAAQ,MAC9Co8G,GAAYp8G,CAAK,EAErBA,EAAM,oBAAoB,OAAOklH,CAAK,CAClD,CACA,EACIJ,EAAc,UAAU,GAAK,SAAUthH,EAAS,CAC5Cg3G,GAAmB,MAAK,EACxB,IAAI/B,EAAM,KAAK,eAAe,GAAE,EAChC,OAAIj1G,GAAW,CAAC,KAAK,UACbA,EAAQ,iBACR,KAAK,iBAAiBA,EAAQ,qBAAqB,EAE9CA,EAAQ,uBACb,KAAK,YAAY,cAGlBi1G,CACf,EACIqM,EAAc,UAAU,OAAS,SAAUtM,EAAQzD,EAAY,CAC3D,OAAQA,EAAa,KAAK,eAAiB,KAAK,MAAM,OAAOyD,CAAM,CAC3E,EACIsM,EAAc,UAAU,QAAU,SAAUtM,EAAQzD,EAAY,CAC5D,OAAQA,EAAa,KAAK,eAAiB,KAAK,MAAM,QAAQyD,CAAM,CAC5E,EACIsM,EAAc,UAAU,SAAW,SAAU70B,EAAQ,CACjD,GAAIuI,GAAYvI,CAAM,EAClB,OAAOA,EAAO,MAClB,GAAI,CACA,OAAO,KAAK,SAAS,SAASA,CAAM,EAAE,CAAC,CAC1C,OACM18G,EAAG,CACN,SAAWw+F,GAAU,KAAKx+F,CAAC,CAC9B,CACT,EACIuxI,EAAc,UAAU,MAAQ,SAAUthH,EAAS,CAC/C,GAAI,CAACA,EAAQ,GAAI,CACb,GAAIgyG,GAAO,KAAKhyG,EAAS,IAAI,EACzB,MAAO,GAEXA,EAAUnH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,GAAI,YAAY,CAAE,CACjE,CACD,GAAI,CACA,QAAE,KAAK,QACA,KAAK,eAAe,MAAMA,EAAS,KAAK,IAAI,CACtD,QACO,CACA,CAAC,EAAE,KAAK,SAAWA,EAAQ,YAAc,IACzC,KAAK,iBAAgB,CAE5B,CACT,EACIshH,EAAc,UAAU,MAAQ,SAAUthH,EAAS,CAC/C,IAAIxD,EAAQ,KACZ,YAAK,KAAI,EACTw6G,GAAmB,MAAK,EACpBh3G,GAAWA,EAAQ,gBACnB,KAAK,QAAQ,QAAQ,SAAU0hH,EAAO,CAAE,OAAOllH,EAAM,oBAAoB,OAAOklH,CAAK,CAAI,GACzF,KAAK,QAAQ,QACb9I,GAAY,IAAI,GAGhB,KAAK,iBAAgB,EAElB,QAAQ,SACvB,EACI0I,EAAc,UAAU,iBAAmB,SAAUK,EAAY,CAC7D,IAAIC,EAAoB,KAAK,eAAe,YAAYD,CAAU,EAC9DC,IAAsB,KAAK,iBAC3B,KAAK,eAAiBA,EACtB,KAAK,iBAAgB,EAEjC,EACIN,EAAc,UAAU,MAAQ,SAAUthH,EAAS,CAC/C,IAAIxD,EAAQ,KACRihC,EAASz9B,EAAQ,OAAQjE,EAAKiE,EAAQ,WAAYuxG,EAAax1G,IAAO,OAAS,GAAOA,EAAI8lH,EAAmB7hH,EAAQ,iBAAkB8hH,EAAiB9hH,EAAQ,eAChK6xG,EACAkQ,EAAU,SAAUC,EAAO,CAC3B,IAAIjmH,EAAKS,EAAOyT,EAAOlU,EAAG,KAAMkmH,EAAiBlmH,EAAG,eACpD,EAAES,EAAM,QACJwlH,IACAxlH,EAAM,KAAOA,EAAM,eAAiBwlH,GAExC,GAAI,CACA,OAAOnQ,EAAep0E,EAAOjhC,CAAK,CACrC,QACO,CACJ,EAAEA,EAAM,QACRA,EAAM,KAAOyT,EACbzT,EAAM,eAAiBylH,CAC1B,CACb,EACYC,EAAe,IAAI,IACvB,OAAIJ,GAAkB,CAAC,KAAK,SACxB,KAAK,iBAAiBjpH,EAASA,EAAS,GAAImH,CAAO,EAAG,CAAE,eAAgB,SAAU0hH,EAAO,CACjF,OAAAQ,EAAa,IAAIR,CAAK,EACf,EACV,EAAE,CAAC,EAER,OAAOnQ,GAAe,SACtB,KAAK,eAAiB,KAAK,eAAe,SAASA,EAAYwQ,CAAO,EAEjExQ,IAAe,GACpBwQ,EAAQ,KAAK,IAAI,EAGjBA,IAEA,OAAOF,GAAqB,WAC5B,KAAK,eAAiB,KAAK,eAAe,YAAYA,CAAgB,GAEtEC,GAAkBI,EAAa,MAC/B,KAAK,iBAAiBrpH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,eAAgB,SAAU0hH,EAAOS,EAAM,CACvF,IAAIloH,EAAS6nH,EAAe,KAAK,KAAMJ,EAAOS,CAAI,EAClD,OAAIloH,IAAW,IACXioH,EAAa,OAAOR,CAAK,EAEtBznH,CACV,EAAE,CAAC,EACJioH,EAAa,MACbA,EAAa,QAAQ,SAAUR,EAAO,CAAE,OAAOllH,EAAM,oBAAoB,MAAMklH,CAAK,CAAE,CAAE,GAI5F,KAAK,iBAAiB1hH,CAAO,EAE1B6xG,CACf,EACIyP,EAAc,UAAU,mBAAqB,SAAU7jF,EAAQm0E,EAAc,CACzE,OAAO,KAAK,MAAM,CACd,OAAQn0E,EACR,WAAYm0E,GAAiBA,IAAiB,IAC1D,CAAS,CACT,EACI0P,EAAc,UAAU,kBAAoB,SAAUhtG,EAAU,CAC5D,GAAI,KAAK,YAAa,CAClB,IAAIra,EAAS,KAAK,sBAAsB,IAAIqa,CAAQ,EACpD,OAAKra,IACDA,EAASqgG,GAAsBhmF,CAAQ,EACvC,KAAK,sBAAsB,IAAIA,EAAUra,CAAM,EAC/C,KAAK,sBAAsB,IAAIA,EAAQA,CAAM,GAE1CA,CACV,CACD,OAAOqa,CACf,EACIgtG,EAAc,UAAU,iBAAmB,SAAUhtG,EAAU,CAC3D,IAAIggF,EAAY,KAAK,OAAO,UAC5B,OAAOA,EACDA,EAAU,UAAUhgF,CAAQ,EAC5BA,CACd,EACIgtG,EAAc,UAAU,iBAAmB,SAAUthH,EAAS,CAC1D,IAAIxD,EAAQ,KACP,KAAK,SACN,KAAK,QAAQ,QAAQ,SAAU/rB,EAAG,CAAE,OAAO+rB,EAAM,oBAAoB/rB,EAAGuvB,CAAO,CAAI,EAE/F,EACIshH,EAAc,UAAU,eAAiB,SAAU7wI,EAAGuvB,EAAS,CAC3D,IAAIoiH,EAAW3xI,EAAE,SACb0xI,EAAO,KAAK,KAAK1xI,CAAC,EAClBuvB,IACIvvB,EAAE,YACF,OAAOuvB,EAAQ,YAAe,WAC9BmiH,EAAK,0BAA4B,IAEjCniH,EAAQ,gBACRA,EAAQ,eAAe,KAAK,KAAMvvB,EAAG0xI,EAAMC,CAAQ,IAAM,MAI7D,CAACA,GAAY,CAAChW,GAAMgW,EAAS,OAAQD,EAAK,MAAM,IAChD1xI,EAAE,SAASA,EAAE,SAAW0xI,EAAMC,CAAQ,CAElD,EACWd,CACX,EAAE3P,EAAW,ECzTF0Q,IACV,SAAUA,EAAe,CACtBA,EAAcA,EAAc,QAAa,CAAC,EAAI,UAC9CA,EAAcA,EAAc,aAAkB,CAAC,EAAI,eACnDA,EAAcA,EAAc,UAAe,CAAC,EAAI,YAChDA,EAAcA,EAAc,QAAa,CAAC,EAAI,UAC9CA,EAAcA,EAAc,KAAU,CAAC,EAAI,OAC3CA,EAAcA,EAAc,MAAW,CAAC,EAAI,QAC5CA,EAAcA,EAAc,MAAW,CAAC,EAAI,OAChD,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EACjC,SAASC,GAAyBC,EAAe,CACpD,OAAOA,EAAgBA,EAAgB,EAAI,EAC/C,CCPA,IAAIj6G,GAAS,OAAO,OAAQyyF,GAAiB,OAAO,eAChDynB,GAAmB,SAAUv2G,EAAQ,CACrCtT,GAAU6pH,EAAiBv2G,CAAM,EACjC,SAASu2G,EAAgBzmH,EAAI,CACzB,IAAI0mH,EAAe1mH,EAAG,aAAc2mH,EAAY3mH,EAAG,UAAWiE,EAAUjE,EAAG,QACvES,EAAQyP,EAAO,KAAK,KAAM,SAAU0xF,EAAU,CAC9C,GAAI,CACA,IAAIglB,EAAchlB,EAAS,cAAc,UACrCglB,GAAe,CAACA,EAAY,QAC5BA,EAAY,MAAQC,GAE3B,MACU,CAAG,CACd,IAAInxC,EAAQ,CAACj1E,EAAM,UAAU,KAC7BA,EAAM,UAAU,IAAImhG,CAAQ,EAC5B,IAAIklB,EAAOrmH,EAAM,KACjB,OAAIqmH,GAAQA,EAAK,MACbllB,EAAS,OAASA,EAAS,MAAMklB,EAAK,KAAK,EAEtCA,GAAQA,EAAK,QAClBllB,EAAS,MAAQA,EAAS,KAAKklB,EAAK,MAAM,EAE1CpxC,GACAj1E,EAAM,UAAW,EAAC,MAAM,UAAY,CAAG,GAEpC,UAAY,CACXA,EAAM,UAAU,OAAOmhG,CAAQ,GAAK,CAACnhG,EAAM,UAAU,MACrDA,EAAM,cAAa,CAEvC,CACS,IAAK,KACNA,EAAM,UAAY,IAAI,IACtBA,EAAM,cAAgB,IAAI,IAC1BA,EAAM,UAAYkmH,EAClBlmH,EAAM,aAAeimH,EACrBjmH,EAAM,WAAa,GACnB,IAAIR,EAAKymH,EAAa,eAAe,WAAYxmH,EAAKD,IAAO,OAAS,CAAE,EAAGA,EAAIE,EAAKD,EAAG,YAAa6mH,EAAqB5mH,IAAO,OAAS,cAAgBA,EACrJC,EAAK6D,EAAQ,YAAa+iH,EAAc5mH,IAAO,OAAS2mH,EAAqB3mH,EAAIC,EAAK4D,EAAQ,mBAAoBgjH,EAAqB5mH,IAAO,OAAU2mH,IAAgB,UAAYD,EAAqBC,EAAe3mH,EAC5NI,EAAM,QAAU3D,EAASA,EAAS,GAAImH,CAAO,EAAG,CAAE,mBAAoBgjH,EAAoB,YAAaD,CAAa,GACpHvmH,EAAM,QAAUkmH,EAAU,SAAWD,EAAa,gBAAe,EACjE,IAAIQ,EAAQ3rB,GAAuB96F,EAAM,KAAK,EAC9C,OAAAA,EAAM,UAAYymH,GAASA,EAAM,MAAQA,EAAM,KAAK,MAC7CzmH,CACV,CACD,cAAO,eAAegmH,EAAgB,UAAW,QAAS,CACtD,IAAK,UAAY,CACb,OAAO,KAAK,aAAa,UAAU,KAAK,QAAQ,KAAK,EAAE,QAC1D,EACD,WAAY,GACZ,aAAc,EACtB,CAAK,EACD,OAAO,eAAeA,EAAgB,UAAW,YAAa,CAC1D,IAAK,UAAY,CACb,OAAO,KAAK,QAAQ,SACvB,EACD,WAAY,GACZ,aAAc,EACtB,CAAK,EACDA,EAAgB,UAAU,OAAS,UAAY,CAC3C,IAAIhmH,EAAQ,KACZ,OAAO,IAAI,QAAQ,SAAU5C,EAASC,EAAQ,CAC1C,IAAI8jG,EAAW,CACX,KAAM,SAAU1jG,EAAQ,CACpBL,EAAQK,CAAM,EACduC,EAAM,UAAU,OAAOmhG,CAAQ,EAC1BnhG,EAAM,UAAU,MACjBA,EAAM,aAAa,YAAYA,EAAM,OAAO,EAEhD,WAAW,UAAY,CACnB4gG,EAAa,YAAW,CAC3B,EAAE,CAAC,CACP,EACD,MAAOvjG,CACvB,EACgBujG,EAAe5gG,EAAM,UAAUmhG,CAAQ,CACvD,CAAS,CACT,EACI6kB,EAAgB,UAAU,iBAAmB,SAAUU,EAAkB,CACjEA,IAAqB,SAAUA,EAAmB,IACtD,IAAIl8G,EAAa,KAAK,cAAc,EAAI,EACpCu7G,EAAgB,KAAK,UAAU,eAC9Bv7G,GAAcA,EAAW,eAC1Bq7G,GAAc,MACdpoH,EAASpB,EAASA,EAAS,GAAImO,CAAU,EAAG,CAAE,QAASs7G,GAAyBC,CAAa,EAAG,cAAeA,CAAe,GAC9HxmH,EAAK,KAAK,QAAQ,YAAagnH,EAAchnH,IAAO,OAAS,cAAgBA,EACjF,GAAI,EAAAgnH,IAAgB,gBAChBA,IAAgB,YAChBA,IAAgB,WAChB,KAAK,aAAa,UAAU,KAAK,QAAQ,KAAK,EAAE,oBAE/C,CACD,IAAIZ,EAAO,KAAK,UAAU,QAAO,GAC7BA,EAAK,UAAY,KAAK,QAAQ,qBAC9BloH,EAAO,KAAOkoH,EAAK,QAEnB/V,GAAMnyG,EAAO,KAAM,CAAE,KACrBA,EAAO,KAAO,QAEdkoH,EAAK,UACL,OAAOloH,EAAO,QACVkoH,EAAK,UACLloH,EAAO,gBAAkBooH,GAAc,UACtCU,IAAgB,eACbA,IAAgB,gBACpB9oH,EAAO,cAAgBooH,GAAc,MACrCpoH,EAAO,QAAU,KAIrBA,EAAO,QAAU,GAEjB,SACA,CAACkoH,EAAK,UACN,CAAC,KAAK,QAAQ,gBACd,CAACloH,EAAO,SACR,CAACA,EAAO,MACR,CAACA,EAAO,OACRkpH,GAAsBhB,EAAK,OAAO,CAEzC,CACD,OAAIe,GACA,KAAK,iBAAiBjpH,CAAM,EAEzBA,CACf,EACIuoH,EAAgB,UAAU,0BAA4B,SAAUY,EAAW/vB,EAAW,CAClF,MAAQ,CAAC,KAAK,MACV,CAAC+Y,GAAM,KAAK,KAAK,OAAQgX,CAAS,GACjC/vB,GAAa,CAAC+Y,GAAM,KAAK,KAAK,UAAW/Y,CAAS,CAC/D,EACImvB,EAAgB,UAAU,QAAU,SAAUppH,EAAKiqH,EAAoB,CACnE,IAAIR,EAAO,KAAK,KAChB,GAAIA,GACAA,EAAKzpH,CAAG,IACP,CAACiqH,GAAsBjX,GAAMyW,EAAK,UAAW,KAAK,SAAS,GAC5D,OAAOA,EAAKzpH,CAAG,CAE3B,EACIopH,EAAgB,UAAU,cAAgB,SAAUa,EAAoB,CACpE,OAAO,KAAK,QAAQ,SAAUA,CAAkB,CACxD,EACIb,EAAgB,UAAU,aAAe,SAAUa,EAAoB,CACnE,OAAO,KAAK,QAAQ,QAASA,CAAkB,CACvD,EACIb,EAAgB,UAAU,iBAAmB,UAAY,CACrD,OAAO,KAAK,KACZ,KAAK,WAAa,EAC1B,EACIA,EAAgB,UAAU,sBAAwB,UAAY,CAC1D,KAAK,aAAa,YAAY,KAAK,OAAO,CAClD,EACIA,EAAgB,UAAU,QAAU,SAAUnvB,EAAW,CACrD,IAAIt3F,EACAunH,EAAmB,CACnB,aAAc,CAC1B,EACYP,EAAc,KAAK,QAAQ,YAU/B,GATIA,IAAgB,oBAChBO,EAAiB,YAAcP,EAE1BA,IAAgB,WACrBO,EAAiB,YAAc,WAG/BA,EAAiB,YAAc,eAE/B,SAAWjwB,GAAa0H,GAAe,KAAK1H,EAAW,WAAW,EAAG,CACrE,IAAIqE,EAAWD,GAAmB,KAAK,KAAK,EACxC8rB,EAAO7rB,EAAS,qBAChB,CAAC6rB,GAAQ,CAACA,EAAK,KAAK,SAAUp0I,EAAG,CAAE,OAAOA,EAAE,SAAS,KAAK,QAAU,WAAc,KAClF,SAAWo/F,GAAU,KAAK,kBAAkB,OAAO,KAAK,UAAU8kB,CAAS,EAAG,cAAc,EAAE,SAASt3F,EAAK27F,EAAS,QAAU,MAAQ37F,IAAO,OAAS,OAASA,EAAG,QAAU,KAAK,UAAU27F,CAAQ,EAAG;AAAA,2EAA6H,CAAC,CAE5U,CACD,OAAIrE,GAAa,CAAC+Y,GAAM,KAAK,QAAQ,UAAW/Y,CAAS,IACrDiwB,EAAiB,UAAY,KAAK,QAAQ,UAAYzqH,EAASA,EAAS,GAAI,KAAK,QAAQ,SAAS,EAAGw6F,CAAS,GAElH,KAAK,UAAU,iBACR,KAAK,UAAUiwB,EAAkBjB,GAAc,OAAO,CACrE,EACIG,EAAgB,UAAU,UAAY,SAAUgB,EAAkB,CAC9D,IAAIhnH,EAAQ,KACRinH,EAAkB5qH,EAASA,EAAS,CAAE,EAAG2qH,EAAiB,MAAQA,EAAmB3qH,EAASA,EAASA,EAASA,EAAS,GAAI,KAAK,OAAO,EAAG,CAAE,MAAO,KAAK,KAAO,GAAG2qH,CAAgB,EAAG,CAAE,UAAW3qH,EAASA,EAAS,GAAI,KAAK,QAAQ,SAAS,EAAG2qH,EAAiB,SAAS,CAAG,EAAG,EAAE,CAAE,YAAa,UAAU,CAAE,EAChTE,EAAM,KAAK,aAAa,gBAAe,EACvChB,EAAY,KAAK,UACjBiB,EAAwBjB,EAAU,cACtCA,EAAU,cAAgBL,GAAc,UACpCoB,EAAgB,6BAChB,KAAK,QAAO,EAEhB,IAAIG,EAAkB,IAAI,IAC1B,OAAO,KAAK,aAAa,WAAWF,EAAKD,EAAiBpB,GAAc,SAAS,EAAE,KAAK,SAAUwB,EAAiB,CAC/G,OAAArnH,EAAM,aAAa,YAAYknH,CAAG,EAC9BhB,EAAU,gBAAkBL,GAAc,YAC1CK,EAAU,cAAgBiB,GAE9BnnH,EAAM,aAAa,MAAM,MAAM,CAC3B,OAAQ,SAAU8a,EAAO,CACrB,IAAIwsG,EAAcN,EAAiB,YAC/BM,EACAxsG,EAAM,YAAY,CACd,MAAO9a,EAAM,MACb,UAAWA,EAAM,UACjB,kBAAmB,GACnB,WAAY,EACf,EAAE,SAAUqlF,EAAU,CAAE,OAAOiiC,EAAYjiC,EAAU,CAClD,gBAAiBgiC,EAAgB,KACjC,UAAWJ,EAAgB,SACvD,CAAyB,CAAI,GAGLnsG,EAAM,WAAW,CACb,MAAOmsG,EAAgB,MACvB,UAAWA,EAAgB,UAC3B,KAAMI,EAAgB,IAClD,CAAyB,CAER,EACD,eAAgB,SAAUnC,EAAO,CAC7BkC,EAAgB,IAAIlC,EAAM,KAAK,CAClC,CACjB,CAAa,EACMmC,CACnB,CAAS,EAAE,QAAQ,UAAY,CACdD,EAAgB,IAAIpnH,EAAM,KAAK,GAChCunH,GAAoBvnH,CAAK,CAEzC,CAAS,CACT,EACIgmH,EAAgB,UAAU,gBAAkB,SAAUxiH,EAAS,CAC3D,IAAIxD,EAAQ,KACR4gG,EAAe,KAAK,aACnB,yBAAyB,CAC1B,MAAOp9F,EAAQ,SACf,UAAWA,EAAQ,UACnB,QAASA,EAAQ,OAC7B,CAAS,EACI,UAAU,CACX,KAAM,SAAUgkH,EAAkB,CAC9B,IAAIF,EAAc9jH,EAAQ,YACtB8jH,GACAtnH,EAAM,YAAY,SAAUqlF,EAAU9lF,EAAI,CACtC,IAAIs3F,EAAYt3F,EAAG,UACnB,OAAO+nH,EAAYjiC,EAAU,CACzB,iBAAkBmiC,EAClB,UAAW3wB,CACvC,CAAyB,CACzB,CAAqB,CAER,EACD,MAAO,SAAUp7F,EAAK,CAClB,GAAI+H,EAAQ,QAAS,CACjBA,EAAQ,QAAQ/H,CAAG,EACnB,MACH,CACD,SAAWs2E,GAAU,MAAM,uCAAwCt2E,CAAG,CACzE,CACb,CAAS,EACD,YAAK,cAAc,IAAImlG,CAAY,EAC5B,UAAY,CACX5gG,EAAM,cAAc,OAAO4gG,CAAY,GACvCA,EAAa,YAAW,CAExC,CACA,EACIolB,EAAgB,UAAU,WAAa,SAAUyB,EAAY,CACzD,OAAO,KAAK,UAAUA,CAAU,CACxC,EACIzB,EAAgB,UAAU,aAAe,SAAUnvB,EAAW,CAC1D,OAAI+Y,GAAM,KAAK,UAAW/Y,CAAS,EACxB,KAAK,UAAU,KAChB,KAAK,OAAQ,EACb,QAAQ,QAAO,GAEzB,KAAK,QAAQ,UAAYA,EACpB,KAAK,UAAU,KAGb,KAAK,UAAU,CAClB,YAAa,KAAK,QAAQ,mBAC1B,UAAWA,CACvB,EAAWgvB,GAAc,YAAY,EALlB,QAAQ,UAM3B,EACIG,EAAgB,UAAU,YAAc,SAAU9hB,EAAO,CACrD,IAAI+hB,EAAe,KAAK,aACpBxoH,EAASwoH,EAAa,MAAM,KAAK,CACjC,MAAO,KAAK,QAAQ,MACpB,UAAW,KAAK,UAChB,kBAAmB,GACnB,WAAY,EACf,GAAE,OACCW,EAAY1iB,EAAMzmG,EAAQ,CAC1B,UAAW,KAAK,SAC5B,CAAS,EACGmpH,IACAX,EAAa,MAAM,WAAW,CAC1B,MAAO,KAAK,QAAQ,MACpB,KAAMW,EACN,UAAW,KAAK,SAChC,CAAa,EACDX,EAAa,iBAAgB,EAEzC,EACID,EAAgB,UAAU,aAAe,SAAU0B,EAAc,CAC7D,KAAK,QAAQ,aAAeA,EAC5B,KAAK,cAAa,CAC1B,EACI1B,EAAgB,UAAU,YAAc,UAAY,CAChD,KAAK,QAAQ,aAAe,EAC5B,KAAK,cAAa,CAC1B,EACIA,EAAgB,UAAU,qBAAuB,SAAUtgB,EAAQliG,EAAS,CACxE,GAAIA,EAAQ,gBAAiB,CACzB,IAAIjE,EAAKiE,EAAQ,YAAa+iH,EAAchnH,IAAO,OAAS,cAAgBA,EAAIC,EAAKgE,EAAQ,mBAAoBgjH,EAAqBhnH,IAAO,OAAS+mH,EAAc/mH,EAChK+mH,IAAgB,YAEX,OAAO/iH,EAAQ,iBAAoB,WACxCA,EAAQ,YAAcA,EAAQ,gBAAgB+iH,EAAa,CACvD,OAAQ7gB,EACR,QAASliG,EACT,WAAY,KACZ,mBAAoBgjH,CACxC,CAAiB,EAEI9gB,IAAW,oBAChBliG,EAAQ,YAAcgjH,EAGtBhjH,EAAQ,YAAcA,EAAQ,gBAErC,CACD,OAAOA,EAAQ,WACvB,EACIwiH,EAAgB,UAAU,MAAQ,SAAUxiH,EAASmkH,EAAkB,CACnE,YAAK,aAAa,mBAAmB,IAAI,EAClC,KAAK,aAAa,qBAAwB,KAAK,QAASnkH,EAASmkH,CAAgB,CAChG,EACI3B,EAAgB,UAAU,cAAgB,UAAY,CAClD,IAAIhmH,EAAQ,KACZ,GAAI,MAAK,aAAa,QAGtB,KAAIT,EAAK,KAAMqoH,EAAcroH,EAAG,YAAamoH,EAAenoH,EAAG,QAAQ,aACvE,GAAI,CAACmoH,EAAc,CACXE,IACA,aAAaA,EAAY,OAAO,EAChC,OAAO,KAAK,aAEhB,MACH,CACD,GAAI,EAAAA,GACAA,EAAY,WAAaF,GAG7B,SAAU31C,GAAU21C,EAAc,gEAAgE,EAAI31C,GAAU21C,EAAc,EAAE,EAChI,IAAInX,EAAOqX,IAAgB,KAAK,YAAc,CAAE,GAChDrX,EAAK,SAAWmX,EAChB,IAAIG,EAAa,UAAY,CACrB7nH,EAAM,cACD8lH,GAAyB9lH,EAAM,UAAU,aAAa,EAMvD8nH,IALA9nH,EAAM,UAAU,CACZ,YAAaA,EAAM,QAAQ,qBAAuB,WAAa,WAAa,cACpG,EAAuB6lH,GAAc,IAAI,EAAE,KAAKiC,EAAMA,CAAI,EAO1D,EACYA,EAAO,UAAY,CACnB,IAAIvX,EAAOvwG,EAAM,YACbuwG,IACA,aAAaA,EAAK,OAAO,EACzBA,EAAK,QAAU,WAAWsX,EAAYtX,EAAK,QAAQ,EAEnE,EACQuX,KACR,EACI9B,EAAgB,UAAU,iBAAmB,SAAUY,EAAW/vB,EAAW,CACzE,OAAIA,IAAc,SAAUA,EAAY,KAAK,WAC7C,KAAK,KAAOx6F,EAASA,EAAS,GAAI,KAAK,IAAI,EAAG,CAAE,OAAQ,KAAK,aAAa,uBAChEuqH,EACAzjB,GAAUyjB,CAAS,EAAG,UAAW/vB,CAAW,GACjD+E,GAAgBgrB,EAAU,MAAM,GACjC,OAAO,KAAK,KAAK,MAEd,KAAK,IACpB,EACIZ,EAAgB,UAAU,mBAAqB,SAAUyB,EAAYE,EAAkB,CACnF,IAAI3nH,EAAQ,KACZ,KAAK,WAAa,GAClB,IAAI+nH,EAAuBJ,IAAqB9B,GAAc,SAC1D8B,IAAqB9B,GAAc,WACnC8B,IAAqB9B,GAAc,KACnCmC,EAAe,KAAK,QAAQ,UAC5BC,EAAiB,KAAK,QAAQ,YAC9BC,EAAgBvhB,GAAQ,KAAK,QAAS8gB,GAAc,EAAE,EACtDjkH,EAAUukH,EACRG,EACAp8G,GAAO,KAAK,QAASo8G,CAAa,EACnCH,IACD,KAAK,cAAa,EACdN,GACAA,EAAW,WACX,CAAC7X,GAAM6X,EAAW,UAAWO,CAAY,GACzCxkH,EAAQ,cAAgB,WACxBA,EAAQ,cAAgBykH,IACxB,KAAK,qBAAqB,oBAAqBzkH,CAAO,EAClDmkH,IAAqB,SACrBA,EAAmB9B,GAAc,gBAI7C,IAAIhvB,EAAYrzF,EAAQ,WAAanH,EAAS,GAAImH,EAAQ,SAAS,EAC/DjE,EAAK,KAAK,MAAMiE,EAASmkH,CAAgB,EAAGQ,EAAU5oH,EAAG,QAAS6oH,EAAW7oH,EAAG,SAChF4hG,EAAW,CACX,KAAM,SAAU1jG,EAAQ,CACpBuC,EAAM,aAAavC,EAAQo5F,CAAS,CACvC,EACD,MAAO,SAAU14F,EAAO,CACpB6B,EAAM,YAAY7B,EAAO04F,CAAS,CACrC,CACb,EACQ,MAAI,CAACkxB,GAAwBK,IACrB,KAAK,SAAW,KAAK,UACrB,KAAK,QAAQ,eAAe,KAAK,QAAQ,EAE7C,KAAK,QAAUD,EACf,KAAK,SAAWhnB,GAEpBgnB,EAAQ,YAAYhnB,CAAQ,EACrBgnB,CACf,EACInC,EAAgB,UAAU,UAAY,SAAUyB,EAAYE,EAAkB,CAC1E,OAAO,KAAK,mBAAmBF,EAAYE,CAAgB,EAAE,OACrE,EACI3B,EAAgB,UAAU,QAAU,UAAY,CAC5C,KAAK,aAAa,KAAK,iBAAiB,EAAK,EAAG,KAAK,SAAS,CACtE,EACIA,EAAgB,UAAU,aAAe,SAAUvoH,EAAQo5F,EAAW,CAClE,IAAIwxB,EAAY,KAAK,gBACjBA,GAAa,KAAK,0BAA0B5qH,EAAQo5F,CAAS,MACzDwxB,GAAa,CAAC5qH,EAAO,SAAW,KAAK,QAAQ,oBAC7C,KAAK,iBAAiBA,EAAQo5F,CAAS,EAE3C+M,GAAuB,KAAK,UAAW,OAAQnmG,CAAM,EAEjE,EACIuoH,EAAgB,UAAU,YAAc,SAAU7nH,EAAO04F,EAAW,CAChE,IAAIyxB,EAAcjsH,EAASA,EAAS,GAAI,KAAK,cAAa,CAAE,EAAG,CAAE,MAAO8B,EAAO,OAAQA,EAAM,cAAe,cAAe0nH,GAAc,MAAO,QAAS,EAAK,CAAE,EAChK,KAAK,iBAAiByC,EAAazxB,CAAS,EAC5C+M,GAAuB,KAAK,UAAW,QAAS,KAAK,KAAK,MAAQzlG,CAAK,CAC/E,EACI6nH,EAAgB,UAAU,aAAe,UAAY,CACjD,OAAO,KAAK,UAAU,KAAO,CACrC,EACIA,EAAgB,UAAU,cAAgB,UAAY,CAC9C,KAAK,aAEL,KAAK,SAAW,KAAK,WACrB,KAAK,QAAQ,eAAe,KAAK,QAAQ,EACzC,OAAO,KAAK,QACZ,OAAO,KAAK,UAEhB,KAAK,YAAW,EAChB,KAAK,cAAc,QAAQ,SAAUlhB,EAAK,CAAE,OAAOA,EAAI,aAAc,CAAE,EACvE,KAAK,cAAc,QACnB,KAAK,aAAa,UAAU,KAAK,OAAO,EACxC,KAAK,UAAU,QACf,KAAK,WAAa,GAC1B,EACWkhB,CACX,EAAEzlB,EAAU,EAEZ8E,GAAsB2gB,EAAe,EAC9B,SAASuB,GAAoBgB,EAAU,CAC1C,IAAIhpH,EAAKgpH,EAAS,QAAShC,EAAchnH,EAAG,YAAaipH,EAAkBjpH,EAAG,gBAC9E,OAAIgnH,IAAgB,qBAChBA,IAAgB,eACTgC,EAAS,UAAU,CACtB,YAAa,cACb,gBAAiB,UAAY,CAEzB,OADA,KAAK,gBAAkBC,EACnB,OAAOA,GAAoB,WACpBA,EAAgB,MAAM,KAAM,SAAS,EAEzCjC,CACV,CACb,CAAS,EAEEgC,EAAS,WACpB,CACA,SAASnC,GAAyCjoH,EAAO,CACrD,SAAW4zE,GAAU,MAAM,kBAAmB5zE,EAAM,QAASA,EAAM,KAAK,CAC5E,CACO,SAASwoH,GAAsBvL,EAAS,CACvC,SAAWA,GACX,SAAWrpC,GAAU,MAAM,gCAAgC,OAAO,KAAK,UAAUqpC,CAAO,CAAC,EAAGA,CAAO,CAE3G,CCnfA,IAAIqN,GAAc,UAAY,CAC1B,SAASA,EAAWlpH,EAAI,CACpB,IAAIub,EAAQvb,EAAG,MAAOmpH,EAASnpH,EAAG,OAAQopH,EAAYppH,EAAG,UAAWqpH,EAAkBrpH,EAAG,gBACzF,KAAK,yBAA2B,IAAI,QACpC,KAAK,MAAQub,EACT4tG,IACA,KAAK,OAASA,GAEdC,GACA,KAAK,aAAaA,CAAS,EAE3BC,GACA,KAAK,mBAAmBA,CAAe,CAE9C,CACD,OAAAH,EAAW,UAAU,aAAe,SAAUE,EAAW,CACrD,IAAI3oH,EAAQ,KACZ,KAAK,UAAY,KAAK,WAAa,GAC/B,MAAM,QAAQ2oH,CAAS,EACvBA,EAAU,QAAQ,SAAUE,EAAe,CACvC7oH,EAAM,UAAYw+F,GAAUx+F,EAAM,UAAW6oH,CAAa,CAC1E,CAAa,EAGD,KAAK,UAAYrqB,GAAU,KAAK,UAAWmqB,CAAS,CAEhE,EACIF,EAAW,UAAU,aAAe,SAAUE,EAAW,CACrD,KAAK,UAAY,GACjB,KAAK,aAAaA,CAAS,CACnC,EACIF,EAAW,UAAU,aAAe,UAAY,CAC5C,OAAO,KAAK,WAAa,EACjC,EACIA,EAAW,UAAU,aAAe,SAAUlpH,EAAI,CAC9C,IAAIuY,EAAWvY,EAAG,SAAUupH,EAAevpH,EAAG,aAAcoQ,EAAUpQ,EAAG,QAASs3F,EAAYt3F,EAAG,UAAWC,EAAKD,EAAG,uBAAwBwpH,EAAyBvpH,IAAO,OAAS,GAAQA,EAC7L,OAAO1C,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,OAAOY,GAAY,KAAM,SAAU+B,EAAI,CACnC,OAAIqY,EACO,CAAC,EAAG,KAAK,gBAAgBA,EAAUgxG,EAAa,KAAMn5G,EAASknF,EAAW,KAAK,gBAAiBkyB,CAAsB,EAAE,KAAK,SAAUC,EAAa,CAAE,OAAQ3sH,EAASA,EAAS,CAAE,EAAEysH,CAAY,EAAG,CAAE,KAAME,EAAY,MAAQ,EAAG,CAAE,CAAC,EAEzO,CAAC,EAAGF,CAAY,CACvC,CAAa,CACb,CAAS,CACT,EACIL,EAAW,UAAU,mBAAqB,SAAUG,EAAiB,CACjE,KAAK,gBAAkBA,CAC/B,EACIH,EAAW,UAAU,mBAAqB,UAAY,CAClD,OAAO,KAAK,eACpB,EACIA,EAAW,UAAU,YAAc,SAAU3wG,EAAU,CACnD,OAAIo/E,GAAc,CAAC,QAAQ,EAAGp/E,CAAQ,GAC9B,KAAK,UACEA,EAGR,IACf,EACI2wG,EAAW,UAAU,YAAc,SAAU3wG,EAAU,CACnD,OAAOwmF,GAA6BxmF,CAAQ,CACpD,EACI2wG,EAAW,UAAU,eAAiB,SAAU94G,EAAS,CACrD,IAAImL,EAAQ,KAAK,MACjB,OAAOze,EAASA,EAAS,GAAIsT,CAAO,EAAG,CAAE,MAAOmL,EAAO,YAAa,SAAUpK,EAAK,CAC3E,OAAOoK,EAAM,SAASpK,CAAG,CAC5B,EAAE,CACf,EACI+3G,EAAW,UAAU,qBAAuB,SAAU3wG,EAAU++E,EAAWlnF,EAAS,CAChF,OAAIknF,IAAc,SAAUA,EAAY,CAAE,GACtClnF,IAAY,SAAUA,EAAU,CAAE,GAC/B7S,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,OAAOY,GAAY,KAAM,SAAU6B,EAAI,CACnC,OAAIuY,EACO,CAAC,EAAG,KAAK,gBAAgBA,EAAU,KAAK,wBAAwBA,EAAU++E,CAAS,GAAK,CAAE,EAAE,KAAK,eAAelnF,CAAO,EAAGknF,CAAS,EAAE,KAAK,SAAUpjF,EAAM,CAAE,OAAQpX,EAASA,EAAS,GAAIw6F,CAAS,EAAGpjF,EAAK,iBAAiB,CAAG,CAAE,CAAC,EAEtO,CAAC,EAAGpX,EAAS,GAAIw6F,CAAS,CAAC,CAClD,CAAa,CACb,CAAS,CACT,EACI4xB,EAAW,UAAU,qBAAuB,SAAU3wG,EAAU,CAC5D,IAAImxG,EAAiB,GACrB,OAAAh2B,GAAMn7E,EAAU,CACZ,UAAW,CACP,MAAO,SAAUqO,EAAM,CACnB,GAAIA,EAAK,KAAK,QAAU,UAAYA,EAAK,YACrC8iG,EAAiB9iG,EAAK,UAAU,KAAK,SAAUzkB,EAAK,CAChD,OAAOA,EAAI,KAAK,QAAU,UACtBA,EAAI,MAAM,OAAS,gBACnBA,EAAI,MAAM,QAAU,EACpD,CAAyB,EACGunH,GACA,OAAOj2B,EAGlB,CACJ,CACb,CAAS,EACMi2B,CACf,EACIR,EAAW,UAAU,wBAA0B,SAAU3wG,EAAU++E,EAAW,CAC1E,OAAO,KAAK,MAAM,KAAK,CACnB,MAAOsH,GAA2BrmF,CAAQ,EAC1C,UAAW++E,EACX,kBAAmB,GACnB,WAAY,EACf,GAAE,MACX,EACI4xB,EAAW,UAAU,gBAAkB,SAAU3wG,EAAUoxG,EAAWv5G,EAASknF,EAAW+xB,EAAiBG,EAAwB,CAC/H,OAAIp5G,IAAY,SAAUA,EAAU,CAAE,GAClCknF,IAAc,SAAUA,EAAY,CAAE,GACtC+xB,IAAoB,SAAUA,EAAkB,UAAY,CAAE,MAAO,EAAK,GAC1EG,IAA2B,SAAUA,EAAyB,IAC3DjsH,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAIqsH,EAAgBrxB,EAAWO,EAAa+wB,EAAqBhrB,EAAqBirB,EAAsB9pH,EAAIub,EAAO4tG,EAAQY,EAAaC,EAC5I,OAAO7rH,GAAY,KAAM,SAAU8B,EAAI,CACnC,OAAA2pH,EAAiB9tB,GAAkBvjF,CAAQ,EAC3CggF,EAAYkD,GAAuBljF,CAAQ,EAC3CugF,EAAcJ,GAAkBH,CAAS,EACzCsxB,EAAsB,KAAK,2BAA2BD,EAAgB9wB,CAAW,EACjF+F,EAAsB+qB,EAAe,UACrCE,EAAuBjrB,EACjBA,EAAoB,OAAO,CAAC,EAAE,YAAa,EACzCA,EAAoB,MAAM,CAAC,EAC7B,QACN7+F,EAAK,KAAMub,EAAQvb,EAAG,MAAOmpH,EAASnpH,EAAG,OACzC+pH,EAAc,CACV,YAAajxB,EACb,QAASh8F,EAASA,EAAS,GAAIsT,CAAO,EAAG,CAAE,MAAOmL,EAAO,OAAQ4tG,EAAQ,EACzE,UAAW7xB,EACX,gBAAiB+xB,EACjB,qBAAsBS,EACtB,kBAAmB,CAAE,EACrB,oBAAqBD,EACrB,uBAAwBL,CAC5C,EACgBQ,EAA0B,GACnB,CAAC,EAAG,KAAK,oBAAoBJ,EAAe,aAAcI,EAAyBL,EAAWI,CAAW,EAAE,KAAK,SAAU7rH,EAAQ,CAAE,MAAQ,CAC3I,OAAQA,EACR,kBAAmB6rH,EAAY,iBACvD,CAAuB,CAAE,CAAC,CAC1B,CAAa,CACb,CAAS,CACT,EACIb,EAAW,UAAU,oBAAsB,SAAUhzB,EAAc8zB,EAAyBL,EAAWI,EAAa,CAChH,OAAOxsH,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAIu7F,EAAa1oF,EAASknF,EAAW2yB,EAAgB5gB,EACjD5oG,EAAQ,KACZ,OAAOtC,GAAY,KAAM,SAAU6B,EAAI,CACnC,OAAA84F,EAAcixB,EAAY,YAAa35G,EAAU25G,EAAY,QAASzyB,EAAYyyB,EAAY,UAC9FE,EAAiB,CAACN,CAAS,EAC3BtgB,EAAU,SAAU9oC,EAAW,CAAE,OAAOhjE,GAAUkD,EAAO,OAAQ,OAAQ,UAAY,CACjF,IAAIm4F,EAAUxC,EACd,OAAOj4F,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAI,CAACgqH,GAA2B,CAACD,EAAY,oBAAoB,IAAIxpD,CAAS,EACnE,CAAC,CAAC,EAER82B,GAAc92B,EAAW+2B,CAAS,EAGnC2D,GAAQ16B,CAAS,EACV,CAAC,EAAG,KAAK,aAAaA,EAAWypD,EAAyBL,EAAWI,CAAW,EAAE,KAAK,SAAUG,EAAa,CAC7G,IAAIlqH,EACA,OAAOkqH,EAAgB,KACvBD,EAAe,MAAMjqH,EAAK,CAAE,EACxBA,EAAG+6F,GAAuBx6B,CAAS,CAAC,EAAI2pD,EACxClqH,GAEX,EAAC,GAENo7F,GAAiB76B,CAAS,EAC1Bq4B,EAAWr4B,GAGXq4B,EAAWE,EAAYv4B,EAAU,KAAK,KAAK,EAC3C,QAAUiS,GAAUomB,EAAU,qBAAqB,OAAOr4B,EAAU,KAAK,KAAK,CAAC,EAAIiS,GAAUomB,EAAU,EAAE,GAEzGA,GAAYA,EAAS,gBACrBxC,EAAgBwC,EAAS,cAAc,KAAK,MACxCmxB,EAAY,gBAAgBJ,EAAWvzB,EAAehmF,CAAO,GACtD,CAAC,EAAG,KAAK,oBAAoBwoF,EAAS,aAAcoxB,EAAyBL,EAAWI,CAAW,EAAE,KAAK,SAAUI,EAAgB,CACnIF,EAAe,KAAKE,CAAc,CACrC,EAAC,EAGP,CAAC,CAAC,GA3BE,CAAC,CAAC,CA4BrC,CAAqB,CACJ,EAAE,EACI,CAAC,EAAG,QAAQ,IAAIj0B,EAAa,WAAW,IAAImT,CAAO,CAAC,EAAE,KAAK,UAAY,CACtE,OAAOlK,GAAe8qB,CAAc,CACvC,EAAC,CACtB,CAAa,CACb,CAAS,CACT,EACIf,EAAW,UAAU,aAAe,SAAU9wC,EAAO4xC,EAAyBL,EAAWI,EAAa,CAClG,OAAOxsH,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI+5F,EAAWgD,EAAW8vB,EAAkBC,EAAWC,EAAeC,EAAeC,EAAcC,EAAa5sH,EAC5G4C,EAAQ,KACZ,OAAOtC,GAAY,KAAM,SAAU6B,EAAI,CACnC,OAAK2pH,GAGLryB,EAAYyyB,EAAY,UACxBzvB,EAAYliB,EAAM,KAAK,MACvBgyC,EAAmBrvB,GAAuB3iB,CAAK,EAC/CiyC,EAAY/vB,IAAc8vB,EAC1BE,EAAgBX,EAAUS,CAAgB,GAAKT,EAAUrvB,CAAS,EAClEiwB,EAAgB,QAAQ,QAAQD,CAAa,GACzC,CAACP,EAAY,wBACb,KAAK,qBAAqB3xC,CAAK,KAC/BoyC,EAAeb,EAAU,YAAcI,EAAY,qBACnDU,EAAc,KAAK,WAAa,KAAK,UAAUD,CAAY,EACvDC,IACA5sH,EAAU4sH,EAAYJ,EAAY/vB,EAAY8vB,CAAgB,EAC1DvsH,IACA0sH,EAAgB,QAAQ,QAAQ7N,GAAU,UAAU,KAAK,MAAO7+G,EAAS,CACrE8rH,EACA9uB,GAAyBziB,EAAOkf,CAAS,EACzCyyB,EAAY,QACZ,CAAE,MAAO3xC,EAAO,YAAa2xC,EAAY,WAAa,CACzD,EAAC,KAIP,CAAC,EAAGQ,EAAc,KAAK,SAAUrsH,EAAQ,CACxC,IAAI8B,EAAIC,EAgBR,GAfI/B,IAAW,SAAUA,EAASosH,GAC9BlyC,EAAM,YACNA,EAAM,WAAW,QAAQ,SAAUof,EAAW,CACtCA,EAAU,KAAK,QAAU,UAAYA,EAAU,WAC/CA,EAAU,UAAU,QAAQ,SAAUr1F,EAAK,CACnCA,EAAI,KAAK,QAAU,MAAQA,EAAI,MAAM,OAAS,gBAC9C4nH,EAAY,kBAAkB5nH,EAAI,MAAM,KAAK,EAAIjE,EAE7F,CAAqC,CAErC,CAA6B,EAED,CAACk6E,EAAM,cAGPl6E,GAAU,KACV,OAAOA,EAEX,IAAIwsH,GAAiBzqH,GAAMD,EAAKo4E,EAAM,cAAgB,MAAQp4E,IAAO,OAAS,OAASA,EAAG,KAAK,SAAUvrB,EAAG,CAAE,OAAOA,EAAE,KAAK,QAAU,SAAW,KAAO,MAAQwrB,IAAO,OAASA,EAAK,GACrL,GAAI,MAAM,QAAQ/B,CAAM,EACpB,OAAOuC,EAAM,wBAAwB23E,EAAO4xC,GAA2BU,EAAexsH,EAAQ6rH,CAAW,EAE7G,GAAI3xC,EAAM,aACN,OAAO33E,EAAM,oBAAoB23E,EAAM,aAAc4xC,GAA2BU,EAAexsH,EAAQ6rH,CAAW,CAEzH,EAAC,GAnDK,CAAC,EAAG,IAAI,CAoDnC,CAAa,CACb,CAAS,CACT,EACIb,EAAW,UAAU,wBAA0B,SAAU9wC,EAAO4xC,EAAyB9rH,EAAQ6rH,EAAa,CAC1G,IAAItpH,EAAQ,KACZ,OAAO,QAAQ,IAAIvC,EAAO,IAAI,SAAU4iB,EAAM,CAC1C,GAAIA,IAAS,KACT,OAAO,KAEX,GAAI,MAAM,QAAQA,CAAI,EAClB,OAAOrgB,EAAM,wBAAwB23E,EAAO4xC,EAAyBlpG,EAAMipG,CAAW,EAE1F,GAAI3xC,EAAM,aACN,OAAO33E,EAAM,oBAAoB23E,EAAM,aAAc4xC,EAAyBlpG,EAAMipG,CAAW,CAEtG,EAAC,CACV,EACIb,EAAW,UAAU,2BAA6B,SAAUU,EAAgB9wB,EAAa,CACrF,IAAI6xB,EAAkB,SAAU/jG,EAAM,CAAE,MAAO,CAAC,MAAM,QAAQA,CAAI,GAC9DgkG,EAA2B,KAAK,yBACpC,SAASC,EAAoBC,EAAgB,CACzC,GAAI,CAACF,EAAyB,IAAIE,CAAc,EAAG,CAC/C,IAAIC,EAAY,IAAI,IACpBH,EAAyB,IAAIE,EAAgBC,CAAS,EACtDr3B,GAAMo3B,EAAgB,CAClB,UAAW,SAAUlkG,EAAMvoB,EAAGxB,EAAImuH,EAAK/2B,EAAW,CAC1CrtE,EAAK,KAAK,QAAU,UACpBqtE,EAAU,QAAQ,SAAUrtE,EAAM,CAC1B+jG,EAAgB/jG,CAAI,GAAKkwE,GAAgBlwE,CAAI,GAC7CmkG,EAAU,IAAInkG,CAAI,CAEtD,CAA6B,CAER,EACD,eAAgB,SAAUqkG,EAAQ5sH,EAAGxB,EAAImuH,EAAK/2B,EAAW,CACrD,IAAI2E,EAAWE,EAAYmyB,EAAO,KAAK,KAAK,EAC5C,QAAUz4C,GAAUomB,EAAU,qBAAqB,OAAOqyB,EAAO,KAAK,KAAK,CAAC,EAAIz4C,GAAUomB,EAAU,EAAE,EACtG,IAAIsyB,EAAqBL,EAAoBjyB,CAAQ,EACjDsyB,EAAmB,KAAO,IAC1Bj3B,EAAU,QAAQ,SAAUrtE,EAAM,CAC1B+jG,EAAgB/jG,CAAI,GAAKkwE,GAAgBlwE,CAAI,GAC7CmkG,EAAU,IAAInkG,CAAI,CAEtD,CAA6B,EACDmkG,EAAU,IAAIE,CAAM,EACpBC,EAAmB,QAAQ,SAAU3qD,EAAW,CAC5CwqD,EAAU,IAAIxqD,CAAS,CACvD,CAA6B,EAER,CACrB,CAAiB,CACJ,CACD,OAAOqqD,EAAyB,IAAIE,CAAc,CACrD,CACD,OAAOD,EAAoBjB,CAAc,CACjD,EACWV,CACX,IClTIiC,GAA0B,IAAK3lB,GAAgB,QAAU,KAC7D,SAAS4lB,GAA2B7vG,EAAOhK,EAAY,CACnD,IAAIopG,EAAWp/F,EAAMhK,CAAU,EAC3B,OAAOopG,GAAa,aACpBp/F,EAAMhK,CAAU,EAAI,UAAY,CAC5B,OAAA45G,GAAwB,IAAI5vG,GAAQ4vG,GAAwB,IAAI5vG,CAAK,EAAI,GAAK,IAAI,EAC3Eo/F,EAAS,MAAM,KAAM,SAAS,CACjD,EAEA,CACA,SAAS0Q,GAAoBra,EAAM,CAC3BA,EAAK,gBACL,aAAaA,EAAK,aAAgB,EAClCA,EAAK,cAAmB,OAEhC,CACA,IAAIsa,GAAa,UAAY,CACzB,SAASA,EAAU5E,EAAc6E,EAAS,CAClCA,IAAY,SAAUA,EAAU7E,EAAa,gBAAe,GAChE,KAAK,QAAU6E,EACf,KAAK,UAAY,IAAI,IACrB,KAAK,SAAW,KAChB,KAAK,cAAgB,EACrB,KAAK,cAAgB,IAAI,IACzB,KAAK,QAAU,GACf,KAAK,MAAQ,GACb,KAAK,gBAAkB,KACvB,IAAIhwG,EAAQ,KAAK,MAAQmrG,EAAa,MACjCyE,GAAwB,IAAI5vG,CAAK,IAClC4vG,GAAwB,IAAI5vG,EAAO,CAAC,EACpC6vG,GAA2B7vG,EAAO,OAAO,EACzC6vG,GAA2B7vG,EAAO,QAAQ,EAC1C6vG,GAA2B7vG,EAAO,OAAO,EAEhD,CACD,OAAA+vG,EAAU,UAAU,KAAO,SAAU7yB,EAAO,CACxC,IAAI+tB,EAAgB/tB,EAAM,eAAiB6tB,GAAc,QACzD,OAAI,KAAK,WACL,KAAK,gBAAkBA,GAAc,SACrC,CAACjW,GAAM,KAAK,UAAW5X,EAAM,SAAS,IACtC+tB,EAAgBF,GAAc,cAE7BjW,GAAM5X,EAAM,UAAW,KAAK,SAAS,IACtC,KAAK,SAAW,QAEpB,OAAO,OAAO,KAAM,CAChB,SAAUA,EAAM,SAChB,UAAWA,EAAM,UACjB,aAAc,KACd,cAAe,KAAK,eAAiB,CAAE,EACvC,cAAe+tB,CAC3B,CAAS,EACG/tB,EAAM,iBACN,KAAK,mBAAmBA,EAAM,eAAe,EAE7CA,EAAM,gBACN,KAAK,cAAgBA,EAAM,eAExB,IACf,EACI6yB,EAAU,UAAU,MAAQ,UAAY,CACpCD,GAAoB,IAAI,EACxB,KAAK,MAAQ,EACrB,EACIC,EAAU,UAAU,QAAU,SAAUh0B,EAAW,CAC3CA,IAAc,SAAUA,EAAY,KAAK,WAC7C,IAAIrzF,EAAU,KAAK,eAAeqzF,CAAS,EAC3C,GAAI,KAAK,UAAY+Y,GAAMpsG,EAAS,KAAK,SAAS,OAAO,EACrD,OAAO,KAAK,SAAS,KAEzB,KAAK,YAAY,KAAK,UAAYqzF,CAAS,EAC3C,IAAIk0B,EAAK,KAAK,gBACd,GAAIA,GAAMA,EAAG,QAAQ,cAAgB,WACjC,MAAO,CAAE,SAAU,IAEvB,IAAIpF,EAAO,KAAK,MAAM,KAAKniH,CAAO,EAClC,YAAK,eAAemiH,EAAMniH,CAAO,EAC1BmiH,CACf,EACIkF,EAAU,UAAU,eAAiB,SAAUlF,EAAMniH,EAAS,CAC1D,KAAK,SAAWmiH,EAAO,CACnB,KAAMA,EACN,QAASniH,GAAW,KAAK,eAAgB,CAC5C,EAAG,MACZ,EACIqnH,EAAU,UAAU,eAAiB,SAAUh0B,EAAW,CACtD,IAAIt3F,EACJ,OAAIs3F,IAAc,SAAUA,EAAY,KAAK,WACtC,CACH,MAAO,KAAK,SACZ,UAAWA,EACX,kBAAmB,GACnB,WAAY,GACZ,iBAAkBt3F,EAAK,KAAK,mBAAqB,MAAQA,IAAO,OAAS,OAASA,EAAG,QAAQ,eACzG,CACA,EACIsrH,EAAU,UAAU,QAAU,SAAUlF,EAAM,CAC1C,IAAI3lH,EAAQ,KACRgrH,EAAU,KAAK,UAAY,KAAK,SAAS,KAC7C,KAAK,eAAerF,CAAI,EACpB,CAAC,KAAK,OACN,CAAC/V,GAAMob,GAAWA,EAAQ,OAAQrF,GAAQA,EAAK,MAAM,IACrD,KAAK,MAAQ,GACR,KAAK,gBACN,KAAK,cAAgB,WAAW,UAAY,CAAE,OAAO3lH,EAAM,OAAQ,GAAK,CAAC,GAGzF,EACI6qH,EAAU,UAAU,mBAAqB,SAAUE,EAAI,CACnD,IAAI/qH,EAAQ,KACR+qH,IAAO,KAAK,kBAEZ,KAAK,YACL,KAAK,UAAU,OAAO,KAAK,UAAU,EAEzC,KAAK,gBAAkBA,EACnBA,GACAA,EAAG,UAAe,KAClB,KAAK,UAAU,IAAI,KAAK,WAAa,UAAY,CAC7C,IAAIpF,EAAO3lH,EAAM,UACb2lH,EAAK,0BACLoF,EAAG,UAGHxD,GAAoBwD,CAAE,CAE1C,CAAa,GAGD,OAAO,KAAK,WAExB,EACIF,EAAU,UAAU,OAAS,UAAY,CACrC,IAAI7qH,EAAQ,KACZ4qH,GAAoB,IAAI,EACpB,KAAK,gBACL,KAAK,UAAU,QAAQ,SAAU73C,EAAU,CAAE,OAAOA,EAAS/yE,CAAK,CAAE,CAAE,EAE1E,KAAK,MAAQ,EACrB,EACI6qH,EAAU,UAAU,aAAe,UAAY,CAC3C,GAAI,CAAC,KAAK,OAAS,CAAC,KAAK,UAAU,KAC/B,MAAO,GAEX,GAAI/E,GAAyB,KAAK,aAAa,GAC3C,KAAK,gBAAiB,CACtB,IAAIS,EAAc,KAAK,gBAAgB,QAAQ,YAC/C,GAAIA,IAAgB,cAChBA,IAAgB,oBAChB,MAAO,EAEd,CACD,MAAO,EACf,EACIsE,EAAU,UAAU,KAAO,UAAY,CACnC,GAAI,CAAC,KAAK,QAAS,CACf,KAAK,QAAU,GACf,KAAK,MAAK,EACV,KAAK,OAAM,EACX,KAAK,OAASA,EAAU,UAAU,OAClC,KAAK,cAAc,QAAQ,SAAU/lB,EAAK,CAAE,OAAOA,EAAI,aAAc,CAAE,EACvE,IAAIimB,EAAK,KAAK,gBACVA,GACAA,EAAG,YAAW,CACrB,CACT,EACIF,EAAU,UAAU,OAAS,UAAY,GACzCA,EAAU,UAAU,YAAc,SAAUh0B,EAAW,CACnD,IAAI72F,EAAQ,KACR62F,IAAc,SAAUA,EAAY,KAAK,WAC7C,IAAIk0B,EAAK,KAAK,gBACd,GAAI,EAAAA,GAAMA,EAAG,QAAQ,cAAgB,YAGrC,KAAIE,EAAe5uH,EAASA,EAAS,GAAI,KAAK,eAAew6F,CAAS,CAAC,EAAG,CAAE,QAAS,KAAM,SAAU,SAAU8uB,EAAM,CAAE,OAAO3lH,EAAM,QAAQ2lH,CAAI,CAAI,EAAE,GAClJ,CAAC,KAAK,WACN,CAAC/V,GAAMqb,EAAc,KAAK,SAAS,KACnC,KAAK,OAAM,EACX,KAAK,OAAS,KAAK,MAAM,MAAM,KAAK,UAAYA,CAAY,GAExE,EACIJ,EAAU,UAAU,eAAiB,UAAY,CAC7C,KAAK,UAAY,MACzB,EACIA,EAAU,UAAU,YAAc,SAAUptH,EAAQo5F,EAAW,CAC3D,IAAIq0B,EAAY,KAAK,UACrB,MAAO,EAAEA,GACLA,EAAU,UAAYR,GAAwB,IAAI,KAAK,KAAK,GAC5D9a,GAAM/Y,EAAWq0B,EAAU,SAAS,GACpCtb,GAAMnyG,EAAO,KAAMytH,EAAU,OAAO,IAAI,EACpD,EACIL,EAAU,UAAU,WAAa,SAAUptH,EAAQqa,EAAUtU,EAAS2nH,EAAoB,CACtF,IAAInrH,EAAQ,KACR2+F,EAAS,IAAIC,GACb6H,EAAgB7K,GAAgBn+F,EAAO,MAAM,EAC3CA,EAAO,OAAO,MAAM,CAAC,EACrB,GAEN,GADA,KAAK,MAAK,EACN,gBAAiBA,GAAUm+F,GAAgBn+F,EAAO,WAAW,EAAG,CAChE,IAAI4oG,EAAaF,GAAqB,KAAK,QAAO,EAAG,OAAQ1oG,CAAM,EACnEA,EAAO,KAAO4oG,CACjB,SACQ,YAAa5oG,GAAUA,EAAO,QAAS,CAC5C,IAAIkoH,EAAO,KAAK,UAChBloH,EAAO,KAAOkhG,EAAO,MAAMgnB,EAAK,OAAQloH,EAAO,IAAI,CACtD,CACD,KAAK,cAAgBgpG,EACjBjjG,EAAQ,cAAgB,WACxB,KAAK,eAAe,CAAE,OAAQ/F,EAAO,KAAM,SAAU,EAAI,EAAI,KAAK,eAAe+F,EAAQ,SAAS,CAAC,EAE9F2nH,IAAuB,IACxBC,GAAkB3tH,EAAQ+F,EAAQ,WAAW,EAC7C,KAAK,MAAM,mBAAmB,SAAUsX,EAAO,CAC3C,GAAI9a,EAAM,YAAYvC,EAAQ+F,EAAQ,SAAS,EAC3CsX,EAAM,WAAW,CACb,MAAOhD,EACP,KAAMra,EAAO,KACb,UAAW+F,EAAQ,UACnB,UAAW2nH,IAAuB,CAC9D,CAAyB,EACDnrH,EAAM,UAAY,CACd,OAAQvC,EACR,UAAW+F,EAAQ,UACnB,QAASknH,GAAwB,IAAI1qH,EAAM,KAAK,CAC5E,UAG4BA,EAAM,UACNA,EAAM,SAAS,KAAK,SAAU,CAC9BvC,EAAO,KAAOuC,EAAM,SAAS,KAAK,OAClC,MACH,CAEL,IAAIqrH,EAAcrrH,EAAM,eAAewD,EAAQ,SAAS,EACpDmiH,EAAO7qG,EAAM,KAAKuwG,CAAW,EAC5BrrH,EAAM,SACPA,EAAM,YAAYwD,EAAQ,SAAS,EAEvCxD,EAAM,eAAe2lH,EAAM0F,CAAW,EAClC1F,EAAK,WACLloH,EAAO,KAAOkoH,EAAK,OAE3C,CAAiB,EAGD,KAAK,UAAY,OAGjC,EACIkF,EAAU,UAAU,UAAY,UAAY,CACxC,YAAK,aAAe,KACb,KAAK,cAAgBhF,GAAc,KAClD,EACIgF,EAAU,UAAU,UAAY,SAAU1sH,EAAO,CAC7C,YAAK,cAAgB0nH,GAAc,MACnC,KAAK,UAAY,OACjB,KAAK,MAAK,EACN1nH,EAAM,gBACN,KAAK,cAAgBA,EAAM,eAE3BA,EAAM,eACN,KAAK,aAAeA,EAAM,cAEvBA,CACf,EACW0sH,CACX,EAAC,EAEM,SAASO,GAAkB3tH,EAAQ6tH,EAAa,CAC/CA,IAAgB,SAAUA,EAAc,QAC5C,IAAIC,EAAeD,IAAgB,UAC/BA,IAAgB,MAChBE,EAAkB,CAACjlB,GAAsB9oG,CAAM,EACnD,MAAI,CAAC+tH,GAAmBD,GAAgB9tH,EAAO,OAC3C+tH,EAAkB,IAEfA,CACX,CC/QA,IAAIjtB,GAAiB,OAAO,UAAU,eAClCktB,GAAgB,UAAY,CAC5B,SAASA,EAAalsH,EAAI,CACtB,IAAIub,EAAQvb,EAAG,MAAO4oG,EAAO5oG,EAAG,KAAM6sG,EAAiB7sG,EAAG,eAAgBC,EAAKD,EAAG,mBAAoBmsH,EAAqBlsH,IAAO,OAAS,GAAQA,EAAImsH,EAAcpsH,EAAG,YAAaE,EAAKF,EAAG,QAASqsH,EAAUnsH,IAAO,OAAS,GAAQA,EAAIC,EAAKH,EAAG,gBAAiBssH,EAAkBnsH,IAAO,OAAS,CAAE,EAAGA,EAAIosH,EAAavsH,EAAG,WAAYwsH,EAAyBxsH,EAAG,uBACxW,KAAK,gBAAkB,GACvB,KAAK,QAAU,IAAI,IACnB,KAAK,eAAiB,IAAI,IAC1B,KAAK,eAAiB,IAAKwlG,GAAgB,QAAU,KACrD,KAAK,eAAiB,EACtB,KAAK,iBAAmB,EACxB,KAAK,kBAAoB,EACzB,KAAK,wBAA0B,IAAI,IACnC,KAAK,MAAQjqF,EACb,KAAK,KAAOqtF,EACZ,KAAK,eAAiBiE,GAAkB,OAAO,OAAO,IAAI,EAC1D,KAAK,mBAAqBsf,EAC1B,KAAK,gBAAkBG,EACvB,KAAK,WAAaC,GAAc,IAAIrD,GAAW,CAAE,MAAO3tG,CAAK,CAAE,EAC/D,KAAK,QAAU8wG,EACf,KAAK,uBAAyB,CAAC,CAACG,GAC3B,KAAK,YAAcJ,KACpB,KAAK,cAAgB,OAAO,OAAO,IAAI,EAE9C,CACD,OAAAF,EAAa,UAAU,KAAO,UAAY,CACtC,IAAIzrH,EAAQ,KACZ,KAAK,QAAQ,QAAQ,SAAUgsH,EAAOlB,EAAS,CAC3C9qH,EAAM,qBAAqB8qH,CAAO,CAC9C,CAAS,EACD,KAAK,qBAAqB,QAAU,IAAInjC,GAAe,gDAAgD,EAAI,IAAIA,GAAe,EAAE,CAAC,CACzI,EACI8jC,EAAa,UAAU,qBAAuB,SAAUttH,EAAO,CAC3D,KAAK,eAAe,QAAQ,SAAUsN,EAAQ,CAAE,OAAOA,EAAOtN,CAAK,CAAE,CAAE,EACvE,KAAK,eAAe,OAC5B,EACIstH,EAAa,UAAU,OAAS,SAAUlsH,EAAI,CAC1C,IAAIC,EAAIC,EACJwsH,EAAW1sH,EAAG,SAAUs3F,EAAYt3F,EAAG,UAAW2sH,EAAqB3sH,EAAG,mBAAoB4sH,EAAgB5sH,EAAG,cAAeG,EAAKH,EAAG,eAAgB6sH,EAAiB1sH,IAAO,OAAS,CAAE,EAAGA,EAAIC,EAAKJ,EAAG,oBAAqB8sH,EAAsB1sH,IAAO,OAAS,GAAQA,EAAI2sH,EAAoB/sH,EAAG,OAAQgtH,EAAiBhtH,EAAG,eAAgBK,EAAKL,EAAG,YAAagnH,EAAc3mH,IAAO,SAAWJ,EAAK,KAAK,eAAe,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAgB,eAAiBI,EAAIwzB,EAAK7zB,EAAG,YAAa+rH,EAAcl4F,IAAO,SAAW3zB,EAAK,KAAK,eAAe,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAgB,OAAS2zB,EAAIo5F,EAAiBjtH,EAAG,eAAgBoQ,EAAUpQ,EAAG,QACvsB,OAAOzC,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI2vH,EAAYp5F,EAAIvb,EAAUw/E,EAAkBo1B,EAAoBC,EACpE,OAAOjvH,GAAY,KAAM,SAAUm0D,EAAI,CACnC,OAAQA,EAAG,MAAK,CACZ,IAAK,GASD,OARA,QAAUkgB,GAAUk6C,EAAU,6FAA6F,EAAIl6C,GAAUk6C,EAAU,EAAE,EACrJ,QAAUl6C,GAAUw0C,IAAgB,gBAChCA,IAAgB,WAAY,4MAA4M,EAAIx0C,GAAUw0C,IAAgB,gBACtQA,IAAgB,WAAY,EAAE,EAClCkG,EAAa,KAAK,qBAClBp5F,EAAK,KAAK,UAAU44F,CAAQ,EAAGn0G,EAAWub,EAAG,SAAUikE,EAAmBjkE,EAAG,iBAC7E44F,EAAW,KAAK,MAAM,iBAAiBn0G,CAAQ,EAC/C++E,EAAY,KAAK,aAAao1B,EAAUp1B,CAAS,EAC5CS,EACE,CAAC,EAAG,KAAK,WAAW,qBAAqB20B,EAAUp1B,EAAWlnF,CAAO,CAAC,EAD/C,CAAC,EAAG,CAAC,EAEvC,IAAK,GACDknF,EAAahlC,EAAG,KAAI,EACpBA,EAAG,MAAQ,EACf,IAAK,GACD,OAAA66D,EAAqB,KAAK,gBACrB,KAAK,cAAcD,CAAU,EAAI,CAC9B,SAAUR,EACV,UAAWp1B,EACX,QAAS,GACT,MAAO,IACvC,GAC4Bq1B,GACA,KAAK,uBAAuBA,EAAoB,CAC5C,WAAYO,EACZ,SAAUR,EACV,UAAWp1B,EACX,YAAa0vB,EACb,YAAa+E,EACb,QAAS37G,EACT,cAAew8G,EACf,OAAQG,EACR,eAAgBE,CAChD,CAA6B,EAEL,KAAK,iBAAgB,EACrBG,EAAO,KACA,CAAC,EAAG,IAAI,QAAQ,SAAUvvH,EAASC,EAAQ,CAC1C,OAAO4mG,GAAS0oB,EAAK,sBAAsBV,EAAU5vH,EAASA,EAAS,GAAIsT,CAAO,EAAG,CAAE,mBAAoBu8G,EAAoB,EAAGr1B,EAAW,EAAK,EAAG,SAAUp5F,EAAQ,CACnK,GAAI8oG,GAAsB9oG,CAAM,GAAK6tH,IAAgB,OACjD,MAAM,IAAI7gB,GAAY,CAClB,cAAejE,GAA2B/oG,CAAM,CAC5F,CAAyC,EAEDivH,IACAA,EAAmB,QAAU,GAC7BA,EAAmB,MAAQ,MAE/B,IAAIE,EAAcvwH,EAAS,CAAE,EAAEoB,CAAM,EACrC,OAAI,OAAO2uH,GAAmB,aAC1BA,EAAiBA,EAAeQ,CAAW,GAE3CtB,IAAgB,UAChB/kB,GAAsBqmB,CAAW,GACjC,OAAOA,EAAY,OAEhBD,EAAK,mBAAmB,CAC3B,WAAYF,EACZ,OAAQG,EACR,SAAUX,EACV,UAAWp1B,EACX,YAAa0vB,EACb,YAAa+E,EACb,QAAS37G,EACT,OAAQ28G,EACR,cAAeH,EACf,oBAAqBE,EACrB,eAAgBD,EAChB,iBAAkBF,EAAqBO,EAAa,OACpD,eAAgBF,EAChB,eAAgBC,CACxD,CAAqC,CACJ,GAAE,UAAU,CACT,KAAM,SAAUI,EAAa,CACzBD,EAAK,iBAAgB,GACjB,EAAE,YAAaC,IAAgBA,EAAY,UAAY,KACvDxvH,EAAQwvH,CAAW,CAE1B,EACD,MAAO,SAAUnxH,EAAK,CACdixH,IACAA,EAAmB,QAAU,GAC7BA,EAAmB,MAAQjxH,GAE3BywH,GACAS,EAAK,MAAM,iBAAiBF,CAAU,EAE1CE,EAAK,iBAAgB,EACrBtvH,EAAO5B,aAAegvG,GAAchvG,EAAM,IAAIgvG,GAAY,CACtD,aAAchvG,CACjB,EAAC,CACL,CACrC,CAAiC,CACJ,EAAC,CACb,CACjB,CAAa,CACb,CAAS,CACT,EACIgwH,EAAa,UAAU,mBAAqB,SAAUQ,EAAUnxG,EAAO,CACnE,IAAI9a,EAAQ,KACR8a,IAAU,SAAUA,EAAQ,KAAK,OACrC,IAAIrd,EAASwuH,EAAS,OAClBY,EAAc,GACdC,EAAYb,EAAS,cAAgB,WACzC,GAAI,CAACa,GAAa1B,GAAkB3tH,EAAQwuH,EAAS,WAAW,EAAG,CAS/D,GARKlmB,GAAkCtoG,CAAM,GACzCovH,EAAY,KAAK,CACb,OAAQpvH,EAAO,KACf,OAAQ,gBACR,MAAOwuH,EAAS,SAChB,UAAWA,EAAS,SACxC,CAAiB,EAEDlmB,GAAkCtoG,CAAM,GAAKm+F,GAAgBn+F,EAAO,WAAW,EAAG,CAClF,IAAIkoH,EAAO7qG,EAAM,KAAK,CAClB,GAAI,gBACJ,MAAO,KAAK,UAAUmxG,EAAS,QAAQ,EAAE,QACzC,UAAWA,EAAS,UACpB,WAAY,GACZ,kBAAmB,EACvC,CAAiB,EACG5lB,EAAa,OACbsf,EAAK,SACLtf,EAAaF,GAAqBwf,EAAK,OAAQloH,CAAM,GAErD,OAAO4oG,EAAe,MACtB5oG,EAAO,KAAO4oG,EACdwmB,EAAY,KAAK,CACb,OAAQxmB,EACR,OAAQ,gBACR,MAAO4lB,EAAS,SAChB,UAAWA,EAAS,SAC5C,CAAqB,EAER,CACD,IAAIc,EAAkBd,EAAS,cAC3Bc,GACA,KAAK,QAAQ,QAAQ,SAAUxtH,EAAIurH,EAAS,CACxC,IAAIkC,EAAkBztH,EAAG,gBACrB0tH,EAAYD,GAAmBA,EAAgB,UACnD,GAAI,GAACC,GAAa,CAAC1uB,GAAe,KAAKwuB,EAAiBE,CAAS,GAGjE,KAAIC,EAAUH,EAAgBE,CAAS,EACnCztH,EAAKQ,EAAM,QAAQ,IAAI8qH,CAAO,EAAGhzG,EAAWtY,EAAG,SAAUq3F,EAAYr3F,EAAG,UACxEC,EAAKqb,EAAM,KAAK,CAChB,MAAOhD,EACP,UAAW++E,EACX,kBAAmB,GACnB,WAAY,EACpC,CAAqB,EAAGs2B,EAAqB1tH,EAAG,OAAQ2kG,EAAW3kG,EAAG,SAClD,GAAI2kG,GAAY+oB,EAAoB,CAChC,IAAIC,EAAkBF,EAAQC,EAAoB,CAC9C,eAAgB1vH,EAChB,UAAWqa,GAAYijF,GAAiBjjF,CAAQ,GAAK,OACrD,eAAgB++E,CAC5C,CAAyB,EACGu2B,GACAP,EAAY,KAAK,CACb,OAAQO,EACR,OAAQ,aACR,MAAOt1G,EACP,UAAW++E,CAC3C,CAA6B,CAER,EACrB,CAAiB,CAER,CACD,GAAIg2B,EAAY,OAAS,GACrBZ,EAAS,gBACTA,EAAS,QACTA,EAAS,gBACTA,EAAS,iBAAkB,CAC3B,IAAIoB,EAAY,GAkDhB,GAjDA,KAAK,eAAe,CAChB,YAAa,SAAUvyG,EAAO,CACrBgyG,GACDD,EAAY,QAAQ,SAAUS,EAAO,CAAE,OAAOxyG,EAAM,MAAMwyG,CAAK,CAAE,CAAE,EAEvE,IAAIrsF,EAASgrF,EAAS,OAClBsB,EAAgB,CAACtnB,GAAuBxoG,CAAM,GAC7CsoG,GAAkCtoG,CAAM,GAAK,CAACA,EAAO,QAC1D,GAAIwjC,EAAQ,CACR,GAAI,CAAC6rF,EAAW,CACZ,IAAInH,EAAO7qG,EAAM,KAAK,CAClB,GAAI,gBACJ,MAAO9a,EAAM,UAAUisH,EAAS,QAAQ,EAAE,QAC1C,UAAWA,EAAS,UACpB,WAAY,GACZ,kBAAmB,EACnD,CAA6B,EACGtG,EAAK,WACLloH,EAASpB,EAASA,EAAS,GAAIoB,CAAM,EAAG,CAAE,KAAMkoH,EAAK,MAAM,CAAE,EACzD,gBAAiBloH,GACjB,OAAOA,EAAO,YAEd,YAAaA,GACb,OAAOA,EAAO,QAGzB,CACG8vH,GACAtsF,EAAOnmB,EAAOrd,EAAQ,CAClB,QAASwuH,EAAS,QAClB,UAAWA,EAAS,SACpD,CAA6B,CAER,CACG,CAACa,GAAa,CAACb,EAAS,gBAAkBsB,GAC1CzyG,EAAM,OAAO,CACT,GAAI,gBACJ,OAAQ,SAAU3d,EAAOoC,EAAI,CACzB,IAAIs6F,EAAYt6F,EAAG,UAAWm3G,EAASn3G,EAAG,OAC1C,OAAOs6F,IAAc,aAAe18F,EAAQu5G,CAC/C,CAC7B,CAAyB,CAER,EACD,QAASuV,EAAS,eAClB,WAAY,GACZ,iBAAkBA,EAAS,iBAC3B,eAAgBA,EAAS,gBAAkB,IAC3D,CAAa,EAAE,QAAQ,SAAUxuH,EAAQ,CAAE,OAAO4vH,EAAU,KAAK5vH,CAAM,CAAE,CAAE,EAC3DwuH,EAAS,qBAAuBA,EAAS,eACzC,OAAO,QAAQ,IAAIoB,CAAS,EAAE,KAAK,UAAY,CAAE,OAAO5vH,CAAO,CAAE,CAExE,CACD,OAAO,QAAQ,QAAQA,CAAM,CACrC,EACIguH,EAAa,UAAU,uBAAyB,SAAUS,EAAoBD,EAAU,CACpF,IAAIjsH,EAAQ,KACRyT,EAAO,OAAOy4G,GAAuB,WACnCA,EAAmBD,EAAS,SAAS,EACrCC,EACN,OAAO,KAAK,MAAM,4BAA4B,SAAUpxG,EAAO,CAC3D,GAAI,CACA9a,EAAM,mBAAmB3D,EAASA,EAAS,GAAI4vH,CAAQ,EAAG,CAAE,OAAQ,CAAE,KAAMx4G,CAAM,EAAE,EAAGqH,CAAK,CAC/F,OACM3c,EAAO,CACV,SAAW4zE,GAAU,MAAM5zE,CAAK,CACnC,CACb,EAAW8tH,EAAS,UAAU,CAC9B,EACIR,EAAa,UAAU,WAAa,SAAUX,EAAStnH,EAASuiH,EAAe,CAC3E,OAAO,KAAK,qBAAqB+E,EAAStnH,EAASuiH,CAAa,EAAE,OAC1E,EACI0F,EAAa,UAAU,cAAgB,UAAY,CAC/C,IAAIxV,EAAQ,OAAO,OAAO,IAAI,EAC9B,YAAK,QAAQ,QAAQ,SAAU1F,EAAMua,EAAS,CAC1C7U,EAAM6U,CAAO,EAAI,CACb,UAAWva,EAAK,UAChB,cAAeA,EAAK,cACpB,aAAcA,EAAK,aACnB,cAAeA,EAAK,aACpC,CACA,CAAS,EACM0F,CACf,EACIwV,EAAa,UAAU,YAAc,SAAUX,EAAS,CACpD,IAAI5E,EAAY,KAAK,QAAQ,IAAI4E,CAAO,EACpC5E,IACAA,EAAU,aAAe,OACzBA,EAAU,cAAgB,GAEtC,EACIuF,EAAa,UAAU,UAAY,SAAU3zG,EAAU,CACnD,IAAI01G,EAAiB,KAAK,eAC1B,GAAI,CAACA,EAAe,IAAI11G,CAAQ,EAAG,CAC/B,IAAI21G,EAAc,KAAK,MAAM,kBAAkB31G,CAAQ,EACnD41G,EAAexvB,GAAsCuvB,CAAW,EAChEE,EAAc,KAAK,WAAW,YAAYF,CAAW,EACrDG,EAAcF,GAAgB,KAAK,WAAW,YAAYA,CAAY,EACtEG,EAAe,CACf,SAAUJ,EACV,iBAAkBn2B,GAAiBm2B,CAAW,EAC9C,mBAAoB,KAAK,WAAW,qBAAqBA,CAAW,EACpE,YAAaE,EACb,YAAaC,EACb,YAAapyB,GAAiBV,GAAuB2yB,CAAW,CAAC,EACjE,QAASpxH,EAASA,EAAS,GAAIoxH,CAAW,EAAG,CAAE,YAAaA,EAAY,YAAY,IAAI,SAAU9xB,EAAK,CAC/F,OAAIA,EAAI,OAAS,uBACbA,EAAI,YAAc,QACXt/F,EAASA,EAAS,GAAIs/F,CAAG,EAAG,CAAE,UAAW,OAAO,CAAE,EAEtDA,CACV,GAAG,CACxB,EACgBmyB,EAAM,SAAUxrH,EAAK,CACjBA,GAAO,CAACkrH,EAAe,IAAIlrH,CAAG,GAC9BkrH,EAAe,IAAIlrH,EAAKurH,CAAY,CAExD,EACYC,EAAIh2G,CAAQ,EACZg2G,EAAIL,CAAW,EACfK,EAAIH,CAAW,EACfG,EAAIF,CAAW,CAClB,CACD,OAAOJ,EAAe,IAAI11G,CAAQ,CAC1C,EACI2zG,EAAa,UAAU,aAAe,SAAU3zG,EAAU++E,EAAW,CACjE,OAAOx6F,EAASA,EAAS,GAAI,KAAK,UAAUyb,CAAQ,EAAE,WAAW,EAAG++E,CAAS,CACrF,EACI40B,EAAa,UAAU,WAAa,SAAUjoH,EAAS,CACnDA,EAAUnH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,UAAW,KAAK,aAAaA,EAAQ,MAAOA,EAAQ,SAAS,CAAG,GACxG,OAAOA,EAAQ,4BAAgC,MAC/CA,EAAQ,4BAA8B,IAE1C,IAAI0iH,EAAY,IAAI2E,GAAU,IAAI,EAC9BpoB,EAAa,IAAIujB,GAAgB,CACjC,aAAc,KACd,UAAWE,EACX,QAAS1iH,CACrB,CAAS,EACD,YAAK,QAAQ,IAAIi/F,EAAW,QAASyjB,CAAS,EAC9CA,EAAU,KAAK,CACX,SAAUzjB,EAAW,MACrB,gBAAiBA,EACjB,UAAWA,EAAW,SAClC,CAAS,EACMA,CACf,EACIgpB,EAAa,UAAU,MAAQ,SAAUjoH,EAASsnH,EAAS,CACvD,IAAI9qH,EAAQ,KACZ,OAAI8qH,IAAY,SAAUA,EAAU,KAAK,gBAAe,GACxD,QAAU/4C,GAAUvuE,EAAQ,MAAO,uFACT,EAAIuuE,GAAUvuE,EAAQ,MAAO,EAAE,EACzD,QAAUuuE,GAAUvuE,EAAQ,MAAM,OAAS,WAAY,gDAAgD,EAAIuuE,GAAUvuE,EAAQ,MAAM,OAAS,WAAY,EAAE,EAC1J,QAAUuuE,GAAU,CAACvuE,EAAQ,kBAAmB,wDAAwD,EAAIuuE,GAAU,CAACvuE,EAAQ,kBAAmB,EAAE,EACpJ,QAAUuuE,GAAU,CAACvuE,EAAQ,aAAc,mDAAmD,EAAIuuE,GAAU,CAACvuE,EAAQ,aAAc,EAAE,EAC9H,KAAK,WAAWsnH,EAAStnH,CAAO,EAAE,QAAQ,UAAY,CAAE,OAAOxD,EAAM,UAAU8qH,CAAO,CAAI,EACzG,EACIW,EAAa,UAAU,gBAAkB,UAAY,CACjD,OAAO,OAAO,KAAK,gBAAgB,CAC3C,EACIA,EAAa,UAAU,kBAAoB,UAAY,CACnD,OAAO,KAAK,kBACpB,EACIA,EAAa,UAAU,mBAAqB,UAAY,CACpD,OAAO,OAAO,KAAK,mBAAmB,CAC9C,EACIA,EAAa,UAAU,iBAAmB,SAAUX,EAAS,CACzD,KAAK,4BAA4BA,CAAO,EACxC,KAAK,iBAAgB,CAC7B,EACIW,EAAa,UAAU,4BAA8B,SAAUX,EAAS,CACpE,IAAI5E,EAAY,KAAK,QAAQ,IAAI4E,CAAO,EACpC5E,GACAA,EAAU,KAAI,CAC1B,EACIuF,EAAa,UAAU,WAAa,SAAUjoH,EAAS,CACnD,OAAIA,IAAY,SAAUA,EAAU,CAChC,eAAgB,EAC5B,GACQ,KAAK,qBAAqB,QAAU,IAAImkF,GAAe,qEAAqE,EAAI,IAAIA,GAAe,EAAE,CAAC,EACtJ,KAAK,QAAQ,QAAQ,SAAUu+B,EAAW,CAClCA,EAAU,gBACVA,EAAU,cAAgBL,GAAc,QAGxCK,EAAU,KAAI,CAE9B,CAAS,EACG,KAAK,gBACL,KAAK,cAAgB,OAAO,OAAO,IAAI,GAEpC,KAAK,MAAM,MAAM1iH,CAAO,CACvC,EACIioH,EAAa,UAAU,qBAAuB,SAAUsC,EAAS,CAC7D,IAAI/tH,EAAQ,KACR+tH,IAAY,SAAUA,EAAU,UACpC,IAAIC,EAAU,IAAI,IACdC,EAAoB,IAAI,IACxBC,EAAqB,IAAI,IAC7B,OAAI,MAAM,QAAQH,CAAO,GACrBA,EAAQ,QAAQ,SAAUlxH,EAAM,CACxB,OAAOA,GAAS,SAChBoxH,EAAkB,IAAIpxH,EAAM,EAAK,EAE5B47F,GAAe57F,CAAI,EACxBoxH,EAAkB,IAAIjuH,EAAM,UAAUnD,CAAI,EAAE,SAAU,EAAK,EAEtDy7F,GAAgBz7F,CAAI,GAAKA,EAAK,OACnCqxH,EAAmB,IAAIrxH,CAAI,CAE/C,CAAa,EAEL,KAAK,QAAQ,QAAQ,SAAU0C,EAAIurH,EAAS,CACxC,IAAIC,EAAKxrH,EAAG,gBAAiBuY,EAAWvY,EAAG,SAC3C,GAAIwrH,EAAI,CACJ,GAAIgD,IAAY,MAAO,CACnBC,EAAQ,IAAIlD,EAASC,CAAE,EACvB,MACH,CACD,IAAIkC,EAAYlC,EAAG,UAAWxE,EAAcwE,EAAG,QAAQ,YACvD,GAAIxE,IAAgB,WACfwH,IAAY,UAAY,CAAChD,EAAG,aAAc,EAC3C,QAEAgD,IAAY,UACXd,GAAagB,EAAkB,IAAIhB,CAAS,GAC5Cn1G,GAAYm2G,EAAkB,IAAIn2G,CAAQ,KAC3Ck2G,EAAQ,IAAIlD,EAASC,CAAE,EACnBkC,GACAgB,EAAkB,IAAIhB,EAAW,EAAI,EACrCn1G,GACAm2G,EAAkB,IAAIn2G,EAAU,EAAI,EAE/C,CACb,CAAS,EACGo2G,EAAmB,MACnBA,EAAmB,QAAQ,SAAU1qH,EAAS,CAC1C,IAAIsnH,EAAUjkB,GAAa,oBAAoB,EAC3Cqf,EAAYlmH,EAAM,SAAS8qH,CAAO,EAAE,KAAK,CACzC,SAAUtnH,EAAQ,MAClB,UAAWA,EAAQ,SACvC,CAAiB,EACGunH,EAAK,IAAI/E,GAAgB,CACzB,aAAchmH,EACd,UAAWkmH,EACX,QAAS7pH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,YAAa,eAAgB,CAC5F,CAAiB,EACDuuE,GAAUg5C,EAAG,UAAYD,CAAO,EAChC5E,EAAU,mBAAmB6E,CAAE,EAC/BiD,EAAQ,IAAIlD,EAASC,CAAE,CACvC,CAAa,EAED,SAAWkD,EAAkB,MAC7BA,EAAkB,QAAQ,SAAUE,EAAUC,EAAW,CAChDD,GACD,SAAWp8C,GAAU,KAAK,iBAAiB,OAAO,OAAOq8C,GAAc,SAAW,SAAW,EAAE,EAAE,OAAO,KAAK,UAAUA,EAAW,KAAM,CAAC,EAAG,oDAAoD,CAAC,CAErN,CAAa,EAEEJ,CACf,EACIvC,EAAa,UAAU,yBAA2B,SAAU4C,EAAgB,CACxE,IAAIruH,EAAQ,KACRquH,IAAmB,SAAUA,EAAiB,IAClD,IAAIC,EAA0B,GAC9B,YAAK,qBAAqBD,EAAiB,MAAQ,QAAQ,EAAE,QAAQ,SAAUrB,EAAiBlC,EAAS,CACrG,IAAIvE,EAAcyG,EAAgB,QAAQ,YAC1CA,EAAgB,iBAAgB,GAC5BqB,GACC9H,IAAgB,WACbA,IAAgB,eACpB+H,EAAwB,KAAKtB,EAAgB,QAAS,GAE1DhtH,EAAM,SAAS8qH,CAAO,EAAE,QAAQ,IAAI,CAChD,CAAS,EACD,KAAK,iBAAgB,EACd,QAAQ,IAAIwD,CAAuB,CAClD,EACI7C,EAAa,UAAU,mBAAqB,SAAUuB,EAAiB,CACnE,KAAK,SAASA,EAAgB,OAAO,EAAE,mBAAmBA,CAAe,CACjF,EACIvB,EAAa,UAAU,yBAA2B,SAAUlsH,EAAI,CAC5D,IAAIS,EAAQ,KACRg4F,EAAQz4F,EAAG,MAAOgnH,EAAchnH,EAAG,YAAa+rH,EAAc/rH,EAAG,YAAas3F,EAAYt3F,EAAG,UAAWC,EAAKD,EAAG,QAASoQ,EAAUnQ,IAAO,OAAS,CAAE,EAAGA,EAC5Jw4F,EAAQ,KAAK,UAAUA,CAAK,EAAE,SAC9BnB,EAAY,KAAK,aAAamB,EAAOnB,CAAS,EAC9C,IAAI03B,EAAiB,SAAU13B,EAAW,CACtC,OAAO72F,EAAM,sBAAsBg4F,EAAOroF,EAASknF,CAAS,EAAE,IAAI,SAAUp5F,EAAQ,CAC5E8oH,IAAgB,aACZ6E,GAAkB3tH,EAAQ6tH,CAAW,GACrCtrH,EAAM,MAAM,MAAM,CACd,MAAOg4F,EACP,OAAQv6F,EAAO,KACf,OAAQ,oBACR,UAAWo5F,CACvC,CAAyB,EAEL72F,EAAM,iBAAgB,GAE1B,IAAIwuH,EAAYjoB,GAAsB9oG,CAAM,EACxCgxH,EAAoBnkB,GAA+B7sG,CAAM,EAC7D,GAAI+wH,GAAaC,EAAmB,CAChC,IAAI5yC,EAAS,GACb,MAAI2yC,IACA3yC,EAAO,cAAgBp+E,EAAO,QAE9BgxH,IACA5yC,EAAO,eAAiBp+E,EAAO,WAAW4sG,EAAsB,GAE9D,IAAII,GAAY5uB,CAAM,CAC/B,CACD,OAAOp+E,CACvB,CAAa,CACb,EACQ,GAAI,KAAK,UAAUu6F,CAAK,EAAE,iBAAkB,CACxC,IAAI02B,EAAsB,KAAK,WAAW,qBAAqB12B,EAAOnB,EAAWlnF,CAAO,EAAE,KAAK4+G,CAAc,EAC7G,OAAO,IAAIhuB,GAAW,SAAUY,EAAU,CACtC,IAAI2D,EAAM,KACV,OAAA4pB,EAAoB,KAAK,SAAUjsB,EAAY,CAAE,OAAOqC,EAAMrC,EAAW,UAAUtB,CAAQ,CAAE,EAAIA,EAAS,KAAK,EACxG,UAAY,CAAE,OAAO2D,GAAOA,EAAI,YAAW,CAAG,CACrE,CAAa,CACJ,CACD,OAAOypB,EAAe13B,CAAS,CACvC,EACI40B,EAAa,UAAU,UAAY,SAAUX,EAAS,CAClD,KAAK,qBAAqBA,CAAO,EACjC,KAAK,iBAAgB,CAC7B,EACIW,EAAa,UAAU,qBAAuB,SAAUX,EAAS,CAC7D,KAAK,4BAA4BA,CAAO,EACxC,KAAK,YAAYA,CAAO,CAChC,EACIW,EAAa,UAAU,YAAc,SAAUX,EAAS,CACpD,KAAK,eAAe,OAAOA,CAAO,EAC9B,KAAK,QAAQ,IAAIA,CAAO,IACxB,KAAK,SAASA,CAAO,EAAE,KAAI,EAC3B,KAAK,QAAQ,OAAOA,CAAO,EAEvC,EACIW,EAAa,UAAU,iBAAmB,UAAY,CAC9C,KAAK,aACL,KAAK,YAAW,EACpB,KAAK,QAAQ,QAAQ,SAAUlb,EAAM,CAAE,OAAOA,EAAK,QAAS,CAAE,CACtE,EACIkb,EAAa,UAAU,cAAgB,UAAY,CAC/C,OAAO,KAAK,UACpB,EACIA,EAAa,UAAU,sBAAwB,SAAUzzB,EAAOroF,EAASknF,EAAW83B,EAAe,CAC/F,IAAI3uH,EAAQ,KACRT,EACAovH,IAAkB,SAAUA,GAAiBpvH,EAAKoQ,GAAY,KAA6B,OAASA,EAAQ,sBAAwB,MAAQpQ,IAAO,OAASA,EAAK,KAAK,oBAC1K,IAAIkjG,EACAmrB,EAAc,KAAK,UAAU51B,CAAK,EAAE,YACxC,GAAI41B,EAAa,CACb,IAAIpuH,EAAK,KAAMovH,EAA4BpvH,EAAG,wBAAyB2oG,EAAO3oG,EAAG,KAC7E4xF,EAAY,CACZ,MAAOw8B,EACP,UAAW/2B,EACX,cAAekE,GAAiB6yB,CAAW,GAAK,OAChD,QAAS,KAAK,eAAevxH,EAASA,EAAS,GAAIsT,CAAO,EAAG,CAAE,WAAY,CAACg/G,CAAe,EAAC,CAC5G,EAEY,GADAh/G,EAAUyhF,EAAU,QAChBu9B,EAAe,CACf,IAAIE,EAAgBD,EAA0B,IAAIhB,CAAW,GAAK,IAAI,IACtEgB,EAA0B,IAAIhB,EAAaiB,CAAa,EACxD,IAAIC,EAAYtU,GAAmB3jB,CAAS,EAE5C,GADA4L,EAAaosB,EAAc,IAAIC,CAAS,EACpC,CAACrsB,EAAY,CACb,IAAI0lB,EAAU,IAAI1iB,GAAQ,CACtBmD,GAAQT,EAAM/W,CAAS,CAC/C,CAAqB,EACDy9B,EAAc,IAAIC,EAAWrsB,EAAa0lB,CAAO,EACjDA,EAAQ,WAAW,UAAY,CACvB0G,EAAc,OAAOC,CAAS,GAC9BD,EAAc,KAAO,GACrBD,EAA0B,OAAOhB,CAAW,CAExE,CAAqB,CACJ,CACJ,MAEGnrB,EAAa,IAAIgD,GAAQ,CACrBmD,GAAQT,EAAM/W,CAAS,CAC3C,CAAiB,CAER,MAEGqR,EAAa,IAAIgD,GAAQ,CACrBlF,GAAW,GAAG,CAAE,KAAM,CAAE,EAAE,CAC1C,CAAa,EACD5wF,EAAU,KAAK,eAAeA,CAAO,EAEzC,IAAIg+G,EAAc,KAAK,UAAU31B,CAAK,EAAE,YACxC,OAAI21B,IACAlrB,EAAawB,GAASxB,EAAY,SAAUhlG,EAAQ,CAChD,OAAOuC,EAAM,WAAW,aAAa,CACjC,SAAU2tH,EACV,aAAclwH,EACd,QAASkS,EACT,UAAWknF,CAC/B,CAAiB,CACjB,CAAa,GAEE4L,CACf,EACIgpB,EAAa,UAAU,mBAAqB,SAAUvF,EAAWiF,EAAoB3nH,EAAS,CAC1F,IAAIurH,EAAY7I,EAAU,cAAgB,KAAK,kBAAiB,EAC5D8I,EAAe,KAAK,MAAM,iBAAiB,KAAK,UAAU9I,EAAU,QAAQ,EAAE,QAAQ,EAC1F,OAAOjiB,GAAS,KAAK,sBAAsB+qB,EAAcxrH,EAAQ,QAASA,EAAQ,SAAS,EAAG,SAAU/F,EAAQ,CAC5G,IAAIgpG,EAAgBD,GAA2B/oG,CAAM,EACjD+wH,EAAY/nB,EAAc,OAAS,EACvC,GAAIsoB,GAAa7I,EAAU,cAAe,CACtC,GAAIsI,GAAahrH,EAAQ,cAAgB,OACrC,MAAM0iH,EAAU,UAAU,IAAIzb,GAAY,CACtC,cAAehE,CAClB,EAAC,EAENyf,EAAU,WAAWzoH,EAAQuxH,EAAcxrH,EAAS2nH,CAAkB,EACtEjF,EAAU,UAAS,CACtB,CACD,IAAI+I,EAAM,CACN,KAAMxxH,EAAO,KACb,QAAS,GACT,cAAeooH,GAAc,KAC7C,EACY,OAAI2I,GAAahrH,EAAQ,cAAgB,WACrCyrH,EAAI,OAASxoB,EACbwoB,EAAI,cAAgBpJ,GAAc,OAE/BoJ,CACV,EAAE,SAAUrkB,EAAc,CACvB,IAAIzsG,EAAQosG,GAAcK,CAAY,EAChCA,EACA,IAAIH,GAAY,CAAE,aAAcG,CAAc,GACpD,MAAImkB,GAAa7I,EAAU,eACvBA,EAAU,UAAU/nH,CAAK,EAEvBA,CAClB,CAAS,CACT,EACIstH,EAAa,UAAU,qBAAuB,SAAUX,EAAStnH,EAASuiH,EAAe,CACrF,OAAO,KAAK,qBAAqB+E,EAAStnH,EAASuiH,CAAa,EAAE,OAC1E,EACI0F,EAAa,UAAU,qBAAuB,SAAUX,EAAStnH,EAASuiH,EAAe,CACrF,IAAI/lH,EAAQ,KACR+lH,IAAkB,SAAUA,EAAgBF,GAAc,SAC9D,IAAI7tB,EAAQ,KAAK,UAAUx0F,EAAQ,KAAK,EAAE,SACtCqzF,EAAY,KAAK,aAAamB,EAAOx0F,EAAQ,SAAS,EACtD0iH,EAAY,KAAK,SAAS4E,CAAO,EACjC7jB,EAAW,KAAK,eAAe,WAC/B1nG,EAAKiE,EAAQ,YAAa+iH,EAAchnH,IAAO,OAAS0nG,GAAYA,EAAS,aAAe,cAAgB1nG,EAAIC,EAAKgE,EAAQ,YAAa8nH,EAAc9rH,IAAO,OAASynG,GAAYA,EAAS,aAAe,OAASznG,EAAIC,EAAK+D,EAAQ,kBAAmB03G,EAAoBz7G,IAAO,OAAS,GAAQA,EAAIC,EAAK8D,EAAQ,4BAA6B0rH,EAA8BxvH,IAAO,OAAS,GAAQA,EAAIC,EAAK6D,EAAQ,QAASmM,EAAUhQ,IAAO,OAAS,GAAKA,EAClcwvH,EAAa,OAAO,OAAO,GAAI3rH,EAAS,CACxC,MAAOw0F,EACP,UAAWnB,EACX,YAAa0vB,EACb,YAAa+E,EACb,kBAAmBpQ,EACnB,4BAA6BgU,EAC7B,QAASv/G,CACrB,CAAS,EACGy/G,EAAgB,SAAUv4B,EAAW,CACrCs4B,EAAW,UAAYt4B,EACvB,IAAIw4B,EAAkBrvH,EAAM,mBAAmBkmH,EAAWiJ,EAAYpJ,CAAa,EACnF,OAAIoJ,EAAW,cAAgB,WAC3BE,EAAgB,QAAQ,OAAS,GACjCnJ,EAAU,iBACVA,EAAU,gBAAgB,qBAAwB,cAAe1iH,CAAO,EAErE6rH,CACnB,EACYC,EAAkB,UAAY,CAAE,OAAOtvH,EAAM,eAAe,OAAO8qH,CAAO,GAC9E,KAAK,eAAe,IAAIA,EAAS,SAAUplB,EAAQ,CAC/C4pB,IACA,WAAW,UAAY,CAAE,OAAOnH,EAAQ,OAAOziB,CAAM,CAAE,CAAE,CACrE,CAAS,EACD,IAAIyiB,EAASoH,EACb,GAAI,KAAK,UAAUJ,EAAW,KAAK,EAAE,iBACjChH,EAAU,IAAI1iB,GAAQ,KAAK,WACtB,qBAAqB0pB,EAAW,MAAOA,EAAW,UAAWA,EAAW,OAAO,EAC/E,KAAKC,CAAa,EAAE,KAAK,SAAUC,EAAiB,CAAE,OAAOA,EAAgB,OAAU,EAAC,EAC7FE,EAAuB,OAEtB,CACD,IAAIF,EAAkBD,EAAcD,EAAW,SAAS,EACxDI,EAAuBF,EAAgB,SACvClH,EAAU,IAAI1iB,GAAQ4pB,EAAgB,OAAO,CAChD,CACD,OAAAlH,EAAQ,QAAQ,KAAKmH,EAAiBA,CAAe,EAC9C,CACH,QAASnH,EACT,SAAUoH,CACtB,CACA,EACI9D,EAAa,UAAU,eAAiB,SAAUlsH,EAAI,CAClD,IAAIS,EAAQ,KACRwvH,EAAcjwH,EAAG,YAAawuH,EAAUxuH,EAAG,QAASC,EAAKD,EAAG,WAAYw1G,EAAav1G,IAAO,OAAS,GAAQA,EAAIC,EAAKF,EAAG,iBAAkB8lH,EAAmB5lH,IAAO,OAASs1G,EAAalO,GAAa,gBAAgB,EAAI,OAASpnG,EAAI8sH,EAAiBhtH,EAAG,eAC7PkwH,EAAsB,IAAI,IAC1B1B,GACA,KAAK,qBAAqBA,CAAO,EAAE,QAAQ,SAAUhD,EAAID,EAAS,CAC9D2E,EAAoB,IAAI3E,EAAS,CAC7B,GAAIC,EACJ,SAAU/qH,EAAM,SAAS8qH,CAAO,EAAE,QAAS,CAC/D,CAAiB,CACjB,CAAa,EAEL,IAAI56G,EAAU,IAAI,IAClB,OAAIs/G,GACA,KAAK,MAAM,MAAM,CACb,OAAQA,EACR,WAAYza,GAAcsQ,GAAoB,GAC9C,iBAAkBA,EAClB,eAAgB,SAAUH,EAAOS,EAAMC,EAAU,CAC7C,IAAImF,EAAK7F,EAAM,mBAAmB2F,IAC9B3F,EAAM,QAAQ,gBAClB,GAAI6F,EAAI,CACJ,GAAIwB,EAAgB,CAChBkD,EAAoB,OAAO1E,EAAG,OAAO,EACrC,IAAIttH,EAAS8uH,EAAexB,EAAIpF,EAAMC,CAAQ,EAC9C,OAAInoH,IAAW,KACXA,EAASstH,EAAG,WAEZttH,IAAW,IACXyS,EAAQ,IAAI66G,EAAIttH,CAAM,EAEnBA,CACV,CACG8uH,IAAmB,MACnBkD,EAAoB,IAAI1E,EAAG,QAAS,CAAE,GAAIA,EAAI,SAAUnF,EAAU,KAAMD,CAAM,EAErF,CACJ,CACjB,CAAa,EAED8J,EAAoB,MACpBA,EAAoB,QAAQ,SAAUlwH,EAAIurH,EAAS,CAC/C,IAAIC,EAAKxrH,EAAG,GAAIqmH,EAAWrmH,EAAG,SAAUomH,EAAOpmH,EAAG,KAC9C9B,EACJ,GAAI8uH,EAAgB,CAChB,GAAI,CAAC5G,EAAM,CACP,IAAIpV,EAAOwa,EAAG,UACdxa,EAAK,MAAK,EACVoV,EAAOpV,EAAK,SACf,CACD9yG,EAAS8uH,EAAexB,EAAIpF,EAAMC,CAAQ,CAC7C,EACG,CAAC2G,GAAkB9uH,IAAW,MAC9BA,EAASstH,EAAG,WAEZttH,IAAW,IACXyS,EAAQ,IAAI66G,EAAIttH,CAAM,EAEtBqtH,EAAQ,QAAQ,oBAAoB,GAAK,GACzC9qH,EAAM,qBAAqB8qH,CAAO,CAEtD,CAAa,EAEDzF,GACA,KAAK,MAAM,iBAAiBA,CAAgB,EAEzCn1G,CACf,EACIu7G,EAAa,UAAU,mBAAqB,SAAUvF,EAAW3mH,EAAIwmH,EAAe,CAChF,IAAI/lH,EAAQ,KACRg4F,EAAQz4F,EAAG,MAAOs3F,EAAYt3F,EAAG,UAAWgnH,EAAchnH,EAAG,YAAamwH,EAAqBnwH,EAAG,mBAAoB+rH,EAAc/rH,EAAG,YAAa27G,EAAoB37G,EAAG,kBAAmBoQ,EAAUpQ,EAAG,QAAS2vH,EAA8B3vH,EAAG,4BACrPowH,EAAmBzJ,EAAU,cACjCA,EAAU,KAAK,CACX,SAAU,KAAK,UAAUluB,CAAK,EAAE,SAChC,UAAWnB,EACX,cAAekvB,CAC3B,CAAS,EACD,IAAI6J,EAAY,UAAY,CAAE,OAAO1J,EAAU,QAAQrvB,CAAS,GAC5Dg5B,EAAmB,SAAUlK,EAAMI,EAAe,CAC9CA,IAAkB,SAAUA,EAAgBG,EAAU,eAAiBL,GAAc,SACzF,IAAIpyG,EAAOkyG,EAAK,OACZ,SACA,CAACzK,GACD,CAACtL,GAAMn8F,EAAM,EAAE,GACfkzG,GAAsBhB,EAAK,OAAO,EAEtC,IAAImK,EAAW,SAAUr8G,EAAM,CAAE,OAAO8sF,GAAW,GAAGlkG,EAAS,CAAE,KAAMoX,EAAM,QAASqyG,GAAyBC,CAAa,EAAG,cAAeA,GAAkBJ,EAAK,SAAW,KAAO,CAAE,QAAS,GAAQ,EAAE,EAC5M,OAAIlyG,GAAQzT,EAAM,UAAUg4F,CAAK,EAAE,mBACxBh4F,EAAM,WAAW,aAAa,CACjC,SAAUg4F,EACV,aAAc,CAAE,KAAMvkF,CAAM,EAC5B,QAAS9D,EACT,UAAWknF,EACX,uBAAwB,EAC3B,GAAE,KAAK,SAAUoT,EAAU,CAAE,OAAO6lB,EAAS7lB,EAAS,MAAQ,MAAM,CAAI,GAEzEqhB,IAAgB,QAChBvF,IAAkBF,GAAc,SAChC,MAAM,QAAQF,EAAK,OAAO,EACnBmK,EAAS,MAAM,EAEnBA,EAASr8G,CAAI,CAChC,EACY03G,EAAqB5E,IAAgB,WAAa,EACjDR,IAAkBF,GAAc,SAC7B6J,IAAuB,QAAW,EAChC,EACNK,EAAkB,UAAY,CAAE,OAAO/vH,EAAM,mBAAmBkmH,EAAWiF,EAAoB,CAC/F,UAAWt0B,EACX,QAASlnF,EACT,YAAa42G,EACb,YAAa+E,CAChB,EAAE,EACC0E,EAAed,GACf,OAAOS,GAAqB,UAC5BA,IAAqB5J,GACrBD,GAAyBC,CAAa,EAC1C,OAAQQ,EAAW,CACf,QACA,IAAK,cAAe,CAChB,IAAIZ,EAAOiK,IACX,OAAIjK,EAAK,SACE,CAAE,SAAU,GAAO,QAAS,CAACkK,EAAiBlK,EAAMO,EAAU,WAAW,CAAC,GAEjFhL,GAAqB8U,EACd,CAAE,SAAU,GAAM,QAAS,CAACH,EAAiBlK,CAAI,EAAGoK,EAAiB,IAEzE,CAAE,SAAU,GAAM,QAAS,CAACA,EAAiB,GACvD,CACD,IAAK,oBAAqB,CACtB,IAAIpK,EAAOiK,IACX,OAAIjK,EAAK,UAAYzK,GAAqB8U,EAC/B,CAAE,SAAU,GAAM,QAAS,CAACH,EAAiBlK,CAAI,EAAGoK,EAAiB,IAEzE,CAAE,SAAU,GAAM,QAAS,CAACA,EAAiB,GACvD,CACD,IAAK,aACD,MAAO,CAAE,SAAU,GAAO,QAAS,CAACF,EAAiBD,EAAS,EAAI1J,EAAU,UAAW,EAAC,CAAC,EAC7F,IAAK,eACD,OAAI8J,EACO,CAAE,SAAU,GAAM,QAAS,CAACH,EAAiBD,GAAW,EAAGG,EAAiB,IAEhF,CAAE,SAAU,GAAM,QAAS,CAACA,EAAiB,IACxD,IAAK,WACD,OAAIC,EACO,CACH,SAAU,GACV,QAAS,CACLH,EAAiB3J,EAAU,SAAS,EACpC6J,EAAiB,CACpB,CACzB,EAEuB,CAAE,SAAU,GAAM,QAAS,CAACA,EAAiB,IACxD,IAAK,UACD,MAAO,CAAE,SAAU,GAAO,QAAS,CAAE,EAC5C,CACT,EACItE,EAAa,UAAU,SAAW,SAAUX,EAAS,CACjD,OAAIA,GAAW,CAAC,KAAK,QAAQ,IAAIA,CAAO,GACpC,KAAK,QAAQ,IAAIA,EAAS,IAAID,GAAU,KAAMC,CAAO,CAAC,EAEnD,KAAK,QAAQ,IAAIA,CAAO,CACvC,EACIW,EAAa,UAAU,eAAiB,SAAU97G,EAAS,CACnDA,IAAY,SAAUA,EAAU,CAAE,GACtC,IAAI0O,EAAa,KAAK,WAAW,eAAe1O,CAAO,EACvD,OAAOtT,EAASA,EAAS,GAAIgiB,CAAU,EAAG,CAAE,gBAAiB,KAAK,eAAe,CAAE,CAC3F,EACWotG,CACX,ICv3BIwE,GAAuB,GAGvBC,GAAgB,UAAY,CAC5B,SAASA,EAAa1sH,EAAS,CAC3B,IAAIxD,EAAQ,KACZ,KAAK,oBAAsB,GAC3B,KAAK,oBAAsB,GAC3B,IAAIsuG,EAAM9qG,EAAQ,IAAK2sH,EAAc3sH,EAAQ,YAAa6nG,EAAU7nG,EAAQ,QAASsX,EAAQtX,EAAQ,MAAOjE,EAAKiE,EAAQ,QAASooH,EAAUrsH,IAAO,OAAS,GAAQA,EAAIC,EAAKgE,EAAQ,mBAAoB4sH,EAAqB5wH,IAAO,OAAS,EAAIA,EAAIC,EAAK+D,EAAQ,kBAAmB6sH,EAAoB5wH,IAAO,OAAS,OAAO,QAAW,UACxU,CAAC,OAAO,mBACR,QAAUA,EAAIC,EAAK8D,EAAQ,mBAAoBkoH,EAAqBhsH,IAAO,OAAS,GAAOA,EAAI0sG,EAAiB5oG,EAAQ,eAAgB7D,EAAK6D,EAAQ,uBAAwBuoH,EAAyBpsH,IAAO,OAAS,GAAQA,EAAIgpH,EAAYnlH,EAAQ,UAAW8sH,EAAW9sH,EAAQ,SAAUolH,EAAkBplH,EAAQ,gBAAiB+sH,EAAsB/sH,EAAQ,KAAMgtH,EAAyBhtH,EAAQ,QAC9Y2kG,EAAO3kG,EAAQ,KAMnB,GALK2kG,IACDA,EAAOmG,EACD,IAAImB,GAAS,CAAE,IAAKnB,EAAK,YAAa6hB,EAAa,QAAS9kB,EAAS,EACrEpD,GAAW,MAAK,GAEtB,CAACntF,EACD,MAAM,QAAU,IAAI6sE,GAAe;AAAA,iEAEmC,EAAI,IAAIA,GAAe,CAAC,EAmBlG,GAjBA,KAAK,KAAOwgB,EACZ,KAAK,MAAQrtF,EACb,KAAK,sBAAwB8wG,GAAWwE,EAAqB,EAC7D,KAAK,mBAAqB1E,EAC1B,KAAK,eAAiBtf,GAAkB,OAAO,OAAO,IAAI,EAC1D,KAAK,SAAWkkB,EACZF,GACA,WAAW,UAAY,CAAE,OAAQpwH,EAAM,sBAAwB,EAAO,EAAIowH,CAAkB,EAEhG,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,yBAA2B,KAAK,yBAAyB,KAAK,IAAI,EACnEC,GAAqB,OAAO,QAAW,WACvC,OAAO,kBAAoB,MAE3B,CAACJ,IAAwBI,GAAqB,UAC9CJ,GAAuB,GACnB,OAAO,OAAW,KAClB,OAAO,UACP,OAAO,MAAQ,OAAO,MACtB,CAAC,OAAO,iCAAiC,CACzC,IAAI1tH,EAAM,OAAO,UACb5rB,EAAK4rB,GAAOA,EAAI,UAChBmuB,EAAM,OACN,OAAO/5C,GAAO,WACVA,EAAG,QAAQ,SAAS,EAAI,GACxB+5C,EAAM,uGAGD/5C,EAAG,QAAQ,UAAU,EAAI,KAC9B+5C,EAAM,2EAGVA,GACA,SAAWqhD,GAAU,IAAI,qEACJrhD,CAAG,CAE/B,CAEL,KAAK,QAAUm4E,GACf,KAAK,WAAa,IAAI4f,GAAW,CAC7B,MAAO3tG,EACP,OAAQ,KACR,UAAW6tG,EACX,gBAAiBC,CAC7B,CAAS,EACD,KAAK,aAAe,IAAI6C,GAAa,CACjC,MAAO,KAAK,MACZ,KAAM,KAAK,KACX,eAAgB,KAAK,eACrB,mBAAoBC,EACpB,QAASE,EACT,gBAAiB,CACb,KAAM2E,EACN,QAASC,CACZ,EACD,WAAY,KAAK,WACjB,uBAAwBzE,EACxB,YAAasE,EAAoB,UAAY,CACrCrwH,EAAM,gBACNA,EAAM,eAAe,CACjB,OAAQ,CAAE,EACV,MAAO,CACH,QAASA,EAAM,aAAa,cAAe,EAC3C,UAAWA,EAAM,aAAa,eAAiB,CAAE,CACpD,EACD,0BAA2BA,EAAM,MAAM,QAAQ,EAAI,CAC3E,CAAqB,CAER,EAAG,MAChB,CAAS,CACJ,CACD,OAAAkwH,EAAa,UAAU,KAAO,UAAY,CACtC,KAAK,aAAa,MAC1B,EACIA,EAAa,UAAU,WAAa,SAAU1sH,EAAS,CACnD,OAAI,KAAK,eAAe,aACpBA,EAAUwjG,GAAa,KAAK,eAAe,WAAYxjG,CAAO,GAE9D,KAAK,wBACJA,EAAQ,cAAgB,gBACrBA,EAAQ,cAAgB,uBAC5BA,EAAUnH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,YAAa,aAAa,CAAE,GAErE,KAAK,aAAa,WAAWA,CAAO,CACnD,EACI0sH,EAAa,UAAU,MAAQ,SAAU1sH,EAAS,CAC9C,OAAI,KAAK,eAAe,QACpBA,EAAUwjG,GAAa,KAAK,eAAe,MAAOxjG,CAAO,GAE7D,QAAUuuE,GAAUvuE,EAAQ,cAAgB,oBAAqB,mSAGQ,EAAIuuE,GAAUvuE,EAAQ,cAAgB,oBAAqB,EAAE,EAClI,KAAK,uBAAyBA,EAAQ,cAAgB,iBACtDA,EAAUnH,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,YAAa,aAAa,CAAE,GAErE,KAAK,aAAa,MAAMA,CAAO,CAC9C,EACI0sH,EAAa,UAAU,OAAS,SAAU1sH,EAAS,CAC/C,OAAI,KAAK,eAAe,SACpBA,EAAUwjG,GAAa,KAAK,eAAe,OAAQxjG,CAAO,GAEvD,KAAK,aAAa,OAAOA,CAAO,CAC/C,EACI0sH,EAAa,UAAU,UAAY,SAAU1sH,EAAS,CAClD,OAAO,KAAK,aAAa,yBAAyBA,CAAO,CACjE,EACI0sH,EAAa,UAAU,UAAY,SAAU1sH,EAASuxG,EAAY,CAC9D,OAAIA,IAAe,SAAUA,EAAa,IACnC,KAAK,MAAM,UAAUvxG,EAASuxG,CAAU,CACvD,EACImb,EAAa,UAAU,aAAe,SAAU1sH,EAASuxG,EAAY,CACjE,OAAIA,IAAe,SAAUA,EAAa,IACnC,KAAK,MAAM,aAAavxG,EAASuxG,CAAU,CAC1D,EACImb,EAAa,UAAU,WAAa,SAAU1sH,EAAS,CACnD,IAAI4M,EAAM,KAAK,MAAM,WAAW5M,CAAO,EACvC,OAAIA,EAAQ,YAAc,IACtB,KAAK,aAAa,mBAEf4M,CACf,EACI8/G,EAAa,UAAU,cAAgB,SAAU1sH,EAAS,CACtD,IAAI4M,EAAM,KAAK,MAAM,cAAc5M,CAAO,EAC1C,OAAIA,EAAQ,YAAc,IACtB,KAAK,aAAa,mBAEf4M,CACf,EACI8/G,EAAa,UAAU,wBAA0B,SAAUt3I,EAAI,CAC3D,KAAK,eAAiBA,CAC9B,EACIs3I,EAAa,UAAU,aAAe,SAAUO,EAAS,CACrD,OAAO7nB,GAAQ,KAAK,KAAM6nB,CAAO,CACzC,EACIP,EAAa,UAAU,WAAa,UAAY,CAC5C,IAAIlwH,EAAQ,KACZ,OAAO,QAAQ,QAAS,EACnB,KAAK,UAAY,CAAE,OAAOA,EAAM,aAAa,WAAW,CACzD,eAAgB,EACnB,EAAE,CAAE,EACA,KAAK,UAAY,CAAE,OAAO,QAAQ,IAAIA,EAAM,oBAAoB,IAAI,SAAUmhC,EAAI,CAAE,OAAOA,EAAE,CAAG,CAAE,CAAC,CAAE,CAAE,EACvG,KAAK,UAAY,CAAE,OAAOnhC,EAAM,yBAA0B,CAAG,EAC1E,EACIkwH,EAAa,UAAU,WAAa,UAAY,CAC5C,IAAIlwH,EAAQ,KACZ,OAAO,QAAQ,QAAS,EACnB,KAAK,UAAY,CAAE,OAAOA,EAAM,aAAa,WAAW,CACzD,eAAgB,EACnB,EAAE,CAAE,EACA,KAAK,UAAY,CAAE,OAAO,QAAQ,IAAIA,EAAM,oBAAoB,IAAI,SAAUmhC,EAAI,CAAE,OAAOA,EAAE,CAAG,CAAE,CAAC,CAAE,CAAE,CACpH,EACI+uF,EAAa,UAAU,aAAe,SAAUt3I,EAAI,CAChD,IAAIonB,EAAQ,KACZ,YAAK,oBAAoB,KAAKpnB,CAAE,EACzB,UAAY,CACfonB,EAAM,oBAAsBA,EAAM,oBAAoB,OAAO,SAAU/rB,EAAG,CAAE,OAAOA,IAAM2E,CAAK,EAC1G,CACA,EACIs3I,EAAa,UAAU,aAAe,SAAUt3I,EAAI,CAChD,IAAIonB,EAAQ,KACZ,YAAK,oBAAoB,KAAKpnB,CAAE,EACzB,UAAY,CACfonB,EAAM,oBAAsBA,EAAM,oBAAoB,OAAO,SAAU/rB,EAAG,CAAE,OAAOA,IAAM2E,CAAK,EAC1G,CACA,EACIs3I,EAAa,UAAU,yBAA2B,SAAU7B,EAAgB,CACxE,OAAO,KAAK,aAAa,yBAAyBA,CAAc,CACxE,EACI6B,EAAa,UAAU,eAAiB,SAAU1sH,EAAS,CACvD,IAAIuV,EAAM,KAAK,aAAa,eAAevV,CAAO,EAC9CwqH,EAAU,GACV99G,EAAU,GACd6I,EAAI,QAAQ,SAAUtb,EAAQ8qH,EAAU,CACpCyF,EAAQ,KAAKzF,CAAQ,EACrBr4G,EAAQ,KAAKzS,CAAM,CAC/B,CAAS,EACD,IAAIA,EAAS,QAAQ,IAAIyS,CAAO,EAChC,OAAAzS,EAAO,QAAUuwH,EACjBvwH,EAAO,QAAUyS,EACjBzS,EAAO,MAAM,SAAUU,EAAO,CAC1B,SAAW4zE,GAAU,MAAM,qEAAqE,OAAO5zE,CAAK,CAAC,CACzH,CAAS,EACMV,CACf,EACIyyH,EAAa,UAAU,qBAAuB,SAAUnC,EAAS,CAC7D,OAAIA,IAAY,SAAUA,EAAU,UAC7B,KAAK,aAAa,qBAAqBA,CAAO,CAC7D,EACImC,EAAa,UAAU,QAAU,SAAUnb,EAAY,CACnD,OAAO,KAAK,MAAM,QAAQA,CAAU,CAC5C,EACImb,EAAa,UAAU,QAAU,SAAUQ,EAAiB,CACxD,OAAO,KAAK,MAAM,QAAQA,CAAe,CACjD,EACIR,EAAa,UAAU,aAAe,SAAUvH,EAAW,CACvD,KAAK,WAAW,aAAaA,CAAS,CAC9C,EACIuH,EAAa,UAAU,aAAe,SAAUvH,EAAW,CACvD,KAAK,WAAW,aAAaA,CAAS,CAC9C,EACIuH,EAAa,UAAU,aAAe,UAAY,CAC9C,OAAO,KAAK,WAAW,cAC/B,EACIA,EAAa,UAAU,6BAA+B,SAAUtH,EAAiB,CAC7E,KAAK,WAAW,mBAAmBA,CAAe,CAC1D,EACIsH,EAAa,UAAU,QAAU,SAAUS,EAAS,CAChD,KAAK,KAAO,KAAK,aAAa,KAAOA,CAC7C,EACWT,CACX,ICjPIU,GAAW,IAAI,IACfC,GAAoB,IAAI,IACxBC,GAAwB,GACxBC,GAAgC,GACpC,SAAS15F,GAAU25F,EAAQ,CACvB,OAAOA,EAAO,QAAQ,UAAW,GAAG,EAAE,KAAI,CAC9C,CACA,SAASC,GAAgBrmC,EAAK,CAC1B,OAAOvzD,GAAUuzD,EAAI,OAAO,KAAK,UAAUA,EAAI,MAAOA,EAAI,GAAG,CAAC,CAClE,CACA,SAASsmC,GAAiBj8B,EAAK,CAC3B,IAAIk8B,EAAW,IAAI,IACfC,EAAc,GAClB,OAAAn8B,EAAI,YAAY,QAAQ,SAAUsG,EAAoB,CAClD,GAAIA,EAAmB,OAAS,qBAAsB,CAClD,IAAI3D,EAAe2D,EAAmB,KAAK,MACvCwD,EAAYkyB,GAAgB11B,EAAmB,GAAG,EAClD81B,EAAeR,GAAkB,IAAIj5B,CAAY,EACjDy5B,GAAgB,CAACA,EAAa,IAAItyB,CAAS,EACvC+xB,IACA,QAAQ,KAAK,+BAAiCl5B,EAAe;AAAA;AAAA,6EAEuB,EAGlFy5B,GACNR,GAAkB,IAAIj5B,EAAcy5B,EAAe,IAAI,GAAG,EAE9DA,EAAa,IAAItyB,CAAS,EACrBoyB,EAAS,IAAIpyB,CAAS,IACvBoyB,EAAS,IAAIpyB,CAAS,EACtBqyB,EAAY,KAAK71B,CAAkB,EAE1C,MAEG61B,EAAY,KAAK71B,CAAkB,CAE/C,CAAK,EACMl/F,EAASA,EAAS,GAAI44F,CAAG,EAAG,CAAE,YAAam8B,CAAW,CAAE,CACnE,CACA,SAASE,GAAShvH,EAAK,CACnB,IAAImhG,EAAU,IAAI,IAAInhG,EAAI,WAAW,EACrCmhG,EAAQ,QAAQ,SAAUt9E,EAAM,CACxBA,EAAK,KACL,OAAOA,EAAK,IAChB,OAAO,KAAKA,CAAI,EAAE,QAAQ,SAAUvpB,EAAK,CACrC,IAAIO,EAAQgpB,EAAKvpB,CAAG,EAChBO,GAAS,OAAOA,GAAU,UAC1BsmG,EAAQ,IAAItmG,CAAK,CAEjC,CAAS,CACT,CAAK,EACD,IAAIytF,EAAMtoF,EAAI,IACd,OAAIsoF,IACA,OAAOA,EAAI,WACX,OAAOA,EAAI,UAERtoF,CACX,CACA,SAASivH,GAAchzG,EAAQ,CAC3B,IAAIw+F,EAAW1lF,GAAU9Y,CAAM,EAC/B,GAAI,CAACqyG,GAAS,IAAI7T,CAAQ,EAAG,CACzB,IAAIyU,EAAS1sC,GAAMvmE,EAAQ,CACvB,8BAA+BwyG,GAC/B,6BAA8BA,EAC1C,CAAS,EACD,GAAI,CAACS,GAAUA,EAAO,OAAS,WAC3B,MAAM,IAAI,MAAM,+BAA+B,EAEnDZ,GAAS,IAAI7T,EAAUuU,GAASJ,GAAiBM,CAAM,CAAC,CAAC,CAC5D,CACD,OAAOZ,GAAS,IAAI7T,CAAQ,CAChC,CACO,SAAS0U,GAAIC,EAAU,CAE1B,QADIrxH,EAAO,GACFe,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCf,EAAKe,EAAK,CAAC,EAAI,UAAUA,CAAE,EAE3B,OAAOswH,GAAa,WACpBA,EAAW,CAACA,CAAQ,GAExB,IAAIj0H,EAASi0H,EAAS,CAAC,EACvB,OAAArxH,EAAK,QAAQ,SAAUqB,EAAKnF,EAAG,CACvBmF,GAAOA,EAAI,OAAS,WACpBjE,GAAUiE,EAAI,IAAI,OAAO,KAGzBjE,GAAUiE,EAEdjE,GAAUi0H,EAASn1H,EAAI,CAAC,CAChC,CAAK,EACMg1H,GAAc9zH,CAAM,CAC/B,CACO,SAASk0H,IAAc,CAC1Bf,GAAS,MAAK,EACdC,GAAkB,MAAK,CAC3B,CACO,SAASe,IAA0B,CACtCd,GAAwB,EAC5B,CACO,SAASe,IAAsC,CAClDd,GAAgC,EACpC,CACO,SAASe,IAAuC,CACnDf,GAAgC,EACpC,CACA,IAAIgB,GAAS,CACT,IAAKN,GACL,YAAaE,GACb,wBAAyBC,GACzB,oCAAqCC,GACrC,qCAAsCC,EAC1C,GACC,SAAUE,EAAO,CACdA,EAAM,IAAMD,GAAO,IAAKC,EAAM,YAAcD,GAAO,YAAaC,EAAM,wBAA0BD,GAAO,wBAAyBC,EAAM,oCAAsCD,GAAO,oCAAqCC,EAAM,qCAAuCD,GAAO,oCAChR,GAAGN,KAAQA,GAAM,CAAE,EAAC,EACpBA,GAAI,QAAaA,GCpHjB,IAAIQ,GAAahtB,GACX,OAAO,IAAI,oBAAoB,EAC/B,qBACC,SAASitB,IAAmB,CAC/B,IAAIviH,EAAUyN,gBAAoB60G,EAAU,EAC5C,OAAKtiH,IACD,OAAO,eAAeyN,EAAmB,cAAE60G,GAAY,CACnD,MAAOtiH,EAAUyN,EAAmB,cAAC,EAAE,EACvC,WAAY,GACZ,SAAU,GACV,aAAc,EAC1B,CAAS,EACDzN,EAAQ,YAAc,iBAEnBA,CACX,CCdO,IAAIwiH,GAAiB,SAAU5yH,EAAI,CACtC,IAAImpH,EAASnpH,EAAG,OAAQ4kC,EAAW5kC,EAAG,SAClC6yH,EAAgBF,KACpB,OAAQv2G,EAAmB,cAACy2G,EAAc,SAAU,KAAM,SAAUziH,EAAS,CACzE,OAAIA,IAAY,SAAUA,EAAU,CAAE,GAClC+4G,GAAU/4G,EAAQ,SAAW+4G,IAC7B/4G,EAAU,OAAO,OAAO,CAAE,EAAEA,EAAS,CAAE,OAAQ+4G,CAAM,CAAE,GAE3D,QAAU32C,GAAUpiE,EAAQ,OAAQ,2GACqB,EAAIoiE,GAAUpiE,EAAQ,OAAQ,EAAE,EACjFgM,gBAAoBy2G,EAAc,SAAU,CAAE,MAAOziH,CAAO,EAAIw0B,CAAQ,CACxF,CAAK,CACL,ECZO,SAASkuF,GAAgBC,EAAU,CACtC,IAAI3iH,EAAU4iH,aAAWL,GAAgB,CAAE,EACvCxJ,EAAS4J,GAAY3iH,EAAQ,OACjC,eAAUoiE,GAAU,CAAC,CAAC22C,EAAQ,oKAEA,EAAI32C,GAAU,CAAC,CAAC22C,EAAQ,EAAE,EACjDA,CACX,CCPA,IAAI8J,GAA6B,GAC7BC,GAAU,uBACVC,GAAWxzC,GAAMuzC,EAAO,EACjBE,GAAuBD,IAAa,SAAUte,EAAWwe,EAAaC,EAAmB,CAChG,IAAI11H,EAAQy1H,IACR,SACA,CAACJ,IACDr1H,IAAUy1H,EAAW,IACrBJ,GAA6B,GAC7B,SAAWzgD,GAAU,MAAM,sEAAsE,GAErG,IAAIxyE,EAAKkgB,WAAe,CAAE,KAAM,CAAE,MAAOtiB,EAAO,YAAay1H,CAAW,CAAI,GAAGE,EAAOvzH,EAAG,CAAC,EAAE,KAAM6f,EAAc7f,EAAG,CAAC,EACpH,OAAI6lG,GACA58E,kBAAsB,UAAY,CAC9B,OAAO,OAAOsqG,EAAM,CAAE,MAAO31H,EAAO,YAAay1H,CAAW,CAAE,EAC1DG,GAAuBD,CAAI,GAC3B1zG,EAAY,CAAE,KAAM0zG,CAAI,CAAE,CAEjC,EAAE,CAAC1e,EAAWj3G,EAAOy1H,CAAW,CAAC,EAGlC,OAAO,OAAOE,EAAM,CAAE,MAAO31H,EAAO,YAAay1H,CAAW,CAAE,EAElEpzG,YAAgB,UAAY,CACxB,OAAIuzG,GAAuBD,CAAI,GAC3B1zG,EAAY,CAAE,KAAM0zG,CAAI,CAAE,EAEvB1e,EAAU,UAA6B,CACtC2e,GAAuBD,CAAI,GAC3B1zG,EAAY,CAAE,KAAM0zG,CAAI,CAAE,CAE1C,CAAS,CACT,EAAO,CAAC1e,CAAS,CAAC,EACPj3G,CACX,EACA,SAAS41H,GAAuBxzH,EAAI,CAChC,IAAIpC,EAAQoC,EAAG,MAAOqzH,EAAcrzH,EAAG,YACvC,GAAI,CACA,OAAOpC,IAAUy1H,GACpB,MACU,CACP,MAAO,EACV,CACL,CC7CO,IAAII,IACV,SAAUA,EAAc,CACrBA,EAAaA,EAAa,MAAW,CAAC,EAAI,QAC1CA,EAAaA,EAAa,SAAc,CAAC,EAAI,WAC7CA,EAAaA,EAAa,aAAkB,CAAC,EAAI,cACrD,GAAGA,KAAiBA,GAAe,CAAE,EAAC,EACtC,IAAIl4G,GAAQ,IAAI,IACT,SAAS8xF,GAAcnsC,EAAM,CAChC,IAAI79D,EACJ,OAAQ69D,EAAI,CACR,KAAKuyD,GAAa,MACdpwH,EAAO,QACP,MACJ,KAAKowH,GAAa,SACdpwH,EAAO,WACP,MACJ,KAAKowH,GAAa,aACdpwH,EAAO,eACP,KACP,CACD,OAAOA,CACX,CACO,SAASouF,GAAOl5E,EAAU,CAC7B,IAAIm7G,EAASn4G,GAAM,IAAIhD,CAAQ,EAC/B,GAAIm7G,EACA,OAAOA,EACX,IAAIp8B,EAAWp2B,EAAM79D,EACrB,QAAUmvE,GAAU,CAAC,CAACj6D,GAAY,CAAC,CAACA,EAAS,KAAM,eAAe,OAAOA,EAAU,4CAA4C,EAC3H,6GAC2C,EAAIi6D,GAAU,CAAC,CAACj6D,GAAY,CAAC,CAACA,EAAS,KAAM,EAAE,EAK9F,QAJIggF,EAAY,GACZk2B,EAAU,GACVkF,EAAY,GACZ3wB,EAAgB,GACXnhG,EAAK,EAAG7B,EAAKuY,EAAS,YAAa1W,EAAK7B,EAAG,OAAQ6B,IAAM,CAC9D,IAAIvuB,EAAI0sB,EAAG6B,CAAE,EACb,GAAIvuB,EAAE,OAAS,qBAAsB,CACjCilH,EAAU,KAAKjlH,CAAC,EAChB,QACH,CACD,GAAIA,EAAE,OAAS,sBACX,OAAQA,EAAE,UAAS,CACf,IAAK,QACDm7I,EAAQ,KAAKn7I,CAAC,EACd,MACJ,IAAK,WACDqgJ,EAAU,KAAKrgJ,CAAC,EAChB,MACJ,IAAK,eACD0vH,EAAc,KAAK1vH,CAAC,EACpB,KACP,CAER,CACD,QAAUk/F,GAAU,CAAC+lB,EAAU,QAC1Bk2B,EAAQ,QAAUkF,EAAU,QAAU3wB,EAAc,OAAS,uHACF,EAAIxwB,GAAU,CAAC+lB,EAAU,QACpFk2B,EAAQ,QAAUkF,EAAU,QAAU3wB,EAAc,OAAS,EAAE,EACpE,QAAUxwB,GAAUi8C,EAAQ,OAASkF,EAAU,OAAS3wB,EAAc,QAAU,EAAG,4EAC/E,GAAG,OAAOzqF,EAAU,OAAO,EAAE,OAAOk2G,EAAQ,OAAQ,YAAY,EAAE,OAAOzrB,EAAc,OAAQ,GAAG,EAClG,qBAAqB,OAAO2wB,EAAU,OAAQ,cAAc,EAC5D,uEAAuE,EAAInhD,GAAUi8C,EAAQ,OAASkF,EAAU,OAAS3wB,EAAc,QAAU,EAAG,EAAE,EAC1J9hC,EAAOutD,EAAQ,OAASgF,GAAa,MAAQA,GAAa,SACtD,CAAChF,EAAQ,QAAU,CAACkF,EAAU,SAC9BzyD,EAAOuyD,GAAa,cACxB,IAAI5B,EAAcpD,EAAQ,OACpBA,EACAkF,EAAU,OACNA,EACA3wB,EACV,QAAUxwB,GAAUq/C,EAAY,SAAW,EAAG,sDAAsD,OAAOt5G,EAAU,OAAO,EACxH,GAAG,OAAOs5G,EAAY,OAAQ,gBAAgB,EAC9C,uEAAuE,EAAIr/C,GAAUq/C,EAAY,SAAW,EAAG,EAAE,EACrH,IAAIr5B,EAAaq5B,EAAY,CAAC,EAC9Bv6B,EAAYkB,EAAW,qBAAuB,GAC1CA,EAAW,MAAQA,EAAW,KAAK,OAAS,OAC5Cn1F,EAAOm1F,EAAW,KAAK,MAGvBn1F,EAAO,OAEX,IAAI6tH,EAAU,CAAE,KAAM7tH,EAAM,KAAM69D,EAAM,UAAWo2B,GACnD,OAAA/7E,GAAM,IAAIhD,EAAU24G,CAAO,EACpBA,CACX,CACO,SAAS0C,GAAmBr7G,EAAU2oD,EAAM,CAC/C,IAAI2wB,EAAYJ,GAAOl5E,CAAQ,EAC3Bs7G,EAAwBxmB,GAAcnsC,CAAI,EAC1C4yD,EAAoBzmB,GAAcxb,EAAU,IAAI,EACpD,QAAUrf,GAAUqf,EAAU,OAAS3wB,EAAM,aAAa,OAAO2yD,EAAuB,sBAAsB,EAC1G,GAAG,OAAOA,EAAuB,UAAU,EAAE,OAAOC,EAAmB,oBAAoB,CAAC,EAAIthD,GAAUqf,EAAU,OAAS3wB,EAAM,EAAE,CAC7I,CChFA,IAAI89B,GAAiB,OAAO,UAAU,eAC/B,SAAS+0B,GAASt7B,EAAOx0F,EAAS,CACrC,OAAIA,IAAY,SAAUA,EAAU,OAAO,OAAO,IAAI,GAC/C+vH,GAAiBlB,GAAgB7uH,EAAQ,MAAM,EAAGw0F,CAAK,EAAE,SAASx0F,CAAO,CACpF,CACO,SAAS+vH,GAAiB7K,EAAQ1wB,EAAO,CAC5C,IAAIw7B,EAAWzxF,YACX,CAACyxF,EAAS,SACV9K,IAAW8K,EAAS,QAAQ,QAC5Bx7B,IAAUw7B,EAAS,QAAQ,SAC3BA,EAAS,QAAU,IAAIC,GAAc/K,EAAQ1wB,EAAOw7B,EAAS,OAAO,GAExE,IAAI5+F,EAAQ4+F,EAAS,QACjBj0H,EAAKm0H,WAAS,CAAC,EAAWn0H,EAAG,CAAC,EAAG,IAAAo0H,EAAUp0H,EAAG,CAAC,EACnD,OAAAq1B,EAAM,YAAc,UAAY,CAC5B++F,EAAQ,SAAUC,EAAM,CAAE,OAAOA,EAAO,CAAE,CAAE,CACpD,EACWh/F,CACX,CACA,IAAI6+F,GAAiB,UAAY,CAC7B,SAASA,EAAc/K,EAAQ1wB,EAAO3S,EAAU,CAC5C,KAAK,OAASqjC,EACd,KAAK,MAAQ1wB,EACb,KAAK,kBAAoB2L,GAAgB,CACrC,QAAS,GACT,KAAM,OACN,MAAO,OACP,cAAekiB,GAAc,OACzC,CAAS,EACD,KAAK,kBAAoBliB,GAAgB,CACrC,QAAS,GACT,KAAM,OACN,MAAO,OACP,cAAekiB,GAAc,KACzC,CAAS,EACD,KAAK,mBAAqB,IAAK9gB,GAAgB,QAAU,KACzDouB,GAAmBn7B,EAAOg7B,GAAa,KAAK,EAC5C,IAAIa,EAAiBxuC,GAAYA,EAAS,OACtCyuC,EAAeD,GAAkBA,EAAe,KAChDC,IACA,KAAK,aAAeA,EAE3B,CACD,OAAAL,EAAc,UAAU,YAAc,UAAY,CAC9C,SAAW1hD,GAAU,KAAK,mEAAmE,CACrG,EACI0hD,EAAc,UAAU,aAAe,SAAUjwH,EAAS,CACtD,IAAIxD,EAAQ,KACRT,EACAiE,EAAQ,OACR,OAAO,OAAO,KAAM,CAAE,MAAOA,EAAQ,KAAK,CAAE,EAEhD,KAAK,kBAAoB,KAAK,wBAAwB,KAAK,iBAAmBA,CAAO,EACrF,IAAI2kH,EAAU,KAAK,WAAW,mBAAmB,KAAK,mBAAkB,CAAE,EAC1E,YAAK,eAAiB5oH,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,OAAS,KAAK,aAC9F,KAAK,OAAS,OACd,KAAK,YAAW,EACT,IAAI,QAAQ,SAAUnC,EAAS,CAClC,IAAIK,EACJ0qH,EAAQ,UAAU,CACd,KAAM,SAAUhrH,EAAO,CACnBM,EAASN,CACZ,EACD,MAAO,UAAY,CACfC,EAAQ4C,EAAM,cAAcA,EAAM,WAAW,iBAAkB,EAAC,CACnE,EACD,SAAU,UAAY,CAClB5C,EAAQ4C,EAAM,cAAcvC,CAAM,CAAC,CACtC,CACjB,CAAa,CACb,CAAS,CACT,EACIg2H,EAAc,UAAU,SAAW,SAAUjwH,EAAS,CAClD,IAAIxD,EAAQ,KACZ,KAAK,eAAiBuyH,aAAWL,GAAkB,GAAE,eACrD,KAAK,WAAW1uH,CAAO,EACvB,IAAI+kH,EAAW,KAAK,qBAChB9qH,EAASk1H,GAAqBoB,cAAY,UAAY,CACtD,GAAI/zH,EAAM,eACN,OAAO,UAAY,GAEvB,IAAIg0H,EAAS,UAAY,CACrB,IAAIH,EAAiB7zH,EAAM,OACvBvC,EAAS8qH,EAAS,mBAClBsL,GACAA,EAAe,UAAYp2H,EAAO,SAClCo2H,EAAe,gBAAkBp2H,EAAO,eACxCmyG,GAAMikB,EAAe,KAAMp2H,EAAO,IAAI,GAG1CuC,EAAM,UAAUvC,CAAM,CACtC,EACgBiM,EAAU,SAAUvL,EAAO,CAC3B,IAAIkoH,EAAOkC,EAAS,KACpB3nB,EAAa,YAAW,EACxB,GAAI,CACA2nB,EAAS,iBAAgB,EACzB3nB,EAAe2nB,EAAS,UAAUyL,EAAQtqH,CAAO,CACpD,QACO,CACJ6+G,EAAS,KAAUlC,CACtB,CACD,GAAI,CAAC9nB,GAAe,KAAKpgG,EAAO,eAAe,EAC3C,MAAMA,EAEV,IAAI01H,EAAiB7zH,EAAM,QACvB,CAAC6zH,GACAA,GAAkBA,EAAe,SAClC,CAACjkB,GAAMzxG,EAAO01H,EAAe,KAAK,IAClC7zH,EAAM,UAAU,CACZ,KAAO6zH,GAAkBA,EAAe,KACxC,MAAO11H,EACP,QAAS,GACT,cAAe0nH,GAAc,KACrD,CAAqB,CAErB,EACgBjlB,EAAe2nB,EAAS,UAAUyL,EAAQtqH,CAAO,EACrD,OAAO,UAAY,CAAE,OAAO,WAAW,UAAY,CAAE,OAAOk3F,EAAa,YAAa,EAAG,EACrG,EAAW,CACC2nB,EACA,KAAK,eACL,KAAK,OAAO,qBACf,GAAG,UAAY,CAAE,OAAOvoH,EAAM,iBAAgB,CAAG,EAAI,UAAY,CAAE,OAAOA,EAAM,iBAAkB,CAAG,GACtG,YAAK,2BAA2BvC,CAAM,EAC/B,KAAK,cAAcA,CAAM,CACxC,EACIg2H,EAAc,UAAU,WAAa,SAAUjwH,EAAS,CACpD,IAAIjE,EACA00H,EAAoB,KAAK,wBAAwB,KAAK,iBAAmBzwH,CAAO,EAChF0wH,EAA2B,KAAK,kBAC/BtkB,GAAMqkB,EAAmBC,CAAwB,IAClD,KAAK,kBAAoBD,EACrBC,GAA4B,KAAK,aACjC,KAAK,WAAW,UAAU,KAAK,mBAAoB,GACnD,KAAK,eAAiB30H,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,OAAS,KAAK,aAC9F,KAAK,OAAS,SAGtB,KAAK,YAAciE,EAAQ,aAAeiwH,EAAc,UAAU,YAClE,KAAK,QAAUjwH,EAAQ,SAAWiwH,EAAc,UAAU,SACrD,KAAK,gBAAkB,KAAK,OAAO,wBACpC,KAAK,iBAAiB,MAAQ,IAC9B,CAAC,KAAK,iBAAiB,KACvB,KAAK,OAAS,KAAK,kBAEd,KAAK,iBAAiB,MAC3B,KAAK,kBAAkB,cAAgB,UACvC,KAAK,OAAS,KAAK,mBAEd,KAAK,SAAW,KAAK,mBAC1B,KAAK,SAAW,KAAK,qBACrB,KAAK,OAAS,OAE1B,EACIA,EAAc,UAAU,mBAAqB,UAAY,CACrD,IAAIrV,EAAU,GACV+V,EAAiB,KAAK,OAAO,eAAe,WAChD,OAAIA,GACA/V,EAAQ,KAAK+V,CAAc,EAC3B,KAAK,iBAAiB,gBACtB/V,EAAQ,KAAK,KAAK,iBAAiB,cAAc,EAErDA,EAAQ,KAAKzX,GAAQ,KAAK,YAAc,KAAK,WAAW,QAAS,KAAK,iBAAiB,CAAC,EACjFyX,EAAQ,OAAOpX,EAAY,CAC1C,EACIysB,EAAc,UAAU,wBAA0B,SAAUl0H,EAAI,CAC5D,IAAIC,EACAD,IAAO,SAAUA,EAAK,CAAE,GACzB,IAACw+F,EAAOx+F,EAAG,KAAYA,EAAG,IAAmBA,EAAG,YAAuBA,EAAG,QAA0BA,EAAG,eAAe,IAAC60H,EAAe53H,GAAO+C,EAAI,CAAC,OAAQ,MAAO,cAAe,UAAW,gBAAgB,CAAC,EAC3M00H,EAAoB,OAAO,OAAOG,EAAc,CAAE,MAAO,KAAK,KAAK,CAAE,EASzE,GARI,KAAK,iBACJH,EAAkB,cAAgB,gBAC/BA,EAAkB,cAAgB,uBACtCA,EAAkB,YAAc,eAE/BA,EAAkB,YACnBA,EAAkB,UAAY,IAE9Bl2B,EAAM,CACN,IAAIt+F,EAAKw0H,EAAkB,YAAa1N,EAAc9mH,IAAO,OAAS,KAAK,sBAAqB,EAAKA,EAAIC,EAAKu0H,EAAkB,mBAAoBzN,EAAqB9mH,IAAO,OAAS6mH,EAAc7mH,EACvM,OAAO,OAAOu0H,EAAmB,CAC7B,mBAAoBzN,EACpB,YAAa,SAC7B,CAAa,CACJ,MACSyN,EAAkB,cACxBA,EAAkB,cACZz0H,EAAK,KAAK,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,QAAQ,qBACpE,KAAK,sBAAqB,GAEtC,OAAOy0H,CACf,EACIR,EAAc,UAAU,sBAAwB,UAAY,CACxD,IAAIl0H,EAAIC,EACR,QAAUD,EAAK,KAAK,iBAAiB,kBAAoB,MAAQA,IAAO,OAAS,OAASA,EAAG,gBACvFC,EAAK,KAAK,OAAO,eAAe,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,cACtF,aACZ,EACIi0H,EAAc,UAAU,YAAc,SAAUhgH,EAAM,GACtDggH,EAAc,UAAU,QAAU,SAAUt1H,EAAO,GACnDs1H,EAAc,UAAU,mBAAqB,UAAY,CACrD,IAAIlL,EAAW,KAAK,WAChB,KAAK,gBACE,KAAK,eAAe,iBAAiB,KAAK,iBAAiB,GAC3D,KAAK,YACL,KAAK,OAAO,WAAW,KAAK,mBAAoB,GAC3D,KAAK,eAAiB8L,UAAQ,UAAY,CAAE,MAAQ,CAChD,QAAS9L,EAAS,QAAQ,KAAKA,CAAQ,EACvC,UAAWA,EAAS,UAAU,KAAKA,CAAQ,EAC3C,UAAWA,EAAS,UAAU,KAAKA,CAAQ,EAC3C,YAAaA,EAAS,YAAY,KAAKA,CAAQ,EAC/C,aAAcA,EAAS,aAAa,KAAKA,CAAQ,EACjD,YAAaA,EAAS,YAAY,KAAKA,CAAQ,EAC/C,gBAAiBA,EAAS,gBAAgB,KAAKA,CAAQ,CACnE,CAAa,EAAE,CAACA,CAAQ,CAAC,EACjB,IAAI+L,EAAa,EAAE,KAAK,iBAAiB,MAAQ,IAC7C,KAAK,iBAAiB,MAC1B,OAAI,KAAK,gBAAkBA,IACvB,KAAK,eAAe,sBAAsB/L,CAAQ,EAC9CA,EAAS,iBAAkB,EAAC,SAC5B,KAAK,eAAe,0BAA0BA,CAAQ,GAGvDA,CACf,EACIkL,EAAc,UAAU,UAAY,SAAUc,EAAY,CACtD,IAAIV,EAAiB,KAAK,OACtBA,GAAkBA,EAAe,OACjC,KAAK,aAAeA,EAAe,MAEvC,KAAK,OAASU,EACd,KAAK,YAAW,EAChB,KAAK,uBAAuBA,CAAU,CAC9C,EACId,EAAc,UAAU,uBAAyB,SAAUh2H,EAAQ,CAC/D,IAAIuC,EAAQ,KACZ,GAAI,CAACvC,EAAO,QAAS,CACjB,IAAI+2H,EAAU,KAAK,cAAc/2H,CAAM,EACvC,QAAQ,UAAU,KAAK,UAAY,CAC3B+2H,EACAx0H,EAAM,QAAQw0H,CAAO,EAEhB/2H,EAAO,MACZuC,EAAM,YAAYvC,EAAO,IAAI,CAEjD,CAAa,EAAE,MAAM,SAAUU,EAAO,CACtB,SAAW4zE,GAAU,KAAK5zE,CAAK,CAC/C,CAAa,CACJ,CACT,EACIs1H,EAAc,UAAU,cAAgB,SAAUh2H,EAAQ,CACtD,OAAOm+F,GAAgBn+F,EAAO,MAAM,EAC9B,IAAIgtG,GAAY,CAAE,cAAehtG,EAAO,MAAM,CAAE,EAChDA,EAAO,KACrB,EACIg2H,EAAc,UAAU,iBAAmB,UAAY,CACnD,OAAK,KAAK,QACN,KAAK,uBAAuB,KAAK,OAAS,KAAK,WAAW,iBAAgB,CAAE,EAEzE,KAAK,MACpB,EACIA,EAAc,UAAU,cAAgB,SAAUh2H,EAAQ,CACtD,IAAIg3H,EAAc,KAAK,mBAAmB,IAAIh3H,CAAM,EACpD,GAAIg3H,EACA,OAAOA,EACR,IAAChhH,EAAOhW,EAAO,KAAgBA,EAAO,YAASi3H,EAAuBl4H,GAAOiB,EAAQ,CAAC,OAAQ,SAAS,CAAC,EAC3G,YAAK,mBAAmB,IAAIA,EAAQg3H,EAAcp4H,EAASA,EAASA,EAAS,CAAE,KAAMoX,CAAM,EAAEihH,CAAoB,EAAG,KAAK,cAAc,EAAG,CAAE,OAAQ,KAAK,OAAQ,WAAY,KAAK,WAAY,UAAW,KAAK,WAAW,UAAW,OAAQ,CAAC,KAAK,iBAAiB,KAAM,aAAc,KAAK,YAAc,EAAC,EACvS,CAACD,EAAY,OAAS74B,GAAgBn+F,EAAO,MAAM,IACnDg3H,EAAY,MAAQ,IAAIhqB,GAAY,CAAE,cAAehtG,EAAO,MAAM,CAAE,GAEjEg3H,CACf,EACIhB,EAAc,UAAU,2BAA6B,SAAUh2H,EAAQ,CAC/DA,EAAO,SACP,KAAK,iBAAiB,gBACtB,CAACA,EAAO,UACP,CAACA,EAAO,MAAQ,OAAO,KAAKA,EAAO,IAAI,EAAE,SAAW,IACrD,KAAK,WAAW,QAAQ,cAAgB,eACxC,OAAO,OAAOA,EAAQ,CAClB,QAAS,GACT,cAAeooH,GAAc,OAC7C,CAAa,EACD,KAAK,WAAW,UAE5B,EACW4N,CACX,ICpSO,SAASkB,GAAY1I,EAAUzoH,EAAS,CAC3C,IAAIklH,EAAS2J,GAAgB7uH,GAAY,KAA6B,OAASA,EAAQ,MAAM,EAC7F2vH,GAAmBlH,EAAU+G,GAAa,QAAQ,EAClD,IAAIzzH,EAAKm0H,WAAS,CACd,OAAQ,GACR,QAAS,GACT,OAAQhL,CAChB,CAAK,EAAGjrH,EAAS8B,EAAG,CAAC,EAAGq1H,EAAYr1H,EAAG,CAAC,EAChC6Q,EAAM2xB,SAAO,CACb,OAAQtkC,EACR,WAAY,EACZ,UAAW,GACX,OAAQirH,EACR,SAAUuD,EACV,QAASzoH,CACjB,CAAK,EAEG,OAAO,OAAO4M,EAAI,QAAS,CAAE,OAAQs4G,EAAQ,QAASllH,EAAS,SAAUyoH,CAAU,GAEvF,IAAIrjB,EAAUmrB,cAAY,SAAUc,EAAgB,CAC5CA,IAAmB,SAAUA,EAAiB,CAAE,GACpD,IAAIt1H,EAAK6Q,EAAI,QAAS5M,EAAUjE,EAAG,QAAS0sH,EAAW1sH,EAAG,SACtDu1H,EAAcz4H,EAASA,EAAS,CAAE,EAAEmH,CAAO,EAAG,CAAE,SAAUyoH,CAAQ,CAAE,EACpEvD,EAASmM,EAAe,QAAUzkH,EAAI,QAAQ,OAC9C,CAACA,EAAI,QAAQ,OAAO,SAAW,CAAC0kH,EAAY,eAAiB1kH,EAAI,QAAQ,WACzEwkH,EAAUxkH,EAAI,QAAQ,OAAS,CAC3B,QAAS,GACT,MAAO,OACP,KAAM,OACN,OAAQ,GACR,OAAQs4G,CACxB,CAAa,EAEL,IAAI+D,EAAa,EAAEr8G,EAAI,QAAQ,WAC3B2kH,EAAgB/tB,GAAa8tB,EAAaD,CAAc,EAC5D,OAAOnM,EAAO,OAAOqM,CAAa,EAAE,KAAK,SAAU1tB,EAAU,CACzD,IAAI9nG,EACAkU,EAAO4zF,EAAS,KAAMxrB,EAASwrB,EAAS,OACxClpG,EAAQ09E,GAAUA,EAAO,OAAS,EAChC,IAAI4uB,GAAY,CAAE,cAAe5uB,EAAQ,EACzC,OACN,GAAI4wC,IAAer8G,EAAI,QAAQ,YAC3B,CAAC2kH,EAAc,cAAe,CAC9B,IAAIjS,EAAW,CACX,OAAQ,GACR,QAAS,GACT,KAAMrvG,EACN,MAAOtV,EACP,OAAQuqH,CAC5B,EACoBt4G,EAAI,QAAQ,WAAa,CAACw/F,GAAMx/F,EAAI,QAAQ,OAAQ0yG,CAAQ,GAC5D8R,EAAUxkH,EAAI,QAAQ,OAAS0yG,CAAQ,CAE9C,CACD,IAAIkS,EAAcH,EAAe,eAAiBt1H,EAAK6Q,EAAI,QAAQ,WAAa,MAAQ7Q,IAAO,OAAS,OAASA,EAAG,aACpH,OAAAy1H,GAAgB,MAA0CA,EAAY3tB,EAAS,KAAM0tB,CAAa,EAC3F1tB,CACnB,CAAS,EAAE,MAAM,SAAUlpG,EAAO,CACtB,IAAIoB,EACJ,GAAIktH,IAAer8G,EAAI,QAAQ,YAC3BA,EAAI,QAAQ,UAAW,CACvB,IAAI6kH,EAAW,CACX,QAAS,GACT,MAAO92H,EACP,KAAM,OACN,OAAQ,GACR,OAAQuqH,CAC5B,EACqB9Y,GAAMx/F,EAAI,QAAQ,OAAQ6kH,CAAQ,GACnCL,EAAUxkH,EAAI,QAAQ,OAAS6kH,CAAQ,CAE9C,CACD,IAAIvrH,EAAUmrH,EAAe,WAAat1H,EAAK6Q,EAAI,QAAQ,WAAa,MAAQ7Q,IAAO,OAAS,OAASA,EAAG,SAC5G,GAAImK,EACA,OAAAA,EAAQvL,EAAO42H,CAAa,EACrB,CAAE,KAAM,OAAQ,OAAQ52H,CAAK,EAExC,MAAMA,CAClB,CAAS,CACJ,EAAE,CAAE,GACDqoB,EAAQutG,cAAY,UAAY,CAC5B3jH,EAAI,QAAQ,WACZwkH,EAAU,CAAE,OAAQ,GAAO,QAAS,GAAO,OAAQlM,CAAM,CAAE,CAElE,EAAE,CAAE,GACL1mF,mBAAU,UAAY,CAClB,OAAA5xB,EAAI,QAAQ,UAAY,GACjB,UAAY,CACfA,EAAI,QAAQ,UAAY,EACpC,CACK,EAAE,CAAE,GACE,CAACw4F,EAASvsG,EAAS,CAAE,MAAOmqB,CAAO,EAAE/oB,CAAM,CAAC,CACvD,CChGO,SAASiqG,GAAWwtB,EAAQ,CAC/B,OAAO,IAAIjtB,GAAW,SAAU7W,EAAW2W,EAAS,CAChD,IAAIM,EAAU7rG,GAAO40F,EAAW,CAAE,GAClC,OAAO,IAAImP,GAAW,SAAUY,EAAU,CACtC,IAAIg0B,EACAC,EAAS,GACb,eAAQ,QAAQ/sB,CAAO,EAClB,KAAK,SAAUgtB,EAAK,CAAE,OAAOH,EAAOG,EAAKjkC,EAAU,YAAY,EAAI,EACnE,KAAKA,EAAU,UAAU,EACzB,KAAK,UAAY,CACdgkC,IAEJD,EAASptB,EAAQ3W,CAAS,EAAE,UAAU,CAClC,KAAM+P,EAAS,KAAK,KAAKA,CAAQ,EACjC,MAAOA,EAAS,MAAM,KAAKA,CAAQ,EACnC,SAAUA,EAAS,SAAS,KAAKA,CAAQ,CAC7D,CAAiB,EACjB,CAAa,EACI,MAAMA,EAAS,MAAM,KAAKA,CAAQ,CAAC,EACjC,UAAY,CACfi0B,EAAS,GACLD,GACAA,EAAO,YAAW,CACtC,CACA,CAAS,CACT,CAAK,CACL,CC1BO,SAASzrH,GAAQ4rH,EAAc,CAClC,OAAO,IAAIrtB,GAAW,SAAU7W,EAAW2W,EAAS,CAChD,OAAO,IAAIxH,GAAW,SAAUY,EAAU,CACtC,IAAI2D,EACAywB,EACAC,EACJ,GAAI,CACA1wB,EAAMiD,EAAQ3W,CAAS,EAAE,UAAU,CAC/B,KAAM,SAAU3zF,EAAQ,CACpB,GAAIA,EAAO,SACP+3H,EAAgBF,EAAa,CACzB,cAAe73H,EAAO,OACtB,SAAUA,EACV,UAAW2zF,EACX,QAAS2W,CACzC,CAA6B,EACGytB,GAAe,CACfD,EAAaC,EAAc,UAAU,CACjC,KAAMr0B,EAAS,KAAK,KAAKA,CAAQ,EACjC,MAAOA,EAAS,MAAM,KAAKA,CAAQ,EACnC,SAAUA,EAAS,SAAS,KAAKA,CAAQ,CAC7E,CAAiC,EACD,MACH,CAELA,EAAS,KAAK1jG,CAAM,CACvB,EACD,MAAO,SAAUmtG,EAAc,CAS3B,GARA4qB,EAAgBF,EAAa,CACzB,UAAWlkC,EACX,aAAcwZ,EACd,cAAeA,GACXA,EAAa,QACbA,EAAa,OAAO,OACxB,QAAS7C,CACrC,CAAyB,EACGytB,EAAe,CACfD,EAAaC,EAAc,UAAU,CACjC,KAAMr0B,EAAS,KAAK,KAAKA,CAAQ,EACjC,MAAOA,EAAS,MAAM,KAAKA,CAAQ,EACnC,SAAUA,EAAS,SAAS,KAAKA,CAAQ,CACzE,CAA6B,EACD,MACH,CACDA,EAAS,MAAMyJ,CAAY,CAC9B,EACD,SAAU,UAAY,CACb4qB,GACDr0B,EAAS,SAAS,KAAKA,CAAQ,EAAC,CAEvC,CACrB,CAAiB,CACJ,OACM5tH,EAAG,CACN+hJ,EAAa,CAAE,aAAc/hJ,EAAG,UAAW69G,EAAW,QAAS2W,CAAO,CAAE,EACxE5G,EAAS,MAAM5tH,CAAC,CACnB,CACD,OAAO,UAAY,CACXuxH,GACAA,EAAI,YAAW,EACfywB,GACAzwB,EAAI,YAAW,CACnC,CACA,CAAS,CACT,CAAK,CACL,EACiB,SAAUr1F,EAAQ,CAC/BtT,GAAUs5H,EAAWhmH,CAAM,EAC3B,SAASgmH,EAAUH,EAAc,CAC7B,IAAIt1H,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjC,OAAAzP,EAAM,KAAO0J,GAAQ4rH,CAAY,EAC1Bt1H,CACV,CACD,OAAAy1H,EAAU,UAAU,QAAU,SAAUrkC,EAAW2W,EAAS,CACxD,OAAO,KAAK,KAAK,QAAQ3W,EAAW2W,CAAO,CACnD,EACW0tB,CACX,GAAExtB,EAAU,EChFZ;AAAA;AAAA;AAAA,GAIA,IAAI1oG,GACAm2H,GAAY,YAKZ/1B,GAAc,cAKdg2B,GAAY,YAKZC,GAAc,WAKdC,GAAmB,gBAKnBC,GAAc,cAKdC,GAAe,YAKfC,GAAqB,WAKrBC,GAAgB,cAKhBC,GAAqBD,GAIrBE,GAAyB,UAKzBC,GAAe,YAKfC,GAAa,YAIbC,GAAoB,OAASD,GAI7BE,GAAyB,iBAIzBC,GAAkB,gBAKlBC,GAAiB,cAKjBC,GAAkB,eAClBC,GAAM,OAKNC,GAAqBD,GAAI,eAIzBE,GAAkBF,GAAI,oBAK1B,SAASG,IAAa,CAClB,IAAIr5H,EACJ,OAAI,OAAO,aAAei4H,KACtBj4H,EAAS,YAET,CAACA,GAAU,OAAO,OAASi4H,KAC3Bj4H,EAAS,MAET,CAACA,GAAU,OAAO,SAAWi4H,KAC7Bj4H,EAAS,QAET,CAACA,GAAU,OAAO,SAAWi4H,KAC7Bj4H,EAAS,QAENA,GAAU,EACrB,CAGA,IAAIs5H,GAAOD,GAAU,EACjBE,GAAWD,GAAKR,EAAsB,IAAMQ,GAAKR,EAAsB,EAAI,CAC3E,GAAIh3H,GAAK,CAAE,EACPA,GAAGm3H,EAAe,EAAI,GACtBn3H,GAAGk3H,EAAc,EAAI,GACrBl3H,IACJ,EAAG,GACP,GAKA,SAAS03H,GAAgBvmH,EAAKjL,EAAM,CAChC,OAAOiL,GAAOimH,GAAIhB,EAAS,EAAE,eAAe,KAAKjlH,EAAKjL,CAAI,CAC9D,CAKA,SAASyxH,GAA0Bv6H,EAAQ,CACvC,OAAOA,IAAWA,IAAWg6H,GAAIhB,EAAS,GAAKh5H,IAAW,MAAMg5H,EAAS,EAC7E,CAKA,SAASwB,GAAkCx6H,EAAQ,CAC/C,OAAOu6H,GAA0Bv6H,CAAM,GAAKA,IAAW,SAASg5H,EAAS,CAC7E,CAKA,SAASyB,GAAaz6H,EAAQ,CAC1B,IAAI06H,EACJ,GAAI16H,EAAQ,CAER,GAAIi6H,GACA,OAAOA,GAAmBj6H,CAAM,EAEpC,IAAI26H,EAAW36H,EAAO05H,EAAU,GAAK15H,EAAOg5H,EAAS,IAAMh5H,EAAOgjG,EAAW,EAAIhjG,EAAOgjG,EAAW,EAAEg2B,EAAS,EAAI,MAElH0B,EAAW16H,EAAO25H,EAAiB,GAAKgB,EACnCL,GAAgBt6H,EAAQ25H,EAAiB,IAG1C,OAAO35H,EAAO65H,EAAe,EAC7Ba,EAAW16H,EAAO25H,EAAiB,EAAI35H,EAAO65H,EAAe,GAAK75H,EAAO25H,EAAiB,EAC1F35H,EAAO65H,EAAe,EAAIc,EAEjC,CACD,OAAOD,CACX,CAMA,SAASE,GAAa56H,EAAQuN,EAAM,CAChC,IAAIiF,EAAQ,GACZ,GAAI0nH,GACA1nH,EAAQ0nH,GAAgBl6H,CAAM,MAG9B,SAAS8G,KAAU9G,EACX,OAAO8G,GAAW,UAAYwzH,GAAgBt6H,EAAQ8G,CAAM,GAC5D0L,EAAM,KAAK1L,CAAM,EAI7B,GAAI0L,GAASA,EAAM,OAAS,EACxB,QAASqoH,EAAK,EAAGA,EAAKroH,EAAM,OAAQqoH,IAChCttH,EAAKiF,EAAMqoH,CAAE,CAAC,CAG1B,CASA,SAASC,GAAoB96H,EAAQ+6H,EAAUC,EAAS,CACpD,OAAQD,IAAa/3B,IAAe,OAAOhjG,EAAO+6H,CAAQ,IAAM9B,KAAgB+B,GAAWV,GAAgBt6H,EAAQ+6H,CAAQ,EAC/H,CAMA,SAASE,GAAgB5oH,EAAS,CAC9B,MAAM,IAAI,UAAU,iBAAmBA,CAAO,CAClD,CAOA,SAAS6oH,GAAkBC,EAAY,CAEnC,IAAIC,EAAY,GAEhB,OAAAR,GAAaO,EAAY,SAAUl1H,EAAM,CAEjC,CAACm1H,EAAUn1H,CAAI,GAAK60H,GAAoBK,EAAYl1H,EAAM,EAAK,IAE/Dm1H,EAAUn1H,CAAI,EAAIk1H,EAAWl1H,CAAI,EAE7C,CAAK,EACMm1H,CACX,CAMA,SAASC,GAAYhmC,EAAQ70F,EAAO,CAChC,QAASq6H,EAAKxlC,EAAO,OAAS,EAAGwlC,GAAM,EAAGA,IACtC,GAAIxlC,EAAOwlC,CAAE,IAAMr6H,EACf,MAAO,GAGf,MAAO,EACX,CAOA,SAAS86H,GAAcC,EAAYJ,EAAYC,EAAWI,EAAa,CACnE,SAASC,EAAez7H,EAAQ07H,EAAUX,EAAU,CAChD,IAAIY,EAAUD,EAASX,CAAQ,EAC/B,GAAIY,EAAQxC,EAAW,GAAKqC,EAAa,CAErC,IAAII,EAAgB57H,EAAOk5H,EAAgB,GAAK,GAC5C0C,EAAcrC,EAAkB,IAAM,KACtCoC,GAAWC,EAAcF,EAAStC,EAAY,CAAC,GAAK,CAAE,GAAE2B,CAAQ,GAAKY,EAE5E,CACD,OAAO,UAAY,CAEf,OAAOA,EAAQ,MAAM37H,EAAQ,SAAS,CAClD,CACK,CAED,IAAI67H,EAAY,GAChBjB,GAAaQ,EAAW,SAAUn1H,EAAM,CAEpC41H,EAAU51H,CAAI,EAAIw1H,EAAeN,EAAYC,EAAWn1H,CAAI,CACpE,CAAK,EAKD,QAHI61H,EAAYrB,GAAac,CAAU,EACnCQ,EAAU,GAEPD,GAAa,CAACtB,GAAkCsB,CAAS,GAAK,CAACT,GAAYU,EAASD,CAAS,GAEhGlB,GAAakB,EAAW,SAAU71H,EAAM,CAKhC,CAAC41H,EAAU51H,CAAI,GAAK60H,GAAoBgB,EAAW71H,EAAM,CAACg0H,EAAkB,IAE5E4B,EAAU51H,CAAI,EAAIw1H,EAAeN,EAAYW,EAAW71H,CAAI,EAE5E,CAAS,EAID81H,EAAQ,KAAKD,CAAS,EACtBA,EAAYrB,GAAaqB,CAAS,EAEtC,OAAOD,CACX,CACA,SAASG,GAAah8H,EAAQ+6H,EAAUhwC,EAAOkxC,EAAsB,CACjE,IAAIC,EAAW,KAGf,GAAIl8H,GAAUs6H,GAAgBvvC,EAAOquC,EAAY,EAAG,CAChD,IAAIwC,EAAgB57H,EAAOk5H,EAAgB,GAAK,GAQhD,GAPAgD,GAAYN,EAAc7wC,EAAMquC,EAAY,CAAC,GAAK,IAAI2B,CAAQ,EACzDmB,GAEDjB,GAAgB,YAAcF,EAAW,KAAO9B,EAAW,EAI3D,CAACiD,EAAS5C,EAAa,GAAKsC,EAAcrC,EAAkB,IAAM,GAAO,CAQzE,QANI4C,EAAa,CAAC7B,GAAgBt6H,EAAQ+6H,CAAQ,EAE9CqB,EAAW3B,GAAaz6H,CAAM,EAC9B+7H,EAAU,GAGPI,GAAcC,GAAY,CAAC5B,GAAkC4B,CAAQ,GAAK,CAACf,GAAYU,EAASK,CAAQ,GAAG,CAC9G,IAAIC,EAAYD,EAASrB,CAAQ,EACjC,GAAIsB,EAAW,CACXF,EAAcE,IAAcJ,EAC5B,KACH,CAEDF,EAAQ,KAAKK,CAAQ,EACrBA,EAAW3B,GAAa2B,CAAQ,CACnC,CACD,GAAI,CACID,IAGAn8H,EAAO+6H,CAAQ,EAAImB,GAGvBA,EAAS5C,EAAa,EAAI,CAC7B,MACS,CAGNsC,EAAcrC,EAAkB,EAAI,EACvC,CACJ,CACJ,CACD,OAAO2C,CACX,CACA,SAASI,GAAcvB,EAAUhwC,EAAOkxC,EAAsB,CAC1D,IAAII,EAAYtxC,EAAMgwC,CAAQ,EAE9B,OAAIsB,IAAcJ,IAEdI,EAAY5B,GAAa1vC,CAAK,EAAEgwC,CAAQ,GAExC,OAAOsB,IAAcpD,IACrBgC,GAAgB,IAAMF,EAAW,cAAgB9B,EAAW,EAEzDoD,CACX,CAUA,SAASE,GAAmBxxC,EAAOtnF,EAAWzD,EAAQw8H,EAAeC,EAAiB,CAClF,SAASC,EAAwB3xC,EAAOgwC,EAAU,CAC9C,IAAI4B,EAAgB,UAAY,CAE5B,IAAIT,EAAWF,GAAa,KAAMjB,EAAUhwC,EAAO4xC,CAAa,GAAKL,GAAcvB,EAAUhwC,EAAO4xC,CAAa,EAEjH,OAAOT,EAAS,MAAM,KAAM,SAAS,CACjD,EAGQ,OAAAS,EAAcxD,EAAW,EAAI,EACtBwD,CACV,CACD,GAAI,CAACpC,GAA0BxvC,CAAK,EAAG,CACnC,IAAI6wC,EAAgB57H,EAAOk5H,EAAgB,EAAIl5H,EAAOk5H,EAAgB,GAAK,GACvE0D,EAAchB,EAAcn4H,CAAS,EAAKm4H,EAAcn4H,CAAS,GAAK,GAEtEm4H,EAAcrC,EAAkB,IAAM,KACtCqC,EAAcrC,EAAkB,EAAI,CAAC,CAACkD,GAE1C7B,GAAa56H,EAAQ,SAAUiG,EAAM,CAE7B60H,GAAoB96H,EAAQiG,EAAM,EAAK,GAAKjG,EAAOiG,CAAI,IAAMu2H,EAAcv2H,CAAI,IAE/E22H,EAAY32H,CAAI,EAAIjG,EAAOiG,CAAI,EAC/B,OAAOjG,EAAOiG,CAAI,GAEd,CAACq0H,GAAgBvvC,EAAO9kF,CAAI,GAAM8kF,EAAM9kF,CAAI,GAAK,CAAC8kF,EAAM9kF,CAAI,EAAEkzH,EAAW,KACzEpuC,EAAM9kF,CAAI,EAAIy2H,EAAwB3xC,EAAO9kF,CAAI,GAGrE,CAAS,CACJ,CACL,CAOA,SAAS42H,GAAgBtB,EAAYJ,EAAY,CAE7C,GAAIlB,GAAoB,CAIpB,QAFI8B,EAAU,GACVe,EAAYrC,GAAaU,CAAU,EAChC2B,GAAa,CAACtC,GAAkCsC,CAAS,GAAK,CAACzB,GAAYU,EAASe,CAAS,GAAG,CACnG,GAAIA,IAAcvB,EACd,MAAO,GAIXQ,EAAQ,KAAKe,CAAS,EACtBA,EAAYrC,GAAaqC,CAAS,CACrC,CACD,MAAO,EACV,CAED,MAAO,EACX,CAQA,SAASC,GAAY/8H,EAAQg9H,EAAc,CACvC,OAAI1C,GAAgBt6H,EAAQg5H,EAAS,EAE1Bh5H,EAAO,MAAQg9H,GAAgBvD,KAEhCz5H,GAAU,IAAIgjG,EAAW,GAAM,IAAI,MAAQg6B,GAAgBvD,EACzE,CAqDA,SAASwD,GAAaC,EAAUl9H,EAAQm9H,EAAct2H,EAAS,CAEtDyzH,GAAgB4C,EAAUlE,EAAS,GACpCiC,GAAgB,0CAA0C,EAG9D,IAAIM,EAAa2B,EAASlE,EAAS,EAC9B6D,GAAgBtB,EAAYv7H,CAAM,GACnCi7H,GAAgB,IAAM8B,GAAYG,CAAQ,EAAI,0BAA4BH,GAAY/8H,CAAM,EAAI,GAAG,EAEvG,IAAIyD,EAAY,KACZ62H,GAAgBiB,EAAYnC,EAAY,EAExC31H,EAAY83H,EAAWnC,EAAY,GAMnC31H,EAAY41H,GAAqB0D,GAAYG,EAAU,GAAG,EAAI,IAAM7C,GAAS,EAC7EA,GAAS,IACTkB,EAAWnC,EAAY,EAAI31H,GAE/B,IAAI25H,EAAcH,GAAazD,EAAsB,EACjDgC,EAAc,CAAC,CAAC4B,EAAYtD,EAAc,EAC1C0B,GAAe30H,GAAWA,EAAQizH,EAAc,IAAM,SACtD0B,EAAc,CAAC,CAAC30H,EAAQizH,EAAc,GAG1C,IAAIsB,EAAYF,GAAkBl7H,CAAM,EAEpC67H,EAAYP,GAAcC,EAAYv7H,EAAQo7H,EAAWI,CAAW,EAGxE2B,EAAan9H,EAAQ67H,CAAS,EAE9B,IAAIY,EAAkB,CAAC,CAACxC,IAAsB,CAAC,CAACmD,EAAYrD,EAAe,EACvE0C,GAAmB51H,IACnB41H,EAAkB,CAAC,CAAC51H,EAAQkzH,EAAe,GAG/CwC,GAAmBhB,EAAY93H,EAAWzD,EAAQo7H,EAAWqB,IAAoB,EAAK,CAC1F,CAMAQ,GAAazD,EAAsB,EAAIa,GAAS,EC3hBzC,IAAIgD,GAAkB,WAClBC,GAAgB,SAChBC,GAAmB,YACnBC,GAAmB,YACnBC,GAAwB,iBAExBC,GAAW,OACXC,GAAWD,GAASF,EAAgB,EACpCI,GAAYF,GAAS,OACrBG,GAAYH,GAAS,OACrBI,GAAoBJ,GAAS,eAC7BK,GAAoBJ,GAASF,EAAqB,ECVzDO,GAAgB,KAab,SAASC,GAAUC,EAAW,CAC7BA,IAAc,SAAUA,EAAY,IACxC,IAAIp9H,EAASo9H,IAAc,GAAQ,KAAOF,GAC1C,OAAKl9H,IACG,OAAO,aAAey8H,KACtBz8H,EAAS,YAET,CAACA,GAAU,OAAO,OAASy8H,KAC3Bz8H,EAAS,MAET,CAACA,GAAU,OAAO,SAAWy8H,KAC7Bz8H,EAAS,QAET,CAACA,GAAU,OAAO,SAAWy8H,KAC7Bz8H,EAAS,QAEbk9H,GAAgBl9H,GAEbA,CACX,CACO,SAASq9H,GAAe9rH,EAAS,CACpC,MAAM,IAAI,UAAUA,CAAO,CAC/B,CAOO,SAAS+rH,GAAYrqH,EAAK,CAC7B,IAAIxG,EAAOswH,GAEX,GAAItwH,EAEA,OAAOA,EAAKwG,CAAG,EAEnB,GAAIA,GAAO,KACP,MAAO,GAEX,IAAI+vD,EAAO,OAAO/vD,EACd+vD,IAASw5D,IAAiBx5D,IAASu5D,IACnCc,GAAe,0CAA4CpqH,CAAG,EAElE,SAASsqH,GAAU,CAAG,CACtB,OAAAA,EAAQb,EAAgB,EAAIzpH,EACrB,IAAIsqH,CACf,ECrDwBJ,GAAW,GAAI,CAAE,GAAE,QAClBA,GAAW,GAAI,CAAE,GAAE,QAOrC,IAAIK,GAAoB,SAAUxoJ,EAAG,CAExC,QAAS6pB,EAAGC,EAAI,EAAG,EAAI,UAAU,OAAQA,EAAI,EAAGA,IAAK,CACjDD,EAAI,UAAUC,CAAC,EACf,QAASjqB,KAAKgqB,EACNg+H,GAASF,EAAqB,EAAE,KAAK99H,EAAGhqB,CAAC,IACzCG,EAAEH,CAAC,EAAIgqB,EAAEhqB,CAAC,EAGrB,CACD,OAAOG,CACX,EACWyoJ,GAAaX,IAAaU,GAEjCE,GAAkB,SAAUnnJ,EAAGV,EAAG,CAClC,OAAA6nJ,GAAkBd,GAAS,gBAEtB,CAAE,UAAW,EAAI,YAAY,OAAS,SAAUrmJ,EAAGV,EAAG,CACnDU,EAAE,UAAYV,CAC1B,GAEQ,SAAUU,EAAGV,EAAG,CACZ,QAAShB,KAAKgB,EACNA,EAAE8mJ,EAAqB,EAAE9nJ,CAAC,IAC1B0B,EAAE1B,CAAC,EAAIgB,EAAEhB,CAAC,EAG9B,EACW6oJ,GAAgBnnJ,EAAGV,CAAC,CAC/B,EACO,SAAS8nJ,GAAYpnJ,EAAGV,EAAG,CAC1B,OAAOA,IAAM0mJ,IAAmB1mJ,IAAM,MACtCwnJ,GAAe,uBAAyB,OAAOxnJ,CAAC,EAAI,+BAA+B,EAEvF6nJ,GAAgBnnJ,EAAGV,CAAC,EACpB,SAAS8oB,GAAK,CACV,KAAK,YAAcpoB,CACtB,CAEDA,EAAEmmJ,EAAgB,EAAI7mJ,IAAM,KAAOynJ,GAAYznJ,CAAC,GAAK8oB,EAAG+9H,EAAgB,EAAI7mJ,EAAE6mJ,EAAgB,EAAG,IAAI/9H,EACzG,CAkIO,SAASi/H,GAAgBh9H,EAAIC,EAAM,CACtC,QAAS/B,EAAI,EAAG/B,EAAK8D,EAAK,OAAQwnF,EAAIznF,EAAG,OAAQ9B,EAAI/B,EAAI+B,IAAKupF,IAC1DznF,EAAGynF,CAAC,EAAIxnF,EAAK/B,CAAC,EAElB,OAAO8B,CACX,CCnLO,IAAIi9H,GAAkB,aAClBC,GAAY,OACZC,GAAsB,eACtBC,GAAkB,aAClBC,GAAY,OACZC,GAAsB,gBACtBC,GAAc,SACdC,GAA2B,qBAC3BC,GAAc,SACdC,GAAc,SACdC,GAAY,OACZC,GAAoB,cACpBC,GAA6B,uBAC7BC,GAA6B,0BAC7BC,GAA6B,6BAC7BC,GAA6B,0BAC7BC,GAAmB,aACnBC,GAAkB,YAClBC,GAAa,QACbC,GAAmB,cACnBC,GAAc,SACdC,GAAgB,WAChBC,GAAkB,YAClBC,GAAe,UACfC,GAAgB,UAChBC,GAAoB,cACpBC,GAAc,SACdC,GAAgB,UAChBC,GAAgB,UAChBC,GAAuB,gBACvBC,GAAkB,YAClBC,GAAkB,YAClBC,GAAgB,UAChBC,GAAiB,YACjBC,GAAkB,YAClBC,GAAa,QACbC,GAAmB,aACnBC,GAAc,SACdC,GAAiB,WACjBC,GAAa,QACbC,GAAe,UACfC,GAA6B,wBAC7BC,GAA4B,qBAC5BC,GAAqB,cACrBC,GAAY,OACZC,GAAY,OACZC,GAAe,UACfC,GAAiB,YACjBC,GAAoB,aACpBC,GAAe,SACfC,GAAe,SACfC,GAAgB,WAChBC,GAAgB,UAChBC,GAAe,SACfC,GAAmB,aACnBC,GAAe,UC3DfC,GAAY,GACZC,GAAe,WACfC,GAAW,OACXC,GAAsB,gBACtBC,GAAe,WACfC,GAAuB,kBACvBC,GAAiB,aACjBC,GAAwB,mBACxBC,GAAe,WACfC,GAAkB,aAClBC,GAAuB,kBACvBC,GAA0B,oBAC1BC,GAAiB,YACjBC,GAAuB,iBACvBC,GAAsB,gBACtBC,GAAmB,aCb1BC,GAAiB,cACjBC,GAAe,WAEfC,GAAa,UACbC,GAAS,MACTC,GAAY,SACZC,GAAW,OACXC,GAAc,WAKd/J,GAAa,YAKbgK,GAAiB,cACjBC,GAAqB7F,GACrB8F,GAAalG,GAAS,OAEtBmG,GAAWnG,GAAS,KACpBoG,GAAc,OAAOtG,EAAgB,EACrCuG,GAAWD,GAAYN,EAAQ,EAC/BQ,GAAeF,GAAYV,EAAY,EAEvCa,GAAY,KAAKzG,EAAgB,EACjC0G,GAAmBD,GAAUd,EAAc,EAC3CgB,GAAW,MAAM,QACjBC,GAAezG,GAAS8F,EAAW,EACnCY,GAActG,GAAkB0F,EAAW,EAE3Ca,GAAqBD,GAAY9C,EAA6B,EAAC7D,EAAQ,EACvE6G,GAAa,YACbC,GAAoB,eACpBC,GAAkB,iBAKlBxK,GAAqB,OAAO,eAKzB,SAASQ,GAAaz6H,EAAQ,CACjC,GAAIA,EAAQ,CAER,GAAIi6H,GACA,OAAOA,GAAmBj6H,CAAM,EAGpC,IAAI06H,EAAW16H,EAAO05H,EAAU,GAAK15H,EAAOw9H,EAAgB,GAAKx9H,EAAO0jI,EAAc,EACtF,GAAIhJ,EACA,OAAOA,CAEd,CACD,OAAO,IACX,CAOO,SAASgK,GAAYlkI,EAAO,CAC/B,OAAOA,IAAU,QAAa,OAAOA,IAAU+8H,EACnD,CAIO,SAASoH,GAAkBnkI,EAAO,CACrC,OAAQA,IAAU,MAAQkkI,GAAYlkI,CAAK,CAC/C,CACO,SAASokI,GAAqBpkI,EAAO,CACxC,MAAO,CAACmkI,GAAkBnkI,CAAK,CACnC,CACO,SAASohG,GAAe7tF,EAAKjL,EAAM,CACtC,MAAO,CAAC,EAAEiL,GAAOgqH,GAAkBwD,EAAS,EAAqBxtH,EAAKjL,CAAI,EAC9E,CACO,SAAS+7H,GAASrkI,EAAO,CAE5B,MAAO,CAAC,EAAEA,GAAS,OAAOA,IAAU88H,GACxC,CACO,SAASwH,GAAWtkI,EAAO,CAE9B,MAAO,CAAC,EAAEA,GAAS,OAAOA,IAAU68H,GACxC,CAWO,SAAS0H,GAAgB9+H,EAAM,CAClC,IAAIzF,EAAQyF,EACZ,OAAIzF,GAASwkI,GAASxkI,CAAK,IAEvBA,EAAQA,EAAM2gI,EAAY,EAAwBoD,GAAY,SAAUU,EAAMC,EAAQ,CAClF,OAAOA,EAAO,aAC1B,CAAS,EACD1kI,EAAQA,EAAM2gI,EAAmC,EAACqD,GAAmB,GAAG,EACxEhkI,EAAQA,EAAM2gI,EAAY,EAAwBsD,GAAiB,SAAUQ,EAAMl9H,EAAO,CACtF,MAAO,IAAMA,CACzB,CAAS,GAEEvH,CACX,CAOO,SAAS2kI,GAAcnlI,EAAQolI,EAAY,CAC9C,GAAIplI,EACA,QAAS8I,KAAQ9I,EACT+9H,GAAkBwD,EAAS,EAAqBvhI,EAAQ8I,CAAI,GAC5Ds8H,EAAW7D,EAAS,EAAqBvhI,EAAQ8I,EAAM9I,EAAO8I,CAAI,CAAC,CAInF,CAOO,SAASu8H,GAAY7kI,EAAOs0E,EAAQ,CACvC,IAAIh0E,EAAS,GACb,OAAIN,GAASs0E,GAAU,EAAEh0E,EAASN,IAAUs0E,KAExCh0E,EAASkjI,GAAexjI,EAAM4iI,EAAY,EAAEtuD,CAAM,EAAIwwD,GAAiB9kI,EAAOs0E,CAAM,GAEjFh0E,CACX,CAOO,SAASwkI,GAAiB9kI,EAAOs0E,EAAQ,CAC5C,IAAIh0E,EAAS,GACTykI,EAAYzwD,EAASA,EAAOsqD,EAAW,EAAyB,EAChEoG,EAAShlI,EAAQA,EAAM4+H,EAAW,EAAyB,EAC/D,GAAImG,GAAaC,GAAUA,GAAUD,GAAa,EAAEzkI,EAASN,IAAUs0E,GAAS,CAE5E,QADIj7C,EAAM2rG,EAAS,EACV3K,EAAK0K,EAAY,EAAG1K,GAAM,EAAGA,IAAM,CACxC,GAAIr6H,EAAMq5B,CAAG,GAAKi7C,EAAO+lD,CAAE,EACvB,MAAO,GAEXhhG,GACH,CACD/4B,EAAS,EACZ,CACD,OAAOA,CACX,CAwCO,SAAS2kI,GAAYjlI,EAAOs0E,EAAQ,CACvC,OAAIt0E,GAASs0E,EACFt0E,EAAMmgI,EAAa,EAAwB7rD,CAAM,IAAM,GAE3D,EACX,CAWO,IAAIpwD,GAAUy/G,IAAYuB,GACjC,SAASA,GAAa3xH,EAAK,CACvB,MAAO,CAAC,EAAEA,GAAOqwH,GAAa7C,EAAS,EAAqBxtH,CAAG,IAAM,iBACzE,CAIO,SAASokC,GAAQpkC,EAAK,CACzB,MAAO,CAAC,EAAEA,GAAOqwH,GAAa7C,EAAS,EAAqBxtH,CAAG,IAAM,iBACzE,CAMO,SAASixH,GAASxkI,EAAO,CAE5B,OAAO,OAAOA,GAAU,QAC5B,CAMO,SAASmlI,GAASnlI,EAAO,CAE5B,OAAO,OAAOA,GAAU,QAC5B,CAMO,SAASolI,GAAUplI,EAAO,CAE7B,OAAO,OAAOA,GAAU,SAC5B,CAcO,SAASqlI,GAAcrlI,EAAO,CACjC,IAAIM,EAAS,GACb,GAAIN,GAAS,OAAOA,GAAU,SAAU,CAEpC,IAAIuqF,EAAQkvC,GAAqBA,GAAmBz5H,CAAK,EAAIi6H,GAAaj6H,CAAK,EAC1EuqF,GAMGA,EAAM24C,EAAc,GAAK3F,GAAkBwD,IAA8Bx2C,EAAO24C,EAAc,IAC9F34C,EAAQA,EAAM24C,EAAc,GAEhC5iI,EAAS,OAAOiqF,IAAUsyC,IAAmBgH,GAAY9C,IAA8Bx2C,CAAK,IAAMu5C,IAPlGxjI,EAAS,EAShB,CACD,OAAOA,CACX,CAIO,SAASglI,GAAYC,EAAM,CAC9B,GAAIA,EAEA,OAAO7B,GAAmB6B,EAAK5C,EAAc,EAAC,EAAK6C,GAAiBD,CAAI,CAEhF,CAIO,SAASC,GAAiBD,EAAM,CACnC,GAAIA,GAAQA,EAAK,eAAgB,CAC7B,IAAIE,EAAM,SAAUC,EAAK,CACrB,IAAIrwJ,EAAI,OAAOqwJ,CAAG,EAClB,OAAIrwJ,EAAEupJ,EAAiC,IAAK,IACxCvpJ,EAAI,IAAMA,GAEPA,CACnB,EACQ,OAAOkwJ,EAAK,eAAgB,EACtB,IAAME,EAAIF,EAAK,YAAW,EAAK,CAAC,EAChC,IAAME,EAAIF,EAAK,YAAY,EAC3B,IAAME,EAAIF,EAAK,aAAa,EAC5B,IAAME,EAAIF,EAAK,eAAe,EAC9B,IAAME,EAAIF,EAAK,eAAe,EAC9B,IAAM,QAAQA,EAAK,mBAAkB,EAAK,KAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAG,CAAC,EACtE,GACT,CACL,CASO,SAASI,GAAWxjC,EAAKyiC,EAAYhlI,EAAS,CACjD,IAAIgT,EAAMuvF,EAAIy8B,IACd,GAAI,CACA,QAASxvF,EAAM,EAAGA,EAAMx8B,GAChB,EAAAw8B,KAAO+yD,GACHyiC,EAAW7D,IAA8BnhI,GAAWuiG,EAAKA,EAAI/yD,CAAG,EAAGA,EAAK+yD,CAAG,IAAM,IAFhE/yD,IACzB,CAMP,MACS,CAET,CACL,CASO,SAASw2F,GAAWzjC,EAAK0jC,EAAejwH,EAAW,CACtD,GAAIusF,EAAK,CAEL,GAAIA,EAAI0gC,EAAU,EACd,OAAO1gC,EAAI0gC,EAAU,EAAEgD,EAAejwH,CAAS,EAEnD,IAAIhD,EAAMuvF,EAAIy8B,IACVz9H,EAAOyU,GAAa,EACxB,GAAI,CACA,QAASykH,EAAK,KAAK,IAAIl5H,GAAQ,EAAIA,EAAOyR,EAAM,KAAK,IAAIzR,CAAI,EAAG,CAAC,EAAGk5H,EAAKznH,EAAKynH,IAC1E,GAAIA,KAAMl4B,GAAOA,EAAIk4B,CAAE,IAAMwL,EACzB,OAAOxL,CAGlB,MACS,CAET,CACJ,CACD,MAAO,EACX,CASO,SAASyL,GAAO3jC,EAAKyiC,EAAYhlI,EAAS,CAC7C,IAAImT,EACJ,GAAIovF,EAAK,CAEL,GAAIA,EAAI2gC,EAAM,EACV,OAAO3gC,EAAI2gC,EAAM,EAAE8B,EAAYhlI,CAAO,EAE1C,IAAIgT,EAAMuvF,EAAIy8B,IACV/7H,EAAQjD,GAAWuiG,EACvBpvF,EAAU,IAAI,MAAMH,CAAG,EACvB,GAAI,CACA,QAASynH,EAAK,EAAGA,EAAKznH,EAAKynH,IACnBA,KAAMl4B,IACNpvF,EAAQsnH,CAAE,EAAIuK,EAAW7D,EAAS,EAAqBl+H,EAAOs/F,EAAIk4B,CAAE,EAAGl4B,CAAG,EAGrF,MACS,CAET,CACJ,CACD,OAAOpvF,CACX,CASO,SAASgzH,GAAU5jC,EAAKyiC,EAAY1hG,EAAc,CACrD,IAAIljC,EACJ,GAAImiG,EAAK,CAEL,GAAIA,EAAI4gC,EAAS,EACb,OAAO5gC,EAAI4gC,EAAS,EAAE6B,EAAY1hG,CAAY,EAElD,IAAItwB,EAAMuvF,EAAIy8B,IACVvE,EAAK,EAET,GAAI,UAAUuE,EAAiC,GAAI,EAC/C5+H,EAAQ,UAAU,CAAC,MAElB,CACD,KAAOq6H,EAAKznH,GAAO,EAAEynH,KAAMl4B,IACvBk4B,IAEJr6H,EAAQmiG,EAAIk4B,GAAI,CACnB,CACD,KAAOA,EAAKznH,GACJynH,KAAMl4B,IACNniG,EAAQ4kI,EAAW5kI,EAAOmiG,EAAIk4B,CAAE,EAAGA,EAAIl4B,CAAG,GAE9Ck4B,GAEP,CACD,OAAOr6H,CACX,CAIO,SAASgmI,GAAQz2C,EAAK,CACzB,OAAIA,IAEAA,EAAOg0C,IAAYh0C,EAAIyzC,EAAQ,EAAKzzC,EAAIyzC,EAAQ,EAAG,EAAIzzC,EAAIoxC,EAAY,EAA0BpxC,EAAIoxC,EAAY,EAAwB,mBAAoBgB,EAAS,EAAIpyC,GAEvKA,CACX,CACA,IAAI02C,GAAyB,CAAE,CAAE,SAAU,IAAI,EAAI,qBAAqB,UAAU,EAC9EC,GAAoB,CACpB,WACA,iBACA,UACA,iBACA,gBACA,uBACA,aACJ,EAOO,SAASC,GAAQ5yH,EAAK,CACzB,IAAI6yH,EAAU,OAAO7yH,EAKrB,GAJI6yH,IAAYvJ,KAAoBuJ,IAAYtJ,IAAiBvpH,IAAQ,OACrEoqH,GAAe,8BAA8B,EAG7C,CAACsI,IAA0B5C,GAC3B,OAAOA,GAAS9vH,CAAG,EAEvB,IAAIjT,EAAS,GACb,QAASgI,KAAQiL,EACTA,GAAOgqH,GAAkBwD,EAA6B,EAACxtH,EAAKjL,CAAI,GAChEhI,EAAOi+H,IAA8Bj2H,CAAI,EAGjD,GAAI29H,GAEA,QADII,EAAkBH,GAAkBtH,IAC/BvE,EAAK,EAAGA,EAAKgM,EAAiBhM,IAC/B9mH,GAAOgqH,GAAkBwD,EAAS,EAAqBxtH,EAAK2yH,GAAkB7L,CAAE,CAAC,GACjF/5H,EAAOi+H,EAA6B,EAAC2H,GAAkB7L,CAAE,CAAC,EAItE,OAAO/5H,CACX,CAWO,SAASgmI,GAAmB9mI,EAAQ8I,EAAMi+H,EAASC,EAAS,CAC/D,GAAIrD,GACA,GAAI,CACA,IAAI7gC,EAAa,CACb,WAAY,GACZ,aAAc,EAC9B,EACY,OAAIikC,IACAjkC,EAAW,IAAMikC,GAEjBC,IACAlkC,EAAW,IAAMkkC,GAErBrD,GAAmB3jI,EAAQ8I,EAAMg6F,CAAU,EACpC,EACV,MACS,CAGT,CAEL,MAAO,EACX,CACA,SAASmkC,GAAWzmI,EAAO,CACvB,OAAOA,CACX,CACO,SAASqmG,GAAW9yF,EAAK,CAC5B,OAAI6vH,IACAuB,GAAcpxH,EAAK,SAAU9N,EAAMzF,EAAO,EAClCkkB,GAAQlkB,CAAK,GAAKqkI,GAASrkI,CAAK,IAChCojI,GAAWpjI,CAAK,CAEhC,CAAS,EAEE0mI,GAAUnzH,CAAG,CACxB,CACO,IAAImzH,GAAYtD,IAAcqD,GAM9B,SAASE,IAAU,CACtB,IAAIC,EAAK,KACT,OAAOA,EAAG,IAAMA,EAAG,IAAK,EAAG,IAAIA,EAAE,EAAG,SACxC,CAIO,SAASC,GAAiB/zC,EAAQ,CACrC,OAAIn7C,GAAQm7C,CAAM,EACPA,EAAOsrC,IAEXuD,EACX,CAWO,SAASp/G,GAAS/iB,EAAQg7E,EAAOx6E,EAAO8mI,EAAQC,EAAQ,CAC3D,IAAIC,EAAWhnI,EACf,OAAIR,IACAwnI,EAAWxnI,EAAOg7E,CAAK,EACnBwsD,IAAahnI,IAAU,CAAC+mI,GAAUA,EAAOC,CAAQ,KAAO,CAACF,GAAUA,EAAO9mI,CAAK,KAC/EgnI,EAAWhnI,EACXR,EAAOg7E,CAAK,EAAIwsD,IAGjBA,CACX,CAOO,SAASC,GAAYznI,EAAQg7E,EAAO0sD,EAAU,CACjD,IAAIF,EACJ,OAAIxnI,GACAwnI,EAAWxnI,EAAOg7E,CAAK,EACnB,CAACwsD,GAAY7C,GAAkB6C,CAAQ,IAEvCA,EAAY9C,GAAYgD,CAAQ,EAAe,GAAXA,EACpC1nI,EAAOg7E,CAAK,EAAIwsD,IAKpBA,EAAY9C,GAAYgD,CAAQ,EAAe,GAAXA,EAEjCF,CACX,CAMO,SAASG,GAAYH,EAAU1yH,EAAc,CAChD,OAAQ6vH,GAAkB6C,CAAQ,EAAe1yH,EAAX0yH,CAC1C,CAIO,SAASI,GAASpnI,EAAO,CAC5B,MAAO,CAAC,CAACA,CACb,CACO,SAASqnI,GAAWx1H,EAAS,CAChC,MAAM,IAAI,MAAMA,CAAO,CAC3B,CACA,SAASy1H,GAAqBlmH,EAAQm5G,EAAU,CAC5C,IAAIgN,EAAU,KACVzxF,EAAM,KACV,OAAIwuF,GAAWljH,CAAM,EACjBmmH,EAAUnmH,EAGV00B,EAAM10B,EAEH,UAAY,CAEf,IAAIomH,EAAoB,UAIxB,GAHID,IACAzxF,EAAMyxF,EAAO,GAEbzxF,EACA,OAAOA,EAAIykF,CAAQ,EAAEmG,EAAU,EAAsB5qF,EAAK0xF,CAAiB,CAEvF,CACA,CAgBO,SAASC,GAAYjoI,EAAQ4hB,EAAQsmH,EAAQ,CAChD,GAAIloI,GAAU4hB,GAAUijH,GAAS7kI,CAAM,GAAK6kI,GAASjjH,CAAM,EAAG,CAC1D,IAAI3W,EAAU,SAAU+vE,EAAO,CAC3B,GAAIgqD,GAAShqD,CAAK,EAAG,CACjB,IAAIx6E,EAAQohB,EAAOo5D,CAAK,EACpB8pD,GAAWtkI,CAAK,GACZ,CAAC0nI,GAAUA,EAAOltD,EAAO,GAAMp5D,EAAQ5hB,CAAM,KAE7CA,EAAOg7E,CAAK,EAAI8sD,GAAqBlmH,EAAQo5D,CAAK,IAGjD,CAACktD,GAAUA,EAAOltD,EAAO,GAAOp5D,EAAQ5hB,CAAM,KAC/C4hG,GAAe5hG,EAAQg7E,CAAK,GAE5B,OAAOh7E,EAAOg7E,CAAK,EAElB8rD,GAAmB9mI,EAAQg7E,EAAO,UAAY,CAC/C,OAAOp5D,EAAOo5D,CAAK,CACtB,EAAE,SAAUwsD,EAAU,CACnB5lH,EAAOo5D,CAAK,EAAIwsD,CACxC,CAAqB,IAIGxnI,EAAOg7E,CAAK,EAAIx6E,GAG3B,CACb,EAEQ,QAASw6E,KAASp5D,EACd3W,EAAQ+vE,CAAK,CAEpB,CACD,OAAOh7E,CACX,CAUO,SAASmoI,GAAgBnoI,EAAQiG,EAAM2b,EAAQ+5G,EAASyM,EAAiB,CACxEpoI,GAAUiG,GAAQ2b,IACdwmH,IAAoB,IAAS1D,GAAY1kI,EAAOiG,CAAI,CAAC,KACrDjG,EAAOiG,CAAI,EAAI6hI,GAAqBlmH,EAAQ+5G,CAAO,EAG/D,CASO,SAAS0M,GAAeroI,EAAQ4hB,EAAQ0mH,EAAkBF,EAAiB,CAC9E,OAAIpoI,GAAU4hB,GAAUijH,GAAS7kI,CAAM,GAAK0kB,GAAQ4jH,CAAgB,GAChEnC,GAAWmC,EAAkB,SAAUC,EAAa,CAC5CvD,GAASuD,CAAW,GACpBJ,GAAgBnoI,EAAQuoI,EAAa3mH,EAAQ2mH,EAAaH,CAAe,CAEzF,CAAS,EAEEpoI,CACX,CAMO,SAASwoI,GAAyBl+B,EAAU,CAC/C,OAAsB,UAAY,CAC9B,SAASm+B,GAAU,CACf,IAAIC,EAAU,KACVp+B,GACA66B,GAAc76B,EAAU,SAAUtvB,EAAOx6E,EAAO,CAC5CkoI,EAAQ1tD,CAAK,EAAIx6E,CACrC,CAAiB,CAER,CACD,OAAOioI,CACf,GACA,CAQO,SAASE,GAAeC,EAAW,CAGtC,OAAIA,GAAahL,KACbgL,EAAYlL,GAASE,GAAU,GAAIgL,CAAS,CAAC,GAE1CA,CACX,CACO,SAASC,GAAUC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAM,CAE1D,IAAIC,EAAU,UACVC,EAAWD,EAAQ,CAAC,GAAK,GACzBE,EAASF,EAAQhK,IACjBmK,EAAO,GACP35F,EAAM,EAYV,IAVI05F,EAAS,GAAK1D,GAAUyD,CAAQ,IAChCE,EAAOF,EACPA,EAAWD,EAAQx5F,CAAG,GAAK,GAC3BA,KAGCi1F,GAASwE,CAAQ,IAClBA,EAAW,IAGRz5F,EAAM05F,EAAQ15F,IAAO,CACxB,IAAI7qC,EAAMqkI,EAAQx5F,CAAG,EACjB45F,EAAa9kH,GAAQ3f,CAAG,EACxB0kI,EAAW5E,GAAS9/H,CAAG,EAC3B,QAAS+D,KAAQ/D,EAAK,CAClB,IAAI2kI,EAAUF,GAAe1gI,KAAQ/D,GAAU0kI,GAAa1L,GAAkBwD,EAAS,EAAqBx8H,EAAK+D,CAAI,EACrH,GAAK4gI,EAGL,KAAIrjH,EAAWthB,EAAI+D,CAAI,EACnB6gI,EAAa,OAEjB,GAAIJ,GAAQljH,KAAcsjH,EAAajlH,GAAQ2B,CAAQ,IAAMw/G,GAAcx/G,CAAQ,GAAI,CAEnF,IAAIujH,EAAQP,EAASvgI,CAAI,EACrB6gI,EACKjlH,GAAQklH,CAAK,IAEdA,EAAQ,IAGN/D,GAAc+D,CAAK,IAEzBA,EAAQ,IAGZvjH,EAAWwiH,GAAUU,EAAMK,EAAOvjH,CAAQ,CAC7C,CAEGA,IAAa,SACbgjH,EAASvgI,CAAI,EAAIud,GAExB,CACJ,CACD,OAAOgjH,CACX,CCnyBO,SAASQ,GAAgBx0C,EAAQ,CACpC,IAAIy0C,EAAY,GAChB,OAAA3E,GAAc9vC,EAAQ,SAAUra,EAAOx6E,EAAO,CAC1CspI,EAAU9uD,CAAK,EAAIx6E,EACnBspI,EAAUtpI,CAAK,EAAIw6E,CAC3B,CAAK,EACM6rB,GAAWijC,CAAS,CAC/B,CAuBO,SAASC,GAAe10C,EAAQ,CACnC,IAAI20C,EAAW,GACf,OAAA7E,GAAc9vC,EAAQ,SAAUra,EAAOx6E,EAAO,CAC1CwpI,EAAShvD,CAAK,EAAIx6E,EAAM,CAAC,EACzBwpI,EAASxpI,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,CACpC,CAAK,EACMqmG,GAAWmjC,CAAQ,CAC9B,CChCA,IAAIC,GAAY,SACZC,GAAc,WACdC,GAAkB,eAClBC,GAAe,YACfC,GAAa,UACbC,GAAc,WACdC,GAAa,UACbC,GAAiB,cACjBC,GAAU,OACVC,GAAY,SACZC,GAAc,WACdC,GAAiB,cACjBC,GAAU,OACVC,GAAa,WACbC,GAAoB,iBACpBC,GAAa,KACbC,GAAqB,KACrBC,GAAe,GACfC,GAAqB,KACrBC,GAAoB,KACxB,SAASC,GAAanO,EAAU98G,EAAU,CACtC,IAAIkrH,EAAY,GAChB,GAAIpO,EAAU,CACV,GAAI,CAEA,GADAoO,EAAYlrH,KAAY88G,EACpB,CAACoO,EAAW,CACZ,IAAIvgD,EAAQmyC,EAASM,EAAgB,EACjCzyC,IACAugD,EAAYlrH,KAAY2qE,EAE/B,CACJ,MACS,CAET,CACD,GAAI,CAACugD,EACD,GAAI,CACA,IAAIC,EAAM,IAAIrO,EACdoO,EAAY,CAAC5G,GAAY6G,EAAInrH,CAAQ,CAAC,CACzC,MACS,CAET,CAER,CACD,OAAOkrH,CACX,CAYO,SAASE,GAAcvlI,EAAM,CAChC,IAAIwlI,EAAMxN,KACV,OAAIwN,GAAOA,EAAIxlI,CAAI,EACRwlI,EAAIxlI,CAAI,EAGfA,IAASgkI,IAAayB,KAEf,OAEJ,IACX,CAQO,SAASA,IAAY,CACxB,MAAO,GAAQ,OAAO,SAAWpO,IAAiB,OACtD,CAMO,SAAS3wH,IAAY,CACxB,OAAI++H,GAAS,EACF,OAGJF,GAAcvB,EAAS,CAClC,CAQO,SAAS0B,IAAc,CAC1B,MAAO,GAAQ,OAAO,WAAarO,IAAiB,SACxD,CAMO,SAAS1sH,IAAc,CAC1B,OAAI+6H,GAAW,EACJ,SAEJH,GAActB,EAAW,CACpC,CAQO,SAAS0B,IAAe,CAC3B,MAAO,GAAQ,OAAO,YAActO,IAAiB,UACzD,CAMO,SAASuO,IAAe,CAC3B,OAAID,GAAY,EACL,UAEJJ,GAAcpB,EAAY,CACrC,CAQO,SAAS0B,IAAa,CACzB,MAAO,GAAQ,OAAO,UAAYxO,IAAiB,QACvD,CAMO,SAASyO,IAAa,CACzB,OAAID,GAAU,EACH,QAEJN,GAAcnB,EAAU,CACnC,CAMO,SAASt0D,GAAYi2D,EAAc,CACtC,GAAIA,GAAgBd,GAAc,CAC9B,IAAIe,EAAeT,GAAc,gBAAgB,EACjD,GAAIS,EACA,OAAOA,CAEd,CACD,OAAI,OAAO,WAAa3O,IAAiB,SAC9B,SAEJkO,GAAclB,EAAW,CACpC,CAIO,SAAS4B,IAAa,CACzB,OAAI,OAAO,UAAY3O,GACZ,QAEJiO,GAAcjB,EAAU,CACnC,CAMO,SAAS4B,IAAiB,CAC7B,OAAOX,GAAchB,EAAc,CACvC,CAQO,SAAS4B,IAAU,CACtB,MAAO,GAAS,OAAO,OAAS9O,IAAiB,MAASkO,GAAcf,EAAO,IAAM,KACzF,CAMO,SAAS4B,IAAU,CACtB,OAAID,GAAO,EACA,MAAQZ,GAAcf,EAAO,EAEjC,IACX,CAMO,SAAS6B,IAAY,CACxB,OAAOd,GAAcd,EAAS,CAClC,CAMO,SAAS6B,IAAc,CAC1B,OAAOf,GAAcb,EAAW,CACpC,CAIO,SAAS6B,IAAgB,CAE5B,IAAI5mI,EAAMimI,KACV,OAAIjmI,GAAOA,EAAI,QACJA,EAAI,UAAYglI,GAEpB,EACX,CAIO,SAAS6B,IAAO,CACnB,IAAI7mI,EAAMimI,KACV,GAAIjmI,IAAQA,EAAIi7H,EAAe,IAA8BoK,IAAsBD,KAAe,MAAO,CAErGC,GAAqBrlI,EAAIi7H,IACzB,IAAIh7H,GAAaolI,IAAsB9I,IAAWb,EAA6C,IAC/F0J,GAAcvF,GAAY5/H,EAAWglI,EAAO,GAAKpF,GAAY5/H,EAAWilI,EAAU,CACrF,CACD,OAAOE,EACX,CAIO,SAAS0B,GAAaC,EAAc,CAEvC,GADIA,IAAiB,SAAUA,EAAe,MAC1C,CAACA,EAAc,CACf,IAAIC,EAAcf,GAAc,GAAI,GACpCc,EAAeC,GAAeA,EAAY/L,EAAwC,GAAIsB,IAAWb,IAA+C,EAAGa,EACtJ,CACD,IAAInoJ,GAAM2yJ,GAAgBxK,IAAWb,EAA6C,IAElF,GAAImE,GAAYzrJ,EAAI6wJ,EAAO,EAAG,CAC1B,IAAIllI,EAAMiL,GAAa,GAAI,GAC3B,OAAO,KAAK,IAAI,SAAS52B,EAAG8mJ,EAAU,EAAsB+J,EAAO,EAAE,CAAC,CAAC,EAAIllI,EAAIwkI,EAAe,GAAK,CAAC,CACvG,SACQ1E,GAAYzrJ,EAAI8wJ,EAAU,EAAG,CAClC,IAAI+B,EAAa,SAAS7yJ,EAAG8mJ,EAA+B,EAACgK,EAAU,EAAE,CAAC,CAAC,EAC3E,GAAI+B,EACA,OAAOA,EAAa,CAE3B,CACD,OAAO,IACX,CAIO,SAASC,GAAQx5C,EAAQ,CAC5B,IAAIy5C,EAAiB,OAAOvP,EAAgB,EAAE,SAAS+D,EAAS,EAAqBjuC,CAAM,EACvF05C,EAAoB7K,GACxB,OAAI4K,IAAmB,iBACnBC,EAAoB,aAAe15C,EAAO,MAAQ,gBAAkBA,EAAO,QAAU,aAAeA,EAAOsrC,EAAS,EAAuB,IAEtIwN,GAAO,IACZY,EAAoBX,GAAO,EAAG,UAAU/4C,CAAM,GAE3Cy5C,EAAiBC,CAC5B,CAaO,SAASC,IAAqB,CACjC,OAAI7B,KAAsB,OACtBA,GAAoBQ,GAAY,GAAM,EAAQC,GAAc,EAAC,YAE1DT,EACX,CAMO,SAAS8B,GAAiBC,EAAe,CAC5C,IAAIC,EAAc,GAClB,GAAI,CACAA,EAAc,CAAC,CAAC5B,GAAc,OAAO,EACrC,IAAI9/B,EAAU8/B,GAAc,SAAS,EACjC4B,GAAeD,GAAiBzhC,IAChC0hC,EAAc/B,GAAa3/B,EAAS,WAAW,EAEtD,MACS,CAET,CACD,OAAO0hC,CACX,CACO,SAASC,IAAoB,CAChC,OAAIlC,KAAuB,OACvBA,GAAsB,OAAO,iBAAmB5N,GAC5C4N,IAAsBmC,OACtBnC,GAAqBA,IAAsB,CAACE,GAAaG,GAAcT,EAAiB,EAAG,iBAAiB,IAG7GI,EACX,CAKO,SAASmC,IAAiB,CAC7B,IAAIF,EAAc,GAClB,GAAI,CACA,IAAIG,EAAiB/B,GAAcT,EAAiB,EACpDqC,EAAc,CAAC,CAACG,CACnB,MACS,CAET,CACD,OAAOH,CACX,CCpWA,IAAII,GAAgB,CAAC,aAAc,kBAAmB,oBAAqB,WAAW,EAClFC,GAAe,KACfC,GACJ,SAASC,GAAmB1nI,EAAMvD,EAAQ,CACtC,OAAO,UAAY,CACf,IAAIgB,EAAO,UACPkqI,EAASC,GAAYnrI,CAAM,EAC/B,GAAIkrI,EAAQ,CACR,IAAIx3D,EAAWw3D,EAAO,SAClBx3D,GAAYA,EAASnwE,CAAI,GACzBmwE,EAASnwE,CAAI,EAAEi7H,EAA+B,EAAC9qD,EAAU1yE,CAAI,CAEpE,CACT,CACA,CACA,SAASoqI,IAAyB,CAE9B,IAAI9tI,EAASwrI,GAAc,WAAW,EACtC,OAAIxrI,IACAytI,GAAeztI,EAAO,qBAEnBytI,EACX,CACO,SAASI,GAAYnrI,EAAQ,CAChC,IAAIqrI,EAAKN,GACT,MAAI,CAACM,GAAMrrI,EAAO,gBAAkB,KAChCqrI,EAAKN,IAAgBK,MAElBC,EAAKA,EAAG,aAAkB,IACrC,CACO,SAASC,GAAiBtrI,EAAQ,CACrC,GAAI,CAACgrI,GAAgB,CACjBA,GAAiB,GACjB,QAAS7S,EAAK,EAAGA,EAAK2S,GAAcpO,EAAW,EAAwBvE,IACnE6S,GAAeF,GAAc3S,CAAE,CAAC,EAAI8S,GAAmBH,GAAc3S,CAAE,EAAGn4H,CAAM,CAEvF,CACD,OAAOgrI,EACX,CC9BA,IAAIO,GAA4B,kBAI5BC,GAAyB,OAIzBC,GAA0B,QAC9B,SAASC,GAAwB9wF,EAAM,CACnC,OAAIA,EACO,IAAOA,EAAK6jF,EAAY,EAAwB,MAAOgB,EAAS,EAAI,IAExEA,EACX,CACA,SAASkM,GAAc9gI,EAAM8E,EAAS,CAClC,IAAIi8H,EAAapC,KACjB,GAAMoC,EAAY,CACd,IAAIC,EAAU,MACVD,EAAW/gI,CAAI,IACfghI,EAAUhhI,GAEVu3H,GAAWwJ,EAAWC,CAAO,CAAC,GAC9BD,EAAWC,CAAO,EAAEl8H,CAAO,CAElC,CACL,CACA,IAAIm8H,GAAqC,UAAY,CACjD,SAASA,EAAoBC,EAAOC,EAAKC,EAAW5uH,EAAY,CACxD4uH,IAAc,SAAUA,EAAY,IACxC,IAAIC,EAAQ,KACZA,EAAM3O,EAAwC,EAAGwO,EACjDG,EAAM1O,EAAmC,GACpCyO,EAAYT,GAAyBD,IAClCQ,EACR,IAAII,EAAW1M,GACXiK,GAAO,IACPyC,EAAWxC,GAAO,EAAG,UAAUtsH,CAAU,GAE7C,IAAI+uH,GAAkBJ,EAAM,YAAcN,GAAwBM,CAAG,EAAIvM,KACpEpiH,EAAa,UAAYquH,GAAwBS,CAAQ,EAAI1M,IAClEyM,EAAM1O,EAAmC,GAAI4O,CAChD,CACD,OAAAN,EAAoB,SAAW,cACxBA,CACX,EAAC,EAEM,SAASO,GAAcC,EAAMtsI,EAAQ,CACxC,OAAQssI,GAAQ,IAAI7P,EAAiC,GAAI,IAAI8P,GAAiBvsI,CAAM,CACxF,CACA,IAAIusI,GAAkC,UAAY,CAC9C,SAASA,EAAiBvsI,EAAQ,CAC9B,KAAK,WAAa,mBAIlB,KAAK,MAAQ,GAIb,IAAIwsI,EAAgB,EAIhBC,EAAiB,GACjBC,EACAC,EACAC,EACAC,EACJtS,GAAagS,EAAkB,KAAM,SAAUL,EAAO,CAClDY,EAAuB9sI,GAAU,EAAE,EACnCksI,EAAM,oBAAsB,UAAY,CAAE,OAAOQ,CAAqB,EACtER,EAAM,sBAAwB,UAAY,CAAE,OAAOS,CAAuB,EAC1ET,EAAM,wBAA0B,UAAY,CAAE,OAAOU,CAAyB,EAC9EV,EAAMxN,EAA+D,EAAG,UAAY,CAAE,OAAOmO,CAAuB,EAMpHX,EAAM,cAAgB,SAAUa,EAAUhB,EAAOC,EAAK3uH,EAAY4uH,EAAW,CACrEA,IAAc,SAAUA,EAAY,IACxC,IAAIt8H,EAAU,IAAIm8H,GAAoBC,EAAOC,EAAKC,EAAW5uH,CAAU,EACvE,GAAIwvH,EACA,MAAMzC,GAAQz6H,CAAO,EAIrB,IAAIk8H,EAAUkB,IAAa,EAAoCzM,GAAuBC,GACtF,GAAKyB,GAAYryH,EAAQ6tH,EAAmC,GAkBxDwP,EAAa,SAAWD,IAAa,EAAoC,WAAa,WAAYp9H,CAAO,MAlB9C,CAC3D,GAAIs8H,EAAW,CAEX,IAAIgB,EAAa,CAACt9H,EAAQ4tH,IACtB,CAACkP,EAAeQ,CAAU,GAAKP,GAAwBK,IACvDb,EAAML,CAAO,EAAEl8H,EAAQ6tH,EAAmC,GAC1DiP,EAAeQ,CAAU,EAAI,GAEpC,MAGOP,GAAwBK,GACxBb,EAAML,CAAO,EAAEl8H,EAAQ6tH,EAAmC,GAGlE0P,EAAoBH,EAAUp9H,CAAO,CACxC,CAKrB,EAKYu8H,EAAM3L,IAAmD,SAAU5wH,EAAS,CACxEg8H,GAAc,OAAQh8H,CAAO,EAC7Bq9H,EAAa,UAAWr9H,CAAO,CAC/C,EAKYu8H,EAAM5L,IAAqD,SAAU3wH,EAAS,CAC1Eg8H,GAAc,QAASh8H,CAAO,EAC9Bq9H,EAAa,QAASr9H,CAAO,CAC7C,EAIYu8H,EAAM,0BAA4B,UAAY,CAC1CM,EAAgB,EAChBC,EAAiB,EACjC,EAMYP,EAAMvN,EAA2D,EAAGuO,EACpE,SAASA,EAAoBH,EAAUp9H,EAAS,CAC5C,GAAI,CAAAw9H,EAA6B,EAIjC,KAAIC,EAAa,GACbH,EAAaxB,GAA0B97H,EAAQ4tH,EAAe,EAQlE,GANIkP,EAAeQ,CAAU,EACzBG,EAAa,GAGbX,EAAeQ,CAAU,EAAI,GAE7BG,IAEIL,GAAYJ,IACZT,EAAM,MAAM7P,EAA6B,EAAC1sH,CAAO,EACjD68H,IACAQ,EAAcD,IAAa,EAAoC,QAAU,OAASp9H,CAAO,GAGzF68H,IAAkBI,GAA0B,CAC5C,IAAIS,EAAuB,oEACvBC,EAAkB,IAAIxB,GAAoB,GAAwDuB,EAAsB,EAAK,EACjInB,EAAM,MAAM7P,EAA6B,EAACiR,CAAe,EACrDP,IAAa,EACbb,EAAM5L,IAAmD+M,CAAoB,EAG7EnB,EAAM3L,IAAiD8M,CAAoB,CAElF,EAER,CACD,SAASP,EAAuB9sI,EAAQ,CACpC0sI,EAAuBzH,GAAYjlI,EAAO,oBAAqB,CAAC,EAChE2sI,EAAyB1H,GAAYjlI,EAAO,sBAAuB,CAAC,EACpE4sI,EAA2B3H,GAAYjlI,EAAO,gBAAiB,EAAE,EACjE6sI,EAAyB5H,GAAYjlI,EAAO0+H,EAA+D,EAAE,EAAK,CACrH,CACD,SAASyO,GAAgC,CACrC,OAAOX,GAAiBI,CAC3B,CACD,SAASI,EAAazpI,EAAM6Q,EAAM,CAC9B,IAAI82H,EAASC,GAAYnrI,GAAU,CAAE,GACjCkrI,GAAUA,EAAOrN,KACjBqN,EAAOrN,EAAa,EAAwBt6H,EAAM6Q,CAAI,CAE7D,CACb,CAAS,CACJ,CAaD,OAAAm4H,EAAiB,QAAQ,EAElBA,CACX,EAAC,EAED,SAASgB,GAAWC,EAAQ,CACxB,OAAQA,GAAU,IAAIjB,EAC1B,CAUO,SAASkB,GAAeD,EAAQT,EAAUhB,EAAOC,EAAK3uH,EAAY4uH,EAAW,CAC5EA,IAAc,SAAUA,EAAY,IACxCsB,GAAWC,CAAM,EAAE,cAAcT,EAAUhB,EAAOC,EAAK3uH,EAAY4uH,CAAS,CAChF,CAMO,SAASyB,GAAeF,EAAQ79H,EAAS,CAC5C49H,GAAWC,CAAM,EAAEjN,EAAgD,EAAC5wH,CAAO,CAC/E,CAOO,SAASu9H,GAAoBM,EAAQT,EAAUp9H,EAAS,CAC3D49H,GAAWC,CAAM,EAAE7O,EAA2D,EAACoO,EAAUp9H,CAAO,CACpG,CCvPA,IAAIg+H,GAAyB,MACzBC,GAAsB,mBACtBC,GAAwB,qBACxBC,GAAsB,KACtBC,GAA2B,UAAY,CACvC,SAASA,EAAUxqI,EAAMyqI,EAAgBC,EAAS,CAC9C,IAAI/B,EAAQ,KACRgC,EAAkB,GAKtB,GAJAhC,EAAM,MAAQzH,KACdyH,EAAMhQ,EAA6B,EAAG34H,EACtC2oI,EAAMzO,EAAoC,EAAGwQ,EAC7C/B,EAAMjN,EAA2C,EAAG,UAAY,CAAE,MAAO,EAAM,EAC3EmD,GAAW4L,CAAc,EAAG,CAE5B,IAAIG,EACJD,EAAkB9J,GAAmB8H,EAAO,UAAW,UAAY,CAE/D,MAAI,CAACiC,GAAgB/L,GAAW4L,CAAc,IAC1CG,EAAeH,EAAc,EAE7BA,EAAiB,MAEdG,CACvB,CAAa,CACJ,CACDjC,EAAMhN,IAAqC,SAAU3hI,EAAK,CACtD,OAAIA,EAEIA,IAAQwwI,EAAUH,EAAmB,GAAKrwI,IAAQwwI,EAAUF,EAAqB,EAC1E3B,EAAM3uI,CAAG,GAEZ2uI,EAAMyB,EAAsB,GAAK,CAAE,GAAEpwI,CAAG,EAE7C,IACnB,EACQ2uI,EAAM/M,EAAY,EAAyB,SAAU5hI,EAAKO,EAAO,CAC7D,GAAIP,EAEA,GAAIA,IAAQwwI,EAAUH,EAAmB,EAEhC1B,EAAM3uI,CAAG,IACV2uI,EAAMjN,EAA2C,EAAG,UAAY,CAAE,MAAO,EAAK,GAElFiN,EAAM3uI,CAAG,EAAIO,UAERP,IAAQwwI,EAAUF,EAAqB,EAC5C3B,EAAM3uI,CAAG,EAAIO,MAEZ,CACD,IAAIm/E,EAAMivD,EAAMyB,EAAsB,EAAIzB,EAAMyB,EAAsB,GAAK,GAC3E1wD,EAAI1/E,CAAG,EAAIO,CACd,CAEjB,EACQouI,EAAM9M,EAAa,EAA2B,UAAY,CACtD,IAAIgP,EAAY,EACZC,EAAYnC,EAAMhN,EAAkC,EAAC6O,EAAUF,EAAqB,CAAC,EACzF,GAAI7rH,GAAQqsH,CAAS,EACjB,QAASlW,EAAK,EAAGA,EAAKkW,EAAU3R,EAAW,EAAwBvE,IAAM,CACrE,IAAImW,EAAWD,EAAUlW,CAAE,EACvBmW,IACAF,GAAaE,EAAS3R,IAE7B,CAELuP,EAAMvP,EAA6B,EAAG8H,GAAO,EAAKyH,EAAM,MACxDA,EAAM,OAASA,EAAMvP,EAAS,EAAuByR,EACrDlC,EAAM9M,IAAwC,UAAY,GACtD,CAAC8O,GAAmB9L,GAAW4L,CAAc,IAE7C9B,EAAM,QAAU8B,IAEhC,CACK,CACD,OAAAD,EAAU,iBAAmB,SAC7BA,EAAU,mBAAqB,YACxBA,CACX,EAAC,EAEGQ,GAA6B,UAAY,CACzC,SAASA,EAAYC,EAAS,CAK1B,KAAK,IAAM,GACXjU,GAAagU,EAAa,KAAM,SAAUrC,EAAO,CAC7CA,EAAM,OAAS,SAAUt4F,EAAKo6F,EAAgBC,EAAS,CAGnD,OAAO,IAAIF,GAAUn6F,EAAKo6F,EAAgBC,CAAO,CACjE,EACY/B,EAAM,KAAO,SAAUuC,EAAW,CAC1BA,IACAA,EAAUrP,EAAa,IACnBoP,GAAWpM,GAAWoM,EAAQnO,EAAuC,IACrEmO,EAAQnO,IAAwCoO,CAAS,EAGjF,EACYvC,EAAM/M,EAAY,EAAyB,SAAU5hI,EAAKO,EAAO,CAC7D,GAAIP,EAAK,CACL,IAAI0/E,EAAMivD,EAAMyB,EAAsB,EAAIzB,EAAMyB,EAAsB,GAAK,GAC3E1wD,EAAI1/E,CAAG,EAAIO,CACd,CACjB,EACYouI,EAAMhN,IAAqC,SAAU3hI,EAAK,CACtD,OAAQ2uI,EAAMyB,EAAsB,GAAK,CAAE,GAAEpwI,CAAG,CAChE,CACA,CAAS,CACJ,CAQD,OAAAgxI,EAAY,QAAQ,EAEbA,CACX,EAAC,EAEGG,GAAkB,mBASf,SAASC,GAAOC,EAAWC,EAAWhkI,EAAMikI,EAASb,EAAS,CACjE,GAAIW,EAAW,CACX,IAAIG,EAAUH,EAKd,GAJIG,EAAQvO,EAAgB,IAExBuO,EAAUA,EAAQvO,EAAgB,KAElCuO,EAAS,CACT,IAAIC,EAAU,OACVC,EAAgBF,EAAQ7P,EAAkC,EAACwP,EAAe,EAC9E,GAAI,CAEA,GADAM,EAAUD,EAAQ,OAAOF,EAAS,EAAIC,EAASb,CAAO,EAClDe,EAAS,CACT,GAAIC,GAAiBD,EAAQ7P,MACzB6P,EAAQ7P,EAAY,EAAuB4O,GAAUH,EAAmB,EAAGqB,CAAa,EACpFA,EAAc/P,EAAY,GAA0B+P,EAAc9P,EAAY,GAAwB,CACtG,IAAIr6F,EAAWmqG,EAAc/P,EAAkC,EAAC6O,GAAUF,EAAqB,CAAC,EAC3F/oG,IACDA,EAAW,GACXmqG,EAAc9P,EAAY,EAAuB4O,GAAUF,EAAqB,EAAG/oG,CAAQ,GAE/FA,EAASu3F,IAA8B2S,CAAO,CACjD,CAGL,OAAAD,EAAQ5P,EAAY,EAAuBuP,GAAiBM,CAAO,EAC5DnkI,EAAKmkI,CAAO,CACtB,CACJ,OACME,EAAI,CACHF,GAAWA,EAAQ7P,KACnB6P,EAAQ7P,EAAY,EAAuB,YAAa+P,CAAE,CAEjE,QACO,CAEAF,GACAD,EAAQ,KAAKC,CAAO,EAGxBD,EAAQ5P,EAAY,EAAuBuP,GAAiBO,CAAa,CAC5E,CACJ,CACJ,CACD,OAAOpkI,EAAI,CACf,CAYO,SAASskI,IAAgB,CAC5B,OAAOrB,EACX,CC/LA,IAAIsB,GAAa,WACbC,GAAY,WAEZC,GAAa,GACbC,GAAQ,UACRC,GAAQ,UAEZ,SAASC,GAASC,EAAW,CACrBA,EAAY,IAEZA,KAAe,GAEnBH,GAAS,UAAYG,EAAaL,GAClCG,GAAS,UAAYE,EAAaL,GAClCC,GAAa,EACjB,CACA,SAASK,IAAe,CAGpB,GAAI,CACA,IAAIrkI,EAAMm5H,GAAS,EAAG,WACtBgL,IAAW,KAAK,OAAQ,EAAGL,GAAc9jI,GAAOA,CAAG,CACtD,MACS,CAET,CACL,CAgBO,SAASskI,GAASC,EAAQ,CAC7B,IAAI/xI,EAAQ,EACRlpB,EAAIg1J,MAAeC,KACvB,OAAIj1J,GAAKA,EAAE,kBAEPkpB,EAAQlpB,EAAE,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAIy6J,IAEnDvxI,IAAU,GAAKisI,OAEVuF,IAEDK,KAIJ7xI,EAAQgyI,GAAa,EAAGT,IAExBvxI,IAAU,IAEVA,EAAQ,KAAK,MAAOsxI,GAAa,KAAK,OAAM,EAAM,CAAC,GAElDS,IAED/xI,KAAW,GAERA,CACX,CAmBO,SAASgyI,GAAYD,EAAQ,CAChCL,GAAS,OAASA,GAAQ,QAAWA,IAAS,IAAOH,GACrDE,GAAS,MAASA,GAAQ,QAAWA,IAAS,IAAOF,GACrD,IAAIvxI,GAAW0xI,IAAS,KAAOD,GAAQ,SAAa,EAAKF,GAAY,EACrE,OAAKQ,IAED/xI,KAAW,GAERA,CACX,CAMO,SAASiyI,GAAMC,EAAW,CACzBA,IAAc,SAAUA,EAAY,IAMxC,QALIC,EAAc,mEAEdC,EAASN,GAAU,IAAK,EACxBO,EAAQ,EACR/xI,EAASqhI,GACNrhI,EAAOs+H,EAAiC,EAAGsT,GAC9CG,IACA/xI,GAAU6xI,EAAY,OAAOC,EAAS,EAAI,EAC1CA,KAAY,EACRC,IAAU,IAGVD,GAAYN,MAAc,EAAK,WAAeM,EAAS,KAAW,EAClEC,EAAQ,GAGhB,OAAO/xI,CACX,CCxHA,IAAI6iI,GAAqB7F,GACrB5xB,GAAU,QACV4mC,GAAe,IAAML,GAAM,CAAC,EAC5BM,GAAW,EACf,SAASC,GAAgBhzI,EAAQ8I,EAAMtI,EAAO,CAC1C,GAAImjI,GACA,GAAI,CACA,OAAAA,GAAmB3jI,EAAQ8I,EAAM,CAC7B,MAAOtI,EACP,WAAY,GACZ,aAAc,EAC9B,CAAa,EACM,EACV,MACS,CAGT,CAEL,MAAO,EACX,CAOA,SAASyyI,GAAejzI,EAAQ,CAC5B,OAAOA,EAAOihI,MAA2C,GAAKjhI,EAAOihI,MAA2C,GAAK,CAAE,CAACjhI,EAAOihI,EAAsC,CACzK,CACA,SAASiS,GAAUp8H,EAAM9W,EAAQ,CAC7B,IAAImzI,EAAWnzI,EAAO8W,EAAK,EAAE,EAC7B,GAAI,CAACq8H,EAAU,CACXA,EAAW,GACX,GAAI,CACIF,GAAejzI,CAAM,IAChBgzI,GAAgBhzI,EAAQ8W,EAAK,GAAIq8H,CAAQ,IAE1CnzI,EAAO8W,EAAK,EAAE,EAAIq8H,GAG7B,MACS,CAET,CACJ,CACD,OAAOA,CACX,CACO,SAASC,GAAsBntI,EAAMotI,EAAgB,CACxD,OAAIA,IAAmB,SAAUA,EAAiB,IAC3CtO,GAAgB9+H,EAAQ8sI,MAAeM,EAAiB,IAAMnnC,GAAUi2B,IAAa2Q,EAAY,CAC5G,CACO,SAASQ,GAAkBrtI,EAAM,CACpC,IAAI6Q,EAAO,CACP,GAAIs8H,GAAsB,YAAcntI,GAAQk8H,IAAa,IAAMj2B,EAAO,EAC1E,OAAQ,SAAUlsG,EAAQ,CACtB,OAAOizI,GAAejzI,CAAM,CAC/B,EACD,IAAK,SAAUA,EAAQiG,EAAMyhI,EAAU6L,EAAY,CAC/C,IAAIJ,EAAWnzI,EAAO8W,EAAK,EAAE,EAC7B,OAAKq8H,EAQEA,EAASpO,GAAgB9+H,CAAI,CAAC,GAP7BstI,IAEAJ,EAAWD,GAAUp8H,EAAM9W,CAAM,EACjCmzI,EAASpO,GAAgB9+H,CAAI,CAAC,EAAIyhI,GAE/BA,EAGd,EACD,KAAM,SAAU1nI,EAAQiG,EAAM,CAC1B,GAAIjG,GAAUA,EAAOiG,CAAI,EACrB,GAAI,CACA,OAAOjG,EAAOiG,CAAI,CACrB,MACS,CAET,CAER,CACT,EACI,OAAO6Q,CACX,CCpFA,IAAI08H,GAAiB,cACjBC,GAAiB,cACjBC,GAAY,SACZC,GAAa,UACbC,GAAa,UACbC,GAAyB,sBACzBC,GAAyB,sBACzBC,GAAqB,SACrBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAqB,KACrBC,GAAOvjI,GAAW,EAClBwjI,GAAe,GACfC,GAAsB,GAUnB,SAASC,GAAc5xI,EAAQwtI,EAAQ,CAE1C,IAAI/Z,EAAOoe,GAAgBR,EAAkB,GAAKM,GAAoBN,EAAkB,EACxF,OAAK5d,IAGDA,EAAOoe,GAAgBR,EAAkB,EAAIQ,GAAgB7xI,EAAQwtI,CAAM,EAC3EmE,GAAoBN,EAAkB,EAAI5d,GAEvCA,CACX,CACA,SAASqe,GAAcC,EAAW,CAC9B,OAAIA,EACOA,EAAU,YAEd,EACX,CACA,SAASC,GAAuBC,EAAY,CACxC,IAAIC,EAAeD,EAAWjU,EAAe,EAA4BiU,EAAWjU,EAAwC,GAAI,GAIhI,GAFA39G,GAAS6xH,EAAc,SAAUD,EAAW,aAAc/P,GAAsBD,EAAiB,EACjG5hH,GAAS6xH,EAAc,OAAQD,EAAW,YAAc,IAAK,KAAMhQ,EAAiB,EAChFA,GAAkBiQ,EAAahB,EAAU,CAAC,EAAG,CAE7C,IAAIiB,EAAgB,OACfnQ,GAAYiQ,EAAWd,EAAsB,CAAC,IAC/CgB,EAAgB,CAACF,EAAWd,EAAsB,GAEjDnP,GAAYiQ,EAAWb,EAAsB,CAAC,IAC/Ce,EAAgB,CAACF,EAAWb,EAAsB,GAEtDc,EAAahB,EAAU,EAAIiB,CAC9B,CACD,OAAOD,CACX,CACA,SAASE,GAAiBF,EAAc3uI,EAAM,CAC1C,OAAIA,GAAQ2uI,GAAgBlwH,GAAQkwH,EAAa,aAAa,EACnDA,EAAa,cAAcjU,EAAoC,EAAC16H,CAAI,IAAM,GAE9E,EACX,CACA,SAAS8uI,GAAiBH,EAAc3uI,EAAM,CAC1C,OAAIA,GAAQ2uI,GAAgBlwH,GAAQkwH,EAAa,cAAc,GACvDA,EAAa,eAAejU,EAAoC,EAAC16H,CAAI,IAAM,GACpE,GAGR6uI,GAAiBF,EAAc3uI,CAAI,CAC9C,CAQO,SAAS+uI,GAAiBhG,EAAMtsI,EAAQ,CAC3C,IAAI+xI,EACJ,GAAIzF,EAEAyF,EAAYzF,EAAK,uBAEZtsI,EAAQ,CACb,IAAIuyI,EAAYvyI,EAAOg+H,IACnBuU,EAAUlB,EAAkB,EAC5BU,EAAYQ,EAAUlB,EAAkB,EAGxCU,EAAYF,GAAgB7xI,CAAM,CAEzC,CACD,OAAK+xI,IAEDA,EAAYH,GAAc5xI,GAASssI,GAAQ,CAAE,GAAE7P,EAAW,CAAsB,GAE7EsV,CACX,CACO,SAASF,GAAgBI,EAAYzE,EAAQ,CAChD,IAAIttI,EACAsyI,EAAkBR,GAAuBC,GAAcN,EAAmB,EAC1E3zC,EAAQw0C,EAAgB,MAAQ,IAChCC,EAAUD,EAAgB,OAE1BE,EAAWF,EAAgBtB,EAAU,IAAM,GAC3Ca,GAAa7xI,EAAK,CACd,UAAW,UAAY,CACnB,IAAImjB,EAAUqvH,GAAYC,GAAoBnF,CAAM,EAGhDoF,EAAajB,GAAoBN,EAAkB,EACvD,OAAIhuH,GAAWuvH,GAAcb,IAAca,IAGvCvvH,EAAUyuH,GAAcc,CAAU,GAE/BvvH,CACV,CACJ,EACDnjB,EAAGm+H,IAA0C,SAAUvgI,EAAO,CAE1D40I,EAAW50I,IAAU,EACxB,EACDoC,EAAG,IAAM,SAAUqD,EAAMzF,EAAO+0I,EAAWC,EAAQ/5H,EAAM,CACrD,IAAI3a,EAAS,GACb,GAAI0zI,GAAcC,CAAS,GAAK,CAACM,GAAiBG,EAAiBjvI,CAAI,EAAG,CACtE,IAAIovF,EAAS,GACTmyC,EAAWhB,GAAQhmI,GAAS2hI,EAAS,EACrCvyF,EAAM43F,EAAS7G,EAAoC,EAAC,GAAG,EAO3D,GANI/wF,IAAQ,KACR43F,EAAWhB,GAAQhmI,EAAMogI,EAAuC,EAAC,EAAGhxF,CAAG,CAAC,EACxEylD,EAASogD,GAAcj1I,EAAMogI,EAAuC,EAAChxF,EAAM,CAAC,CAAC,GAGjF7sB,GAASsyE,EAAQ,SAAUmgD,GAAUL,EAASvN,GAAUlD,EAAW,EAC/D,CAACC,GAAkB4Q,CAAS,EAAG,CAC/B,IAAIG,EAAQjJ,KACZ,GAAI/H,GAAYrvC,EAAOs+C,EAAU,CAAC,EAAG,CACjC,IAAIgC,EAAQxO,KAERyO,EAAWD,EAASJ,EAAY,IAEpC,GAAIK,EAAW,EAAG,CACd,IAAIC,EAAS,IAAI,KACjBA,EAAO,QAAQD,CAAQ,EACvB7yH,GAASsyE,EAAQs+C,GAAYmC,GAAYD,EAASH,EAAyBlC,GAAjBC,EAA+B,GAAKqC,GAAYD,EAAQH,EAAQlC,GAAiBC,EAAc,GAAKtR,GAAWyF,EAAQ,CACpL,CACJ,CACI8N,GAED3yH,GAASsyE,EAAQ,UAAW8sC,GAAYoT,EAAW,KAAM7Q,EAAW,CAE3E,CACD,IAAIqR,EAAahgE,KACbggE,GAAcA,EAAW,WAAa,WACtChzH,GAASsyE,EAAQ,SAAU,KAAM,KAAMqvC,EAAW,EAE9CuP,KAAqB,OACrBA,GAAmB,CAAC+B,IAAyBnK,GAAc,GAAI,CAAE,GAAEhL,EAAe,CAAyB,GAE3GoT,IACAlxH,GAASsyE,EAAQ,WAAY,OAAQ,KAAMqvC,EAAW,GAG9D3hH,GAASsyE,EAAQ,OAAQ55E,GAAQilF,EAAO,KAAMgkC,EAAW,EACzD,IAAIuR,EAAcf,EAAgB,WAAagB,GAC/CD,EAAYhwI,EAAMkwI,GAAmB3O,EAAUnyC,CAAM,CAAC,EACtDv0F,EAAS,EACZ,CACD,OAAOA,CACV,EACD8B,EAAG,IAAM,SAAUqD,EAAM,CACrB,IAAIzF,EAAQ2hI,GACZ,OAAIqS,GAAcC,CAAS,GAAK,CAACK,GAAiBI,EAAiBjvI,CAAI,IACnEzF,GAAS00I,EAAgB,WAAakB,IAAiBnwI,CAAI,GAExDzF,CACV,EACDoC,EAAG,IAAM,SAAUqD,EAAMwV,EAAM,CAC3B,IAAI3a,EAAS,GACb,OAAI0zI,GAAcC,CAAS,IAEvB3zI,EAAS2zI,EAAU,MAAMxuI,EAAMwV,CAAI,GAEhC3a,CACV,EACD8B,EAAG,MAAQ,SAAUqD,EAAMwV,EAAM,CAC7B,IAAI7Y,EACA9B,EAAS,GACb,GAAIu0I,GAAoBnF,CAAM,EAAG,CAE7B,IAAI76C,GAAUzyF,EAAK,CAAE,EACjBA,EAAG,KAAU6Y,GAAc,IAC3B7Y,EAAG+wI,EAAU,EAAI,gCACjB/wI,GACC6pI,GAAI,IAELp3C,EAAO,SAAS,EAAI,KAExB,IAAIghD,EAAYnB,EAAgB,WAAagB,GAC7CG,EAAUpwI,EAAMkwI,GAAmBhU,GAAW9sC,CAAM,CAAC,EACrDv0F,EAAS,EACZ,CACD,OAAOA,CACV,EACD8B,GAEJ,OAAA6xI,EAAUV,EAAkB,EAAIU,EACzBA,CACX,CAIO,SAASY,GAAoBnF,EAAQ,CACxC,GAAI8D,KAAqB,KAAM,CAC3BA,GAAmB,GACnB,GAAI,CACA,IAAIruI,EAAMwuI,IAAQ,GAClBH,GAAmBruI,EAAI+tI,EAAS,IAAM,MACzC,OACM98J,EAAG,CACNu5J,GAAeD,EAAQ,EAAkC,GAAiD,mCAAqC7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAChM,CACJ,CACD,OAAOo9J,EACX,CACA,SAASyB,GAAcjO,EAAU,CAC7B,IAAInyC,EAAS,GACb,GAAImyC,GAAYA,EAASpI,IAAmC,CACxD,IAAIl4H,EAAQs/H,GAAQgB,CAAQ,EAAE1G,EAAU,EAAsB,GAAG,EACjEqF,GAAWj/H,EAAO,SAAUovI,EAAS,CAEjC,GADAA,EAAU9P,GAAQ8P,GAAWnU,EAAS,EAClCmU,EAAS,CACT,IAAI1mG,EAAM0mG,EAAQ3V,EAAoC,EAAC,GAAG,EACtD/wF,IAAQ,GACRylD,EAAOihD,CAAO,EAAI,KAGlBjhD,EAAOmxC,GAAQ8P,EAAQ1V,EAAc,EAA0B,EAAGhxF,CAAG,CAAC,CAAC,EAAI42F,GAAQ8P,EAAQ1V,EAAc,EAA0BhxF,EAAM,CAAC,CAAC,CAElJ,CACb,CAAS,CACJ,CACD,OAAOylD,CACX,CACA,SAASygD,GAAYS,EAAShpI,EAAM,CAChC,OAAIu3H,GAAWyR,EAAQhpI,CAAI,CAAC,EACjBgpI,EAAQhpI,CAAI,IAEhB,IACX,CACA,SAAS4oI,GAAmB31I,EAAO60F,EAAQ,CACvC,IAAImhD,EAAch2I,GAAS2hI,GAC3B,OAAAgD,GAAc9vC,EAAQ,SAAUpvF,EAAMuhI,EAAU,CAC5CgP,GAAe,KAAOvwI,GAAS0+H,GAAkB6C,CAAQ,EAAqBrF,GAAjB,IAAMqF,EAC3E,CAAK,EACMgP,CACX,CACA,SAASJ,GAAgBnwI,EAAM,CAC3B,IAAIuwI,EAAcrU,GAClB,GAAIgS,GAAM,CACN,IAAIsC,EAAYtC,GAAKT,EAAS,GAAKvR,GAC/B+R,KAAuBuC,IACvBrC,GAAeqB,GAAcgB,CAAS,EACtCvC,GAAqBuC,GAEzBD,EAAchQ,GAAQ4N,GAAanuI,CAAI,GAAKk8H,EAAS,CACxD,CACD,OAAOqU,CACX,CACA,SAASN,GAAgBjwI,EAAMuwI,EAAa,CACpCrC,KACAA,GAAKT,EAAS,EAAIztI,EAAO,IAAMuwI,EAEvC,CACO,SAASR,GAAwBnwI,EAAW,CAC/C,OAAKm/H,GAASn/H,CAAS,EAQnB,GAAA4/H,GAAY5/H,EAAW,kBAAkB,GAAK4/H,GAAY5/H,EAAW,iBAAiB,GAUtF4/H,GAAY5/H,EAAW,iCAAiC,GAAK4/H,GAAY5/H,EAAW,UAAU,GAAK4/H,GAAY5/H,EAAW,QAAQ,GAUlI4/H,GAAY5/H,EAAW,iCAAiC,GAAKw/H,GAAYx/H,EAAW,0CAA0C,GAM9H4/H,GAAY5/H,EAAW,UAAU,GAAK4/H,GAAY5/H,EAAW,UAAU,GAKvE4/H,GAAY5/H,EAAW,cAAc,GAAK,CAAC4/H,GAAY5/H,EAAW,QAAQ,GAM1E4/H,GAAY5/H,EAAW,cAAc,GAAK4/H,GAAY5/H,EAAW,cAAc,GA5CxE,EAgDf,CCpUA,IAAI6wI,GAAc,KACdC,GAAiB,cACjBC,GAAoB,mBACpBC,GAAiB,cACjBC,GAAyB,sBACzBC,GAAY,SACZC,GAAyB,mBACzBC,GAAc,WAEdC,GAAY,SACZC,GAAkB,eAClBC,GAAuBhE,GAAsB,eAAe,EACrCA,GAAsB,eAAe,EAChE,IAAIiE,GAAiB,WACjBC,GAAyB,SACzBC,GAAQ,EACRC,GAAclE,GAAkB,QAAQ,EACxCmE,GAAiB,sBACrB,SAASC,GAAoBzxI,EAAM,CAC/B,OAAIA,GAAQA,EAAKk7H,IACNl7H,EAAKk7H,EAAY,EAAwB,+BAAgCgB,EAAS,EAEtFl8H,CACX,CACA,SAAS0xI,GAAiBnoI,EAAWooI,EAAc,CAC/C,IAAIh1I,EACJ,GAAIg1I,EAAc,CACd,IAAIC,EAAiB1V,GACjBz9G,GAAQkzH,CAAY,GACpBC,EAAiB1V,GACjBgE,GAAWyR,EAAc,SAAU3xI,EAAM,CACrCA,EAAOyxI,GAAoBzxI,CAAI,EAC3BA,IACIA,EAAK,CAAC,IAAM,MACZA,EAAO,IAAMA,GAEjB4xI,GAAkB5xI,EAEtC,CAAa,GAGD4xI,EAAiBH,GAAoBE,CAAY,EAEjDC,IACIA,EAAe,CAAC,IAAM,MACtBA,EAAiB,IAAMA,GAG3BroI,GAAaA,GAAa2yH,IAAa0V,EAE9C,CACD,IAAIC,EAAeL,GAAe,KAAKjoI,GAAa2yH,EAAS,GAAK,GAClE,OAAOv/H,EAAK,CAAE,EACVA,EAAG4+H,EAAS,EAAoBsW,EAAY,CAAC,EAC7Cl1I,EAAG,IAAOk1I,EAAY,CAAC,GAAK3V,IAAW,QAAQkV,GAAgB,GAAG,EAAE,QAAQC,GAAwBnV,EAAS,EAAErB,EAA+B,EAAC,GAAG,EAAE,KAAI,EAAI,KAAK,GAAG,EACpKl+H,CACR,CA6BA,SAASm1I,GAAqB/3I,EAAQg4I,EAASzE,EAAY,CACnDA,IAAe,SAAUA,EAAa,IAC1C,IAAI0E,EAAST,GAAY,IAAIx3I,EAAQ+2I,GAAW,GAAIxD,CAAU,EAC1D2E,EAAmBD,EAAOD,CAAO,EACrC,OAAKE,IACDA,EAAmBD,EAAOD,CAAO,EAAI,IAElCE,CACX,CACA,SAASC,GAAUpkI,EAAKikI,EAASI,EAAY/nI,EAAY,CACjD0D,GAAOikI,GAAWA,EAAQxW,EAAS,IAC/BztH,EAAI+iI,EAAsB,EAC1B/iI,EAAI+iI,EAAsB,EAAEkB,EAAQxW,EAAS,EAAsB4W,EAAY/nI,CAAU,EAEpF0D,EAAI8iI,EAAc,GACvB9iI,EAAI8iI,EAAc,EAAEH,GAAcsB,EAAQxW,EAAS,EAAsB4W,CAAU,EAG/F,CACA,SAASC,GAAUtkI,EAAKikI,EAASI,EAAY/nI,EAAY,CACrD,IAAIvP,EAAS,GACb,OAAIiT,GAAOikI,GAAWA,EAAQxW,EAAS,GAAwB4W,IACvDrkI,EAAI6iI,EAAiB,GAErB7iI,EAAI6iI,EAAiB,EAAEoB,EAAQxW,EAAS,EAAsB4W,EAAY/nI,CAAU,EACpFvP,EAAS,IAEJiT,EAAI4iI,EAAc,IAEvB5iI,EAAI4iI,EAAc,EAAED,GAAcsB,EAAQxW,EAAS,EAAsB4W,CAAU,EACnFt3I,EAAS,KAGVA,CACX,CACA,SAASw3I,GAAct4I,EAAQ8P,EAAQkoI,EAASO,EAAS,CAErD,QADI3oG,EAAM9/B,EAAOsvH,IACVxvF,KAAO,CACV,IAAI4oG,EAAW1oI,EAAO8/B,CAAG,EACrB4oG,IACI,CAACR,EAAQ,IAAMA,EAAQ,KAAOQ,EAAS,QAAQ,MAC3C,CAACD,GAAWA,EAAQC,CAAQ,KAC5BL,GAAUn4I,EAAQw4I,EAAS,QAASA,EAAS/W,EAAmC,EAAE+W,EAAS,OAAO,EAElG1oI,EAAOiwH,EAAW,EAAuBnwF,EAAK,CAAC,EAI9D,CACL,CACA,SAAS6oG,GAAkBz4I,EAAQg4I,EAASO,EAAS,CACjD,GAAIP,EAAQxW,IACR8W,GAAct4I,EAAQ+3I,GAAqB/3I,EAAQg4I,EAAQxW,GAA6B,EAAGwW,EAASO,CAAO,MAE1G,CACD,IAAIG,EAAalB,GAAY,IAAIx3I,EAAQ+2I,GAAW,EAAE,EACtD5R,GAAcuT,EAAY,SAAUC,EAAS7oI,EAAQ,CACjDwoI,GAAct4I,EAAQ8P,EAAQkoI,EAASO,CAAO,CAC1D,CAAS,EAEG5R,GAAQ+R,CAAU,EAAEtZ,EAAW,IAA2B,GAC1DoY,GAAY,KAAKx3I,EAAQ+2I,EAAS,CAEzC,CACL,CACO,SAAS6B,GAAkBC,EAAcC,EAAY,CACxD,IAAIC,EACJ,OAAID,GACIp0H,GAAQo0H,CAAU,EAClBC,EAAgB,CAACF,CAAY,EAAE,OAAOC,CAAU,EAGhDC,EAAgB,CAACF,EAAcC,CAAU,EAG7CC,EAAiBpB,GAAiB,KAAMoB,CAAa,EAAE,GAAIjY,IAAgC,GAAG,GAG9FiY,EAAgBF,EAEbE,CACX,CAYO,SAASC,GAAQh5I,EAAQwP,EAAW4oI,EAAYR,EAAcvnI,EAAY,CAC7E,IAAIzN,EACAyN,IAAe,SAAUA,EAAa,IAC1C,IAAIvP,EAAS,GACb,GAAId,EACA,GAAI,CACA,IAAIg4I,EAAUL,GAAiBnoI,EAAWooI,CAAY,EAEtD,GADA92I,EAASu3I,GAAUr4I,EAAQg4I,EAASI,EAAY/nI,CAAU,EACtDvP,GAAU02I,GAAY,OAAOx3I,CAAM,EAAG,CACtC,IAAIi5I,GAAmBr2I,EAAK,CACpB,KAAM20I,KACN,QAASS,CACZ,EACDp1I,EAAG6+H,EAAY,EAAuB2W,EACtCx1I,EAAG,QAAUyN,EACbzN,GACJm1I,GAAqB/3I,EAAQg4I,EAAQ,IAAI,EAAEjZ,EAAS,EAAqBka,CAAe,CAC3F,CACJ,MACS,CAET,CAEL,OAAOn4I,CACX,CAaO,SAASo4I,GAASl5I,EAAQwP,EAAW4oI,EAAYR,EAAcvnI,EAAY,CAE9E,GADIA,IAAe,SAAUA,EAAa,IACtCrQ,EACA,GAAI,CACA,IAAIm5I,EAAYxB,GAAiBnoI,EAAWooI,CAAY,EACpD37B,EAAU,GACdw8B,GAAkBz4I,EAAQm5I,EAAW,SAAUC,EAAU,CACrD,OAAKD,EAAU,IAAM,CAACf,GAAegB,EAAS3X,EAAmC,IAAK2W,GAClFn8B,EAAU,GACH,IAEJ,EACvB,CAAa,EACIA,GAEDk8B,GAAUn4I,EAAQm5I,EAAWf,EAAY/nI,CAAU,CAE1D,MACS,CAET,CAET,CAkCO,SAASgpI,GAAgB7pI,EAAWpM,EAAUw0I,EAAc,CAC/D,IAAI92I,EAAS,GACT7qB,EAAI02B,KACJ12B,IACA6qB,EAASk4I,GAAQ/iK,EAAGu5B,EAAWpM,EAAUw0I,CAAY,EACrD92I,EAASk4I,GAAQ/iK,EAAE,KAASu5B,EAAWpM,EAAUw0I,CAAY,GAAK92I,GAEtE,IAAI6E,EAAMiL,KACV,OAAIjL,IACA7E,EAASk4I,GAAQrzI,EAAK6J,EAAWpM,EAAUw0I,CAAY,GAAK92I,GAEzDA,CACX,CAUO,SAASw4I,GAAmB9pI,EAAWpM,EAAUw0I,EAAc,CAClE,IAAI3hK,EAAI02B,KACJ12B,IACAijK,GAASjjK,EAAGu5B,EAAWpM,EAAUw0I,CAAY,EAC7CsB,GAASjjK,EAAE,KAASu5B,EAAWpM,EAAUw0I,CAAY,GAEzD,IAAIjyI,EAAMiL,KACNjL,GACAuzI,GAASvzI,EAAK6J,EAAWpM,EAAUw0I,CAAY,CAEvD,CASA,SAAS2B,GAAmBzpI,EAAQsmE,EAAUojE,EAAe5B,EAAc,CACvE,IAAI6B,EAAQ,GACZ,OAAIrjE,GAAYtmE,GAAUA,EAAOsvH,EAAW,EAAyB,GACjE+G,GAAWr2H,EAAQ,SAAU7J,EAAM,CAC3BA,IACI,CAACuzI,GAAiBpT,GAAWoT,EAAevzI,CAAI,IAAM,MACtDwzI,EAAQJ,GAAgBpzI,EAAMmwE,EAAUwhE,CAAY,GAAK6B,EAG7E,CAAS,EAEEA,CACX,CASO,SAASC,GAAkB5pI,EAAQsmE,EAAUojE,EAAe5B,EAAc,CAC7E,IAAI6B,EAAQ,GACZ,OAAIrjE,GAAYtmE,GAAU4U,GAAQ5U,CAAM,IACpC2pI,EAAQF,GAAmBzpI,EAAQsmE,EAAUojE,EAAe5B,CAAY,EACpE,CAAC6B,GAASD,GAAiBA,EAAcpa,EAAW,EAAyB,IAE7Eqa,EAAQF,GAAmBzpI,EAAQsmE,EAAU,KAAMwhE,CAAY,IAGhE6B,CACX,CAOO,SAASE,GAAqB7pI,EAAQsmE,EAAUwhE,EAAc,CAC7D9nI,GAAU4U,GAAQ5U,CAAM,GACxBq2H,GAAWr2H,EAAQ,SAAU7J,EAAM,CAC3BA,GACAqzI,GAAmBrzI,EAAMmwE,EAAUwhE,CAAY,CAE/D,CAAS,CAET,CAYO,SAASgC,GAA2BxjE,EAAUojE,EAAe5B,EAAc,CAG9E,OAAO8B,GAAkB,CAACvC,GAAiBD,GAAWD,EAAW,EAAG7gE,EAAUojE,EAAe5B,CAAY,CAC7G,CAQO,SAASiC,GAA8BzjE,EAAUwhE,EAAc,CAClE+B,GAAqB,CAACxC,GAAiBD,GAAWD,EAAW,EAAG7gE,EAAUwhE,CAAY,CAC1F,CAaO,SAASkC,GAAyB1jE,EAAUojE,EAAe5B,EAAc,CAC5E,SAASmC,EAAsB56E,EAAK,CAChC,IAAIx5D,EAAMiL,KACNwlE,GAAYzwE,GAAOA,EAAI,kBAAoB,UAC3CywE,EAASjX,CAAG,CAEnB,CAED,IAAI45E,EAAgBH,GAAkBxB,GAAsBQ,CAAY,EACpEoC,EAAkBT,GAAmB,CAACtC,EAAW,EAAG7gE,EAAUojE,EAAeT,CAAa,EAC9F,OAAI,CAACS,GAAiBpT,GAAWoT,EAAexC,EAAsB,IAAM,MACxEgD,EAAkBT,GAAmB,CAACvC,EAAsB,EAAG+C,EAAuBP,EAAeT,CAAa,GAAKiB,GAEvH,CAACA,GAAmBR,IAEpBQ,EAAkBF,GAAyB1jE,EAAU,KAAMwhE,CAAY,GAEpEoC,CACX,CAQO,SAASC,GAA4B7jE,EAAUwhE,EAAc,CAEhE,IAAImB,EAAgBH,GAAkBxB,GAAsBQ,CAAY,EACxE+B,GAAqB,CAAC1C,EAAW,EAAG7gE,EAAU2iE,CAAa,EAC3DY,GAAqB,CAAC3C,EAAsB,EAAG,KAAM+B,CAAa,CACtE,CCrYO,SAASmB,IAAgB,CAI5B,QAHIC,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAE3FC,EAAMjY,GAAWoJ,EACZj1J,EAAI,EAAGA,EAAI,EAAGA,IACnBi1J,EAAM+G,GAAQ,EACd8H,GACID,EAAU5O,EAAM,EAAG,EACf4O,EAAU5O,GAAO,EAAI,EAAG,EACxB4O,EAAU5O,GAAO,EAAI,EAAG,EACxB4O,EAAU5O,GAAO,GAAK,EAAG,EACzB4O,EAAU5O,GAAO,GAAK,EAAG,EACzB4O,EAAU5O,GAAO,GAAK,EAAG,EACzB4O,EAAU5O,GAAO,GAAK,EAAG,EACzB4O,EAAU5O,GAAO,GAAK,EAAG,EAGrC,IAAI8O,EAAkBF,EAAU,GAAK7H,GAAQ,EAAK,GAAQ,CAAC,EAC3D,OAAO8H,EAAIpZ,EAAW,EAAuB,EAAG,CAAC,EAAIoZ,EAAIpZ,EAAW,EAAuB,EAAG,CAAC,EAAI,IAAMoZ,EAAIpZ,EAAW,EAAuB,GAAI,CAAC,EAAIqZ,EAAkBD,EAAIpZ,EAAW,EAAuB,GAAI,CAAC,EAAIoZ,EAAIpZ,EAAiC,EAAC,GAAI,EAAE,CACzQ,CC5DA,IAAIsZ,GAAkB,KAClBC,GAAkB,KAClBC,GAAmB,mCACnBC,GAAkB,mBAEtB,SAASC,GAASl6I,EAAO4S,EAAKunI,EAAc,CACxC,OAAIn6I,GAASA,EAAM4+H,EAAiC,IAAKhsH,GAAO5S,IAAUm6I,EAC/D,CAAC,CAACn6I,EAAM,MAAM,YAAY,EAE9B,EACX,CACA,SAASo6I,GAAap6I,EAAO4S,EAAKs0H,EAAU,CACxC,OAAIgT,GAASl6I,EAAO4S,CAAG,EACZ5S,EAEJknI,CACX,CACA,SAASmT,GAAar6I,EAAO,EACrB,MAAMA,CAAK,GAAKA,EAAQ,GAAKA,EAAQ,OACrCA,EAAQ,GAGZ,QADIM,EAASN,EAAM,SAAS,EAAE,EACvBM,EAAOs+H,EAAiC,EAAG,GAC9Ct+H,EAAS,IAAMA,EAEnB,OAAOA,CACX,CASO,SAASg6I,GAAkBC,EAASC,EAAQC,EAAO/uC,EAAS,CAC/D,IAAItpG,EACJ,OAAOA,EAAK,CAAE,EACVA,EAAGs/H,EAAgC,EAAGwY,GAASxuC,EAAS,EAAGquC,EAAe,EAAIruC,EAAUouC,GACxF13I,EAAGm/H,EAAa,EAAuBmZ,GAAeH,CAAO,EAAIA,EAAUb,GAAe,EAC1Ft3I,EAAG,OAASu4I,GAAcH,CAAM,EAAIA,EAASd,GAAa,EAAGlZ,EAAW,EAAuB,EAAG,EAAE,EACpGp+H,EAAG,WAAaq4I,GAAS,GAAKA,GAAS,IAAOA,EAAQ,EACtDr4I,CACR,CA2CO,SAASs4I,GAAe16I,EAAO,CAClC,OAAOk6I,GAASl6I,EAAO,GAAIg6I,EAAgB,CAC/C,CAQO,SAASW,GAAc36I,EAAO,CACjC,OAAOk6I,GAASl6I,EAAO,GAAIi6I,EAAe,CAC9C,CAoCO,SAASW,GAAkB56I,EAAO,CACrC,GAAIA,EAAO,CAGP,IAAIy6I,EAAQJ,GAAar6I,EAAMyhI,EAA0C,GACpEyY,GAASO,EAAO,CAAC,IAClBA,EAAQ,MAEZ,IAAI/uC,EAAU1rG,EAAM0hI,EAAY,GAA2BoY,GAC3D,OAAIpuC,IAAY,MAAQA,IAAY,OAEhCA,EAAUouC,IAGP,GAAG,OAAOpuC,EAAS,GAAG,EAAE,OAAO0uC,GAAap6I,EAAM,QAAS,GAAIg6I,EAAgB,EAAG,GAAG,EAAE,OAAOI,GAAap6I,EAAM,OAAQ,GAAIi6I,EAAe,EAAG,GAAG,EAAE,OAAOQ,CAAK,CAC1K,CACD,MAAO,EACX,CCrJA,IAAII,GAAkB/H,GAAkB,QAAQ,EACzC,SAASgI,GAAgBC,EAAQ,CACpC,OAAOF,GAAgB,IAAIE,EAAQ,QAAS,GAAI,EAAI,CACxD,CAQO,SAASC,GAAkBC,EAAgB3tD,EAAY,CAM1D,QAJI4tD,EAAc,GACdC,EAAa,KACbC,EAAQH,EAAenb,EAAa,IACpCub,EACGD,GAAO,CACV,IAAIE,EAAYF,EAAMhc,EAAe,IACrC,GAAIkc,EAAW,CACPH,GACA7W,GAAW6W,EAAWnb,GAAiD,GACvEsE,GAAWgX,EAAUpZ,EAAqB,CAAgC,GAE1EiZ,EAAWnb,IAAkDsb,CAAS,EAE1E,IAAIC,EAAgB,GAChBjX,GAAWgX,EAAU9c,EAAmB,CAA6B,EACrE+c,EAAgBD,EAAU9c,EAAmB,KAG7C6c,EAAcP,GAAgBQ,CAAS,EACvCC,EAAgBF,EAAY7c,KAE3B+c,GACDL,EAAY3c,IAA8B+c,CAAS,EAEvDH,EAAaG,EACbF,EAAQA,EAAMtb,EAAa,GAC9B,CACJ,CAED6F,GAAWuV,EAAa,SAAUI,EAAW,CACzC,IAAI9M,EAAOyM,EAAepZ,EAAQ,IAClCyZ,EAAUnd,EAAe,EAA2B8c,EAAe,OAAQ,EAAEzM,EAAMlhD,EAAY2tD,EAAenb,EAAoC,GAAE,EACpJub,EAAcP,GAAgBQ,CAAS,EAEnC,CAACA,EAAUzZ,EAAQ,GAAK,CAACwZ,EAAYxZ,EAAQ,IAC7CwZ,EAAYxZ,EAAQ,EAAI2M,GAE5B6M,EAAY7c,EAAgD,EAAG,GAC/D,OAAO6c,EAAY7b,GAC3B,CAAK,CACL,CACO,SAASgc,GAAYC,EAAS,CAEjC,OAAOA,EAAQ,KAAK,SAAUC,EAAMC,EAAM,CACtC,IAAIr7I,EAAS,EACb,GAAIq7I,EAAM,CACN,IAAIC,EAActX,GAAWqX,EAAKzZ,EAAqB,CAAC,EACpDoC,GAAWoX,EAAKxZ,EAAqB,CAAC,EACtC5hI,EAASs7I,EAAcF,EAAKvZ,EAAY,EAAIwZ,EAAKxZ,EAAY,EAAI,EAE5DyZ,IACLt7I,EAAS,GAEhB,MAEGA,EAASo7I,EAAO,EAAI,GAExB,OAAOp7I,CACf,CAAK,CAEL,CAgCO,SAASu7I,GAA8BC,EAAW,CACrD,IAAIC,EAAQ,GACZ,MAAO,CACH,QAAS,UAAY,CACjB,OAAOA,EAAM3d,GAChB,EACD,QAAS,SAAUv4G,EAAU,CACzBi2H,GAAaA,EAAU,QAAQj2H,CAAQ,EACvCk2H,EAAM3d,EAA6B,EAAGv4G,CACzC,EACD,WAAY,UAAY,CACpB,OAAOk2H,EAAMxa,GAChB,EACD,WAAY,SAAU17G,EAAU,CAC5Bi2H,GAAaA,EAAU,WAAWj2H,CAAQ,EACtC60H,GAAe70H,CAAQ,IACvBk2H,EAAMxa,EAAoC,EAAG17G,EAEpD,EACD,UAAW,UAAY,CACnB,OAAOk2H,EAAMva,GAChB,EACD,UAAW,SAAU37G,EAAU,CAC3Bi2H,GAAaA,EAAU,UAAUj2H,CAAQ,EACrC80H,GAAc90H,CAAQ,IACtBk2H,EAAMva,EAAkC,EAAG37G,EAElD,EACD,cAAe,UAAY,CACvB,OAAOk2H,EAAMta,GAChB,EACD,cAAe,SAAUua,EAAe,CACpCF,GAAaA,EAAU,cAAcE,CAAa,EAClDD,EAAMta,EAA0C,EAAGua,CACtD,CACT,CACA,CC3IA,IAAIC,GAA0B,uBAC1BC,GAAiB,UACjBC,GAAe,aACfC,GAAW,EACf,SAASC,GAAmBjB,EAAO5M,EAAM8N,EAAS,CAC9C,KAAOlB,GAAO,CACV,GAAIA,EAAMhc,IAA0C,IAAKkd,EACrD,OAAOlB,EAEXA,EAAQA,EAAMtb,EAAa,GAC9B,CAED,OAAOyc,GAA0B,CAACD,CAAO,EAAG9N,EAAK/P,KAAqC,GAAI+P,CAAI,CAClG,CASA,SAASgO,GAAuBC,EAAgBv6I,EAAQssI,EAAM8N,EAAS,CAGnE,IAAII,EAAa,KACbC,EAAc,GACdL,IAAY,OAEZI,EAAaJ,EAAUD,GAAmBI,EAAgBjO,EAAM8N,CAAO,EAAIG,GAE/E,IAAIjqI,EAAU,CACV,MAAOoqI,EACP,IAAK,CACD,KAAM,UAAY,CACd,OAAOpO,CACV,EACD,QAAS,UAAY,CACjB,OAAOD,GAAcC,EAAMtsI,CAAM,CACpC,EACD,OAAQ,UAAY,CAChB,OAAOA,CACV,EACD,UAAW26I,EACX,UAAWC,EACX,QAAS,UAAY,CACjB,MAAO,CAAC,CAACJ,CACZ,EACD,QAAS,UAAY,CACjB,OAAOA,CACV,EACD,QAAS,SAAUK,EAAY,CAC3BL,EAAaK,CAChB,EACD,QAASC,EACT,WAAYC,CACf,CACT,EACI,SAASA,EAAeC,EAAYC,EAAM,CAEtC,QADIj6I,EAAO,GACFe,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCf,EAAKe,EAAK,CAAC,EAAI,UAAUA,CAAE,EAE3Bi5I,GACAP,EAAYpe,EAAS,EAAqB,CACtC,KAAM2e,EACN,KAAOhZ,GAAYiZ,CAAI,EAAW3qI,EAAQ,IAAf2qI,EAC3B,KAAMj6I,CACtB,CAAa,CAER,CACD,SAAS05I,GAAY,CACjB,IAAIQ,EAAYV,EAGhB,GADAA,EAAaU,EAAYA,EAAUtd,EAAoC,IAAK,KACxE,CAACsd,EAAW,CACZ,IAAIF,EAAaP,EACbO,GAAcA,EAAWte,EAAW,EAAyB,IAC7D+G,GAAWuX,EAAY,SAAUG,EAAiB,CAC9C,GAAI,CACAA,EAAgB,KAAKtc,EAA6B,EAACsc,EAAgB,KAAMA,EAAgB,IAAI,CAChG,OACMjnK,EAAG,CACNu5J,GAAenB,EAAK7P,EAAW,EAAwB,EAAkC,GAA8C,4CAA8C2N,GAAQl2J,CAAC,CAAC,CAClM,CACrB,CAAiB,EACDumK,EAAc,GAErB,CACD,OAAOS,CACV,CACD,SAASP,EAAWp1D,EAAYnzE,EAAcgpI,EAAc,CACpDhpI,IAAiB,SAAUA,EAAe,CAAE,GAC5CgpI,IAAiB,SAAUA,EAAe,GAC9C,IAAIC,EACJ,GAAIr7I,EAAQ,CACR,IAAIs7I,EAAYt7I,EAAO8/H,IACnBwb,GAAa/1D,IACb81D,EAAYC,EAAU/1D,CAAU,EAEvC,CACD,GAAI,CAAC81D,EAEDA,EAAYjpI,UAEP+vH,GAAS/vH,CAAY,GACtBgpI,IAAiB,EAAiC,CAElD,IAAIG,EAAcpV,GAAU,GAAM/zH,EAAcipI,CAAS,EACrDr7I,GAAUo7I,IAAiB,GAG3B3Y,GAAcrwH,EAAc,SAAUkmE,EAAO,CAEzC,GAAI2pD,GAAkBsZ,EAAYjjE,CAAK,CAAC,EAAG,CACvC,IAAIkjE,EAAWx7I,EAAOs4E,CAAK,EACtB2pD,GAAkBuZ,CAAQ,IAC3BD,EAAYjjE,CAAK,EAAIkjE,EAE5B,CACzB,CAAqB,EAELH,EAAYE,CACf,CAEL,OAAOF,CACV,CACD,SAAST,EAAWr1D,EAAYjN,EAAOlmE,EAAc,CAC7CA,IAAiB,SAAUA,EAAe,IAC9C,IAAI0yH,EACAwW,EAAYX,EAAWp1D,EAAY,IAAI,EAC3C,OAAI+1D,GAAa,CAACrZ,GAAkBqZ,EAAUhjE,CAAK,CAAC,EAChDwsD,EAAWwW,EAAUhjE,CAAK,EAErBt4E,GAAU,CAACiiI,GAAkBjiI,EAAOs4E,CAAK,CAAC,IAC/CwsD,EAAW9kI,EAAOs4E,CAAK,GAEnB2pD,GAAkB6C,CAAQ,EAAe1yH,EAAX0yH,CACzC,CACD,SAASgW,EAAcvhK,EAAI,CAGvB,QADIshK,EACMA,EAAavqI,EAAQ,MAAO,GAAG,CACrC,IAAIuoI,EAASgC,EAAW3d,EAAe,IACnC2b,GAEAt/J,EAAGs/J,CAAM,CAEhB,CACJ,CACD,OAAOvoI,CACX,CAQO,SAASmrI,GAA8BlB,EAAgBv6I,EAAQssI,EAAM8N,EAAS,CACjF,IAAIsB,EAAkBpB,GAAuBC,EAAgBv6I,EAAQssI,EAAM8N,CAAO,EAC9E9pI,EAAUorI,EAAgB,IAC9B,SAASC,EAAaC,EAAK,CACvB,IAAIf,EAAaa,EAAgB,QAEjC,OAAAb,GAAcA,EAAW7a,EAAqD,EAAC4b,EAAKtrI,CAAO,EACpF,CAACuqI,CACX,CACD,SAASgB,EAAWtC,EAASa,EAAS,CAClC,OAAIb,IAAY,SAAUA,EAAU,MAChCv3H,GAAQu3H,CAAO,IACfA,EAAUc,GAA0Bd,EAASv5I,EAAQssI,EAAM8N,CAAO,GAE/DqB,GAA8BlC,GAAWjpI,EAAQstH,EAAoC,IAAI59H,EAAQssI,EAAM8N,CAAO,CACxH,CACD,OAAA9pI,EAAQssH,EAA4C,EAAG+e,EACvDrrI,EAAQytH,EAAwC,EAAG8d,EAC5CvrI,CACX,CAQO,SAASwrI,GAAoCvB,EAAgBjO,EAAM8N,EAAS,CAC/E,IAAIp6I,EAASssI,EAAK/P,EAAW,GAA0B,GACnDmf,EAAkBpB,GAAuBC,EAAgBv6I,EAAQssI,EAAM8N,CAAO,EAC9E9pI,EAAUorI,EAAgB,IAC9B,SAASC,EAAaI,EAAa,CAC/B,IAAIlB,EAAaa,EAAgB,QACjC,OAAAb,GAAcA,EAAW,OAAOvqI,EAASyrI,CAAW,EAC7C,CAAClB,CACX,CACD,SAASgB,EAAWtC,EAASa,EAAS,CAClC,OAAIb,IAAY,SAAUA,EAAU,MAChCv3H,GAAQu3H,CAAO,IACfA,EAAUc,GAA0Bd,EAASv5I,EAAQssI,EAAM8N,CAAO,GAE/D0B,GAAoCvC,GAAWjpI,EAAQstH,EAAa,IAA2B0O,EAAM8N,CAAO,CACtH,CACD,OAAA9pI,EAAQssH,EAA4C,EAAG+e,EACvDrrI,EAAQytH,EAAwC,EAAG8d,EAC5CvrI,CACX,CAQO,SAAS0rI,GAAoCzB,EAAgBjO,EAAM8N,EAAS,CAC/E,IAAIp6I,EAASssI,EAAK/P,EAAW,GAA0B,GACnDmf,EAAkBpB,GAAuBC,EAAgBv6I,EAAQssI,EAAM8N,CAAO,EAC9E9pI,EAAUorI,EAAgB,IAC9B,SAASC,EAAaM,EAAa,CAC/B,OAAO3rI,EAAQ,QAAQ,SAAUuoI,EAAQ,CACjCzW,GAAWyW,EAAOlb,EAAW,CAAsB,GACnDkb,EAAOlb,EAAW,EAAuBrtH,EAAS2rI,CAAW,CAE7E,CAAS,CACJ,CACD,SAASJ,EAAWtC,EAASa,EAAS,CAClC,OAAIb,IAAY,SAAUA,EAAU,MAChCv3H,GAAQu3H,CAAO,IACfA,EAAUc,GAA0Bd,EAASv5I,EAAQssI,EAAM8N,CAAO,GAE/D4B,GAAoCzC,GAAWjpI,EAAQstH,EAAa,IAA2B0O,EAAM8N,CAAO,CACtH,CACD,OAAA9pI,EAAQssH,EAA4C,EAAG+e,EACvDrrI,EAAQytH,EAAwC,EAAG8d,EAC5CvrI,CACX,CAQO,SAAS+pI,GAA0Bd,EAASv5I,EAAQssI,EAAM8N,EAAS,CACtE,IAAI8B,EAAa,KACbztB,EAAM,CAAA2rB,EACV,GAAIp4H,GAAQu3H,CAAO,GAAKA,EAAQ7c,EAAW,EAAyB,EAAG,CAEnE,IAAIyf,EAAc,KAClB1Y,GAAW8V,EAAS,SAAUH,EAAW,CAIrC,GAHI,CAAC3qB,GAAO2rB,IAAYhB,IACpB3qB,EAAM,IAENA,GAAO2qB,GAAahX,GAAWgX,EAAUpZ,EAAqD,GAAG,CAEjG,IAAIoc,EAAWC,GAA2BjD,EAAWp5I,EAAQssI,CAAI,EAC5D4P,IACDA,EAAaE,GAEbD,GAEAA,EAAY,SAASC,CAAQ,EAEjCD,EAAcC,CACjB,CACb,CAAS,CACJ,CACD,OAAIhC,GAAW,CAAC8B,EAEL7B,GAA0B,CAACD,CAAO,EAAGp6I,EAAQssI,CAAI,EAErD4P,CACX,CAYO,SAASG,GAA2BxD,EAAQ74I,EAAQssI,EAAM,CAC7D,IAAI4O,EAAY,KACZoB,EAAsBla,GAAWyW,EAAO7Y,EAAqD,GAC7Fuc,EAAana,GAAWyW,EAAO/a,EAAiD,GAChF0e,EACA3D,EACA2D,EAAU3D,EAAOzc,EAAe,EAA6B,IAAMyc,EAAO5Y,EAAoC,EAAG,IAAMia,KAGvHsC,EAAU,aAAetC,KAE7B,IAAIuC,EAAa,CACb,UAAW,UAAY,CACnB,OAAO5D,CACV,EACD,QAAS,UAAY,CACjB,OAAOqC,CACV,EACD,iBAAkBwB,EAClB,OAAQC,EACR,OAAQC,EACR,IAAKJ,EACL,SAAU,SAAU3B,EAAY,CAC5BK,EAAYL,CACf,CACT,EACI,SAASgC,GAAa,CAClB,IAAIC,EAEJ,OAAIjE,GAAUzW,GAAWyW,EAAOoB,EAAY,CAAC,IAEzC6C,EAAUjE,EAAOoB,EAAY,KAE5B6C,IAEDA,EAAUrB,GAA8BgB,EAAYz8I,EAAQssI,CAAI,GAE7DwQ,CACV,CACD,SAASC,EAAcD,EAASE,EAAiBz5I,EAAMurI,EAASb,EAAS,CACrE,IAAIgP,EAAS,GACT13D,EAAaszD,EAASA,EAAOzc,EAAe,EAA6B2d,GACzEmD,EAAgBJ,EAAQ9C,EAAc,EAC1C,OAAKkD,IAEDA,EAAgBJ,EAAQ9C,EAAc,EAAI,IAG9C8C,EAAQ,QAAQ5B,CAAS,EACrBrC,GACAlK,GAAOmO,EAAQnd,EAAQ,IAAwB,UAAY,CAAE,OAAOp6C,EAAa,IAAMhiF,CAAK,EAAI,UAAY,CAExG25I,EAAcV,CAAO,EAAI,GACzB,GAAI,CAEA,IAAIW,EAASjC,EAAYA,EAAU,IAAMzb,GACrC0d,IACAD,EAAcC,CAAM,EAAI,IAE5BF,EAASD,EAAgBF,CAAO,CACnC,OACMh+I,EAAO,CACV,IAAIs+I,EAAalC,EAAYgC,EAAchC,EAAU,GAAG,EAAI,GACxDkC,IAEAH,EAAS,KAET,CAAC/B,GAAa,CAACkC,IAGf3P,GAAeqP,EAAQjf,EAAoC,IAAI,EAAmC,GAA8C,WAAat4C,EAAa,mBAAqBhiF,EAAO,MAAQ6mI,GAAQtrI,CAAK,EAAI,gBAAkBsrI,GAAQ8S,CAAa,CAAC,CAE9Q,CACjB,EAAepO,EAASb,CAAO,EAEhBgP,CACV,CACD,SAASP,EAAkBd,EAAKkB,EAAS,CACrCA,EAAUA,GAAWD,IACrB,SAASQ,EAAsBP,EAAS,CACpC,GAAI,CAACjE,GAAU,CAACyD,EACZ,MAAO,GAEX,IAAInD,EAAcP,GAAgBC,CAAM,EACxC,OAAIM,EAAY7b,EAAa,GAA4B6b,EAAYtZ,EAAY,EACtE,IAKP0c,GAEA1D,EAAO/a,IAAkDod,CAAS,EAEtErC,EAAO7Y,EAAqB,EAAiC4b,EAAKkB,CAAO,EAElE,GACV,CACIC,EAAcD,EAASO,EAAuB,mBAAoB,UAAY,CAAE,MAAQ,CAAE,KAAMzB,CAAK,CAAI,EAAE,CAAEA,EAAI,IAAK,GAGvHkB,EAAQlgB,IAA6Cgf,CAAG,CAE/D,CACD,SAASe,EAAcW,EAAWvB,EAAa,CAC3C,SAASwB,GAAgB,CAErB,IAAIN,EAAS,GACb,GAAIpE,EAAQ,CACR,IAAIM,EAAcP,GAAgBC,CAAM,EACpC2E,EAAa3E,EAAOlZ,EAAQ,GAAKwZ,EAAYxZ,EAAQ,EAErDkZ,IAAW,CAAC2E,GAAcA,IAAeF,EAAU,KAAI,IAAO,CAACnE,EAAY7b,MAE3E6b,EAAYxZ,EAA4B,EAAG,KAC3CwZ,EAAY7b,EAAqC,EAAG,GACpD6b,EAAY7c,EAAgD,EAAG,GAC3Duc,EAAOvb,EAAa,GAA4Bub,EAAOvb,EAAa,EAAyBggB,EAAWvB,CAAW,IAAM,KAEzHkB,EAAS,IAGpB,CACD,OAAOA,CACV,CACIF,EAAcO,EAAWC,EAAe,SAAU,UAAY,GAAKxB,EAAYte,EAAa,CAAuB,GAEpH6f,EAAU1gB,IAA6Cmf,CAAW,CAEzE,CACD,SAASa,EAAca,EAAWxB,EAAa,CAC3C,SAASyB,GAAc,CAEnB,IAAIT,EAAS,GACb,GAAIpE,EAAQ,CACR,IAAIM,EAAcP,GAAgBC,CAAM,EACpC2E,EAAa3E,EAAOlZ,EAAQ,GAAKwZ,EAAYxZ,EAAQ,EAErDkZ,IAAW,CAAC2E,GAAcA,IAAeC,EAAU,KAAI,IAAO,CAACtE,EAAY7b,KACvEub,EAAOlb,EAAW,GAA0Bkb,EAAOlb,EAAW,EAAuB8f,EAAWxB,CAAW,IAAM,KAEjHgB,EAAS,GAGpB,CACD,OAAOA,CACV,CACIF,EAAcU,EAAWC,EAAa,SAAU,UAAY,GAAK,EAAK,GAEvED,EAAU7gB,IAA6Cqf,CAAW,CAEzE,CACD,OAAOzX,GAAUiY,CAAU,CAC/B,CCvbO,IAAIkB,GAA4B,IACnCC,GAA2B,kCAC/B,SAASC,GAAiBC,EAAcl8C,EAAO0qC,EAAM,CAC7C1qC,GAAS5/E,GAAQ4/E,CAAK,GAAKA,EAAM86B,EAAiC,EAAG,IACrE96B,EAAQA,EAAM,KAAK,SAAUhuH,EAAGK,EAAG,CAC/B,OAAOL,EAAEqsJ,EAAY,EAA2BhsJ,EAAEgsJ,EAAY,CAC1E,CAAS,EACDwD,GAAW7hC,EAAO,SAAUm8C,EAAW,CAC/BA,EAAU9d,EAAoC,EAAG0d,IACjDxY,GAAWyY,GAA2BG,EAAU3hB,EAAyC,EAEzG,CAAS,EACD0hB,EAAazhB,EAAS,EAAqB,CACvC,MAAOmI,GAAU5iC,CAAK,EACtB,MAAOy4C,GAA0Bz4C,EAAO0qC,EAAK/P,EAAW,EAAwB+P,CAAI,CAChG,CAAS,EAET,CACO,SAAS0R,GAA8BF,EAAcxR,EAAM,CAC9D,SAASuQ,GAAa,CAClB,OAAOpB,GAA8B,KAAMnP,EAAK/P,EAAW,EAAwB+P,EAAM,IAAI,CAChG,CACD,SAAS2R,EAAqBC,EAAapB,EAASqB,EAAWnD,EAAY,CACvE,IAAI7wC,EAAU+zC,EAAeA,EAAYxhB,EAAiC,EAAG,EAAK,EAClF,SAAS0hB,GAAsB,CAC3Bj0C,IACIA,IAAY,IACZ6wC,GAAcA,EAAU,EACxBA,EAAa,KAEpB,CACG7wC,EAAU,GACVs5B,GAAWya,EAAa,SAAUG,EAAU,CAExC,GAAIA,GAAYA,EAAS,MAAM3hB,EAAW,EAAyB,EAAG,CAClE,IAAI4hB,EAAeD,EAAS,MACxBE,EAAWzB,EAAQ/e,EAAwC,EAACugB,CAAY,EAC5EC,EAASthB,IAA2CmhB,CAAmB,EAEvED,EAAUI,CAAQ,CACrB,MAEGp0C,GAEpB,CAAa,EAELi0C,GACH,CACD,SAASI,EAAUf,EAAWxB,EAAa,CACvC,IAAIwC,EAAiBxC,GAAe,CAChC,OAAQ,CACpB,EACQ,OAAAgC,EAAqBH,EAAcL,EAAW,SAAUc,EAAU,CAC9DA,EAAS3hB,IAA6C6hB,CAAc,CAChF,EAAW,UAAY,CACXhB,EAAU7gB,IAA6C6hB,CAAc,CACjF,CAAS,EACM,EACV,CACD,SAASC,EAAYpB,EAAWvB,EAAa,CACzC,IAAI4C,EAAiB5C,GAAe,CAChC,OAAQ,EACR,QAAS,EACrB,EACQ,OAAAkC,EAAqBH,EAAcR,EAAW,SAAUiB,EAAU,CAC9DA,EAAS3hB,IAA6C+hB,CAAc,CAChF,EAAW,UAAY,CACXrB,EAAU1gB,IAA6C+hB,CAAc,EACrEtF,EAAgB,EAC5B,CAAS,EACM,EACV,CACD,SAASuF,EAAYC,EAAkB,CACnC,IAAIzF,EAAY,KAChB,OAAI0E,GAAgBA,EAAaphB,EAAW,EAAyB,GACjE+G,GAAWqa,EAAc,SAAUO,EAAU,CAEzC,GAAIA,GAAYA,EAAS,MAAM3hB,EAAW,EAAyB,IAC/D+G,GAAW4a,EAAS,MAAO,SAAUS,EAAK,CACtC,GAAIA,EAAI1iB,EAAyC,IAAKyiB,EAClD,OAAAzF,EAAY0F,EAEL,EAEnC,CAAqB,EACG1F,GAEA,MAAO,EAG/B,CAAa,EAEEA,CACV,CACD,IAAIC,EAAgB,GAChB0F,EAAoB,CACpB,WAAY,0BACZ,SAAUpB,GACV,WAAY,SAAU39I,EAAQssI,EAAMlhD,EAAY4zD,EAAa,CACzD3F,EAAgB,GAChB5V,GAAWqa,EAAc,SAAUO,EAAU,CACrCA,GAAYA,EAAS,MAAM3hB,EAAW,EAAyB,GAC/Doc,GAAkB2C,GAA8B4C,EAAS,MAAOr+I,EAAQssI,CAAI,EAAGlhD,CAAU,CAE7G,CAAa,CACJ,EACD,cAAe,UAAY,CACvB,OAAOiuD,CACV,EACD,iBAAkB,SAAUr4H,EAAM87H,EAAS,CACvCmB,EAAqBH,EAAchB,GAAWD,EAAY,EAAE,SAAU0B,EAAU,CAC5EA,EAAS3hB,IAA6C57G,CAAI,CAC1E,EAAe,UAAY,CACX87H,EAAQlgB,IAA6C57G,CAAI,CACzE,CAAa,CACJ,EACD,OAAQw9H,EACR,MAAO,UAAY,CACfP,EAAqBH,EAAcjB,EAAY,EAAE,SAAU0B,EAAU,CACjEA,EAAS,QAAQ,SAAU1F,EAAQ,CAC/BA,EAAO,OAASA,EAAO,OAC3C,CAAiB,CACJ,EAAE,IAAI,CACV,EACD,OAAQ,UAAY,CAChBoF,EAAqBH,EAAcjB,EAAY,EAAE,SAAU0B,EAAU,CACjEA,EAAS,QAAQ,SAAU1F,EAAQ,CAC/BA,EAAO,QAAUA,EAAO,QAC5C,CAAiB,CACJ,EAAE,IAAI,CACV,EACD,SAAU6F,EACV,WAAYE,EACZ,MAAO,SAAU3Q,EAASgR,EAAUC,EAAYC,EAAW,CAEvD,IAAIh1C,EAAU,EACVi1C,EAAgB,GAChBC,EAAU,KACdF,EAAYA,GAAa,IACzB,SAASG,GAAa,CAClBn1C,IACIi1C,GAAiBj1C,IAAY,IACzBk1C,IACA,aAAaA,CAAO,EACpBA,EAAU,MAEdJ,GAAYA,EAASG,CAAa,EAClCH,EAAW,KAElB,CACD,OAAAhB,EAAqBH,EAAcjB,EAAY,EAAE,SAAU0B,EAAU,CACjEA,EAAS,QAAQ,SAAU1F,EAAQ,CAC/B,GAAIA,EAAO1b,IAAiC,CACxChzB,IACA,IAAIo1C,EAAY,GAEX1G,EAAO1b,EAA+B,EAAC8Q,EAAS,UAAY,CAC7DsR,EAAY,GACZD,GACH,EAAEJ,CAAU,GACJK,IAIGtR,GAAWoR,GAAW,KACtBA,EAAU,WAAW,UAAY,CAC7BA,EAAU,KACVC,GACH,EAAEH,CAAS,EAGZG,IAIf,CACrB,CAAiB,CACjB,EAAe,UAAY,CACXF,EAAgB,GAChBE,GAChB,CAAa,EACM,EACV,EACD,UAAW,SAAU19C,EAAO,CACxBk8C,EAAel8C,CAClB,CACT,EACI,OAAOm9C,CACX,CACO,SAASS,GAAoBnB,EAAUjzD,EAAYkhD,EAAM,CAC5D,IAAIwR,EAAe,GAKnB,GAJIO,GAEA5a,GAAW4a,EAAU,SAAUz8C,EAAO,CAAE,OAAOi8C,GAAiBC,EAAcl8C,EAAO0qC,CAAI,CAAE,CAAE,EAE7FlhD,EAAY,CAEZ,IAAIq0D,EAAmB,GACvBhc,GAAWr4C,EAAY,SAAUytD,EAAQ,CACjCA,EAAO5Y,EAAoC,EAAG0d,IAC9C8B,EAAiBpjB,IAA8Bwc,CAAM,CAErE,CAAS,EACDgF,GAAiBC,EAAc2B,EAAkBnT,CAAI,CACxD,CACD,OAAOwR,CACX,CC/MO,SAAS4B,IAA+B,CAC3C,IAAIC,EAAW,GACf,SAASC,EAAYr6C,EAAS,CACtBA,GACAo6C,EAAStjB,IAA8B92B,CAAO,CAErD,CACD,SAASs6C,EAAavC,EAAWvB,EAAa,CAC1CtY,GAAWkc,EAAU,SAAUp6C,EAAS,CACpC,GAAI,CACAA,EAAQ+3C,EAAWvB,CAAW,CACjC,OACM7nK,EAAG,CACNu5J,GAAe6P,EAAUzf,EAAa,IAA2B,EAAkC,GAA8C,6CAA+CuM,GAAQl2J,CAAC,CAAC,CAC7M,CACb,CAAS,EACDyrK,EAAW,EACd,CACD,MAAO,CACH,IAAKC,EACL,IAAKC,CACb,CACA,CCnBA,IAAIC,GAAe,YAMfC,GAAqC,UAAY,CACjD,SAASA,GAAsB,CAC3B,IAAI7T,EAAQ,KAER8T,EACAC,EACAC,EACAC,EACAC,EACJC,IACA9lB,GAAawlB,EAAqB7T,EAAO,SAAUA,EAAO,CACtDA,EAAMjQ,EAAe,EAA6B,SAAUj8H,EAAQssI,EAAMlhD,EAAY4zD,EAAa,CAC/FsB,EAAatgJ,EAAQssI,EAAM0S,CAAW,EACtCgB,EAAiB,EACjC,EACY9T,EAAM5O,EAAa,EAA2B,SAAUggB,EAAWvB,EAAa,CAC5E,IAAI77I,EAGAosI,EAAOJ,EAAMvM,IACjB,GAAI,CAAC2M,GAASgR,GAAahR,IAASgR,EAAU3d,EAA4B,IAEtE,OAEJ,IAAIvhI,EACAmiJ,EAAa,GACbC,EAAelD,GAAaxB,GAAoC,KAAMxP,EAAM4T,GAAeA,EAAYJ,EAAY,EAAII,EAAYJ,EAAY,EAAG,EAAGI,CAAW,EAChKvB,EAAiB5C,IAAgB77I,EAAK,CAClC,OAAQ,CACX,EACDA,EAAGu9H,EAAa,EAAuB,GACvCv9H,GACJ,SAASugJ,GAAkB,CACvB,GAAI,CAACF,EAAY,CACbA,EAAa,GACbJ,EAAwB,IAAIK,EAAczE,CAAW,EACrD,IAAI2E,EAAWN,EACfA,EAAS,GAET3c,GAAWid,EAAU,SAAU5+G,EAAI,CAC/BA,EAAG,GAAE,CACjC,CAAyB,EACG1jC,IAAW,IACXoiJ,EAAa5jB,IAA6C+hB,CAAc,EAE5E0B,GACH,CACJ,CACD,MAAI,CAACnU,EAAMxO,EAA4C,GAAIwO,EAAMxO,IAA6C8iB,EAAc7B,EAAgB8B,CAAe,IAAM,GAC7JA,IAIAriJ,EAAS,GAENA,CACvB,EACY8tI,EAAMvO,EAAW,EAAyB,SAAU8f,EAAWxB,EAAa,CAGxE,IAAI3P,EAAOJ,EAAMvM,IACjB,GAAI,CAAC2M,GAASmR,GAAanR,IAASmR,EAAU9d,EAA4B,IAEtE,OAEJ,IAAIvhI,EACAuiJ,EAAa,GACbC,EAAenD,GAAazB,GAAoC,KAAM1P,EAAM4T,GAAeA,EAAYJ,EAAY,EAAII,EAAYJ,EAAY,EAAG,EAAGI,CAAW,EAChKzB,EAAiBxC,GAAe,CAChC,OAAQ,CAC5B,EACgB,SAAS4E,GAAkB,CAClBF,IACDA,EAAa,GACbL,EAAaM,EAAa,OAAM,EAAIA,EAAa,KAAI,EAAIA,EAAahjB,EAAoC,GAAE,EAEnH,CACD,MAAI,CAACsO,EAAM,WAAaA,EAAM,UAAU0U,EAAcnC,EAAgBoC,CAAe,IAAM,GACvFA,IAGAziJ,EAAS,GAENA,CACvB,EACY8tI,EAAM,SAAW,SAAU4U,EAAO,CAC1BA,IACI9+H,GAAQ8+H,CAAK,EACbV,EAASA,EAAO,OAAOU,CAAK,EAG5BV,EAAO/jB,IAA8BykB,CAAK,EAGlE,EACYrb,GAAgByG,EAAO,eAAgB,UAAY,CAAE,OAAOiU,CAAwB,EAAI,KAAK,CACzG,CAAS,EAEDjU,EAAMrO,IAAuC,SAAUif,EAAS,CAC5D,OAAOD,EAAWC,CAAO,EAAEjf,EAAoC,GAC3E,EACQqO,EAAM5P,EAAmB,EAAgC,UAAY,CACjE,OAAO0jB,CACnB,EACQ9T,EAAM,eAAiB,SAAUmN,EAAe,CAC5C2G,EAAiB3G,CAC7B,EAKQnN,EAAMpO,IAAoD,SAAU3sD,EAAM,CACtE+uE,EAAc/uE,CAC1B,EACQ+6D,EAAMtP,EAAiB,EAA8B,SAAUgf,EAAKkB,EAAS,CACrEA,EAEAA,EAAQlgB,IAA6Cgf,CAAG,EAEnDsE,GAAe9d,GAAW8d,EAAYlgB,EAAqD,IAGhGkgB,EAAYlgB,EAAqB,EAAiC4b,EAAK,IAAI,CAE3F,EACQ1P,EAAM,WAAa2Q,EACnB,SAASA,EAAWkE,EAAY,CACxBA,IAAe,SAAUA,EAAa,MAC1C,IAAIjE,EAAUiE,EACd,GAAI,CAACjE,EAAS,CACV,IAAIkE,EAAUf,GAAYxE,GAA8B,KAAM,GAAIvP,EAAMvM,EAAQ,CAAoB,EAEhGugB,GAAeA,EAAYJ,EAAY,EAEvChD,EAAUkE,EAAQjjB,EAAwC,EAAC,KAAMmiB,EAAYJ,EAAY,CAAC,EAG1FhD,EAAUkE,EAAQjjB,EAAwC,EAAC,KAAMmiB,CAAW,CAEnF,CACD,OAAOpD,CACV,CACD,SAASwD,EAAatgJ,EAAQssI,EAAM0S,EAAa,CACzCh/I,GAEAqgB,GAASrgB,EAAQ8/H,GAAsB,CAAE,EAAE,KAAMmC,EAAiB,EAElE,CAAC+c,GAAe1S,IAEhB0S,EAAc1S,EAAKzP,EAA8D,IAAGe,EAAoC,KAE5H,IAAIid,EAAaqF,EACbA,GAAeA,EAAYJ,EAAY,IAEvCjF,EAAaqF,EAAYJ,EAAY,KAGzC5T,EAAMvM,EAA4B,EAAG2M,EACrC2T,EAAWxE,GAA8BuD,EAAah/I,EAAQssI,EAAMuO,CAAU,CACjF,CACD,SAASwF,GAAgB,CACrBL,EAAiB,GACjB9T,EAAMvM,EAA4B,EAAG,KACrCsgB,EAAW,KACXC,EAAc,KACdE,EAAS,GACTD,EAA0BT,GAA4B,CACzD,CACJ,CASD,OAAAK,EAAoB,QAAQ,EAErBA,CACX,ICzLIkB,GAA4C,SAAU7wI,EAAQ,CAC9DtT,GAAUmkJ,EAA4B7wI,CAAM,EAC5C,SAAS6wI,GAA6B,CAClC,IAAItgJ,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjCzP,EAAM,WAAa,6BACnBA,EAAM,SAAW,IAEjB,IAAI41G,EACA2qC,EACJb,IACA9lB,GAAa0mB,EAA4BtgJ,EAAO,SAAUurI,EAAOiV,EAAO,CACpEjV,EAAM,wBAA0B,SAAUkV,EAAsB,CAC5D,IAAIC,EAAiB,CACjB,GAAI9qC,IACJ,GAAI6qC,CACxB,EACgBF,EAAc7kB,IAA8BglB,CAAc,EAC1D,IAAI97C,EAAU,CACV,OAAQ,UAAY,CAChBk+B,GAAWyd,EAAe,SAAUI,EAAap0G,EAAK,CAClD,GAAIo0G,EAAY,KAAOD,EAAe,GAClC,OAAAH,EAAc7jB,EAAW,EAAuBnwF,EAAK,CAAC,EAC/C,EAEvC,CAAyB,CACJ,CACrB,EACgB,OAAOq4D,CACvB,EACY2mC,EAAMlM,EAAqB,EAAmC,SAAUh/G,EAAM87H,EAAS,CAGnF,QAFIyE,EAAgB,GAChBC,EAA6BN,EAAcxkB,IACtCx/H,EAAI,EAAGA,EAAIskJ,EAA4B,EAAEtkJ,EAAG,CACjD,IAAIkkJ,EAAuBF,EAAchkJ,CAAC,EAC1C,GAAIkkJ,EACA,GAAI,CACA,GAAIA,EAAqB,GAAG5iB,EAA+B,EAAC,KAAM,CAACx9G,CAAI,CAAC,IAAM,GAAO,CACjFugI,EAAgB,GAChB,KACH,CACJ,OACMrtK,EAAG,CAGNu5J,GAAeqP,EAAQjf,EAAa,EAAyB,EAAE,EAAmC,GAAyD,0EAA4E8G,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAC,EAAI,EAAI,CAC9R,CAER,CACIqtK,GACDrV,EAAMtP,EAAiB,EAA4B57G,EAAM87H,CAAO,CAEpF,EACY5Q,EAAMxO,EAAiB,EAA8B,UAAY,CAC7D2iB,GAChB,CACA,CAAS,EACD,SAASA,GAAgB,CACrB9pC,EAAM,EACN2qC,EAAgB,EACnB,CACD,OAAOvgJ,CACV,CAMD,OAAAsgJ,EAA2B,QAAQ,EAE5BA,CACX,EAAElB,EAAmB,EC7DjB0B,GAAqB,yCACrBC,GAAyB,uBACzBC,GAAuB,4BACvBC,GAAuB,yBAEvBC,GAAoB,CAEpB,oBAAqB,CACzB,EAMA,SAASC,GAAmBxV,EAAMyV,EAAiB,CAC/C,OAAO,IAAIxT,GAAYwT,CAAe,CAC1C,CACA,SAASC,GAAoBxU,EAAQyU,EAAiBC,EAAe,CACjE,IAAIhiJ,EAEAiiJ,EAAiB,GAGjBC,EAAgB,GAEpB,OAAA3e,GAAWye,EAAe,SAAUpD,EAAK,EAEjC7c,GAAkB6c,CAAG,GAAK7c,GAAkB6c,EAAI7iB,EAAe,CAA0B,IACzFkJ,GAAWsc,EAAkB,EAEjC,IAAIY,EAAcvD,EAAI7e,IAClB16C,EAAau5D,EAAI1iB,IACjB0iB,GAAOuD,IACFpgB,GAAkBmgB,EAAcC,CAAW,CAAC,EAK7CD,EAAcC,CAAW,EAAI98D,EAJ7BmoD,GAAeF,EAAQ,sCAAwC6U,EAAc,MAAQD,EAAcC,CAAW,EAAI,KAAO98D,CAAU,IAQvI,CAAC88D,GAAeA,EAAcJ,IAE9BE,EAAe9lB,IAA8ByiB,CAAG,CAE5D,CAAK,EACM5+I,EAAK,CACJ,IAAKgiJ,CACR,EACDhiJ,EAAGy/H,EAAQ,EAAoBwiB,EAC/BjiJ,CACR,CACA,SAASoiJ,GAAiBlJ,EAAWG,EAAS,CAC1C,IAAIgJ,EAAS,GACb,OAAA9e,GAAW8V,EAAS,SAAUV,EAAQ,CAClC,GAAIA,IAAWO,EACX,OAAAmJ,EAAS,GACF,EAEnB,CAAK,EACMA,CACX,CACA,SAASC,IAAkC,CACvC,IAAItiJ,EACJ,OAAOw7H,IAAax7H,EAAK,CAAE,EACvBA,EAAG48H,EAA0B,EAAuC,SAAUppD,EAAU,CAAG,EAC3FxzE,EAAG68H,EAA0B,EAA0C,SAAUrpD,EAAU,CAAG,EAC9FxzE,EAAGggI,EAAe,EAA0B,SAAU9yH,EAAQ,CAAG,EACjElN,EAAGigI,EAAgD,EAAG,SAAU/yH,EAAQi5F,EAAQ,CAAG,EACnFnmG,EAAGkgI,EAAqD,EAAG,SAAU8e,EAAYjR,EAAS,CAAG,EAC7F/tI,GACR,CACA,IAAIuiJ,GAA0B,UAAY,CACtC,SAASA,GAAW,CAEhB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3Y,EACA4Y,EAIAC,EAAqB,EACzBtpB,GAAakoB,EAAU,KAAM,SAAUvW,EAAO,CAE1CmU,IACAnU,EAAM5P,EAAgD,EAAG,UAAY,CAAE,OAAOqmB,CAAe,EAE7FzW,EAAMjQ,EAAe,EAA6B,SAAUj8H,EAAQorF,EAAYoiD,EAAQsW,EAAqB,CACrGP,GACApe,GAAWwc,EAAoB,EAG/BzV,EAAM5P,EAAmB,KACzB6I,GAAW,+CAA+C,EAE9Dud,EAAU1iJ,GAAU,GACpBksI,EAAM3P,EAAiC,EAAGmmB,EACtCzgB,GAAkBjiI,EAAOw8H,EAAwB,CAAkC,GACnF2I,GAAW,oCAAoC,EAEnD0d,EAAuBiB,EAEvB5X,EAAMwV,EAAsB,EAAIoC,EAChCC,IACAC,IAEAC,IACIzW,IACAtB,EAAMzP,EAAiC,EAAG+Q,GAE9C,IAAI0W,EAAgBnf,GAAY2d,EAAS3iB,GAAgB,CAAE,GAE3DmjB,EAAoB,GACpBA,EAAkB7mB,EAAS,EAAqB,MAAM6mB,EAAmBnkJ,GAAcA,GAAc,GAAIqsF,EAAY,EAAK,EAAG84D,CAAoB,CAAC,EAClJb,EAAiBte,GAAY2d,EAAShjB,GAAc,CAAE,GACtDykB,EAAiB,IAAI,GACjB,CAACb,GAAiBA,EAAc5mB,EAAW,IAA2B,IACtEyI,GAAW,MAAQzF,GAAe,YAAY,EAElDijB,EAAiB,GACjBzW,EAAM,aAAY,CAClC,EACYA,EAAM,wBAA0B,UAAY,CACxC,IAAIkY,EAAW,GACf,OAAId,GACA7f,GAAW6f,EAAe,SAAUjF,EAAU,CAC1C+F,EAAS/nB,EAAS,EAAqBgiB,EAAS,KAAK,CAC7E,CAAqB,EAEE7Z,GAAU4f,CAAQ,CACzC,EACYlY,EAAM,MAAQ,SAAUmY,EAAe,CAEnCA,EAAc,KAAOA,EAAc,MAAQ3B,EAAQlmB,EAAwB,EAE3E6nB,EAAc1nB,EAA6B,EAAG0nB,EAAc1nB,EAA6B,GAAIyG,GAAY,IAAI,IAAM,EAEnHihB,EAAc,IAAMA,EAAc,KAAO,MACrC,CAACd,GAAgBrX,EAAM5P,EAAgD,IAEvEgoB,IAAgB1nB,IAA6CynB,CAAa,EAI1EzB,EAAYvmB,IAA8BgoB,CAAa,CAE3E,EACYnY,EAAMrP,EAA8D,EAAGynB,EACvEpY,EAAM/P,EAAmB,EAA+B,UAAY,CAChE,OAAK0mB,IAEDA,EAAuBL,GAA+B,EAEtDtW,EAAMwV,EAAsB,EAAImB,GAE7BA,CACvB,EAOY3W,EAAMpP,IAAoE,SAAUppD,EAAU,CACtFmvE,GACAA,EAAqB/lB,IAAkEppD,CAAQ,CAEnH,EAKYw4D,EAAMnP,IAAuE,SAAUrpD,EAAU,CACzFmvE,GACAA,EAAqB9lB,IAAqErpD,CAAQ,CAEtH,EACYw4D,EAAM,aAAe,UAAY,CAC7B,OAAK8W,IACDA,EAAiBnR,GAAgB6Q,EAASxW,EAAMzP,EAAiC,IAE9EumB,CACvB,EACY9W,EAAM,aAAe,SAAU6F,EAAW,CACtCiR,EAAiBjR,CACjC,EACY7F,EAAM1L,EAAgB,EAA6B,UAAY,CAC3D,GAAI,CAACsiB,GAAgB,CAACC,GACd9d,GAAYyd,EAAQ,aAAa,EAAG,CACpC,IAAI6B,EAAgBtf,GAAYyd,EAAQ9iB,EAAgD,GACpFwC,GAAWmiB,CAAa,IACxBxB,EAAkBwB,EAAcrY,EAAOA,EAAM/P,EAAmB,EAA8B,GAErG,CAEL,OAAO2mB,GAAgBC,GAAmB5T,IAC1D,EACYjD,EAAM,WAAa,SAAU6C,EAAS,CAClC+T,EAAe/T,CAC/B,EACY7C,EAAM,SAAW,UAAY,CACzB,OAAO0W,EAAYlmB,GACnC,EACYwP,EAAM,aAAe,UAAY,CAC7B,GAAIyW,GAAkBC,EAAYlmB,EAAW,EAAyB,EAAG,CACrE,IAAI8nB,EAAa5B,EACjBA,EAAc,GACdnf,GAAW+gB,EAAY,SAAU92I,EAAO,CACpC42I,IAAgB1nB,IAA6ClvH,CAAK,CAC1F,CAAqB,CACJ,CACjB,EAIYw+H,EAAM,iBAAmB,SAAUp/H,EAAW,CAC1C22I,EAAyB32I,GAAa,KACtC,IAAI23I,EAAWxf,GAAYyd,EAAQ,qBAAqB,EACxD,OAAI,CAAC+B,GAAY,EAAEA,EAAW,MAC1BA,EAAW,KAEXZ,GACA,cAAcA,CAAkB,EAEpCA,EAAqB,YAAY,UAAY,CACzCa,GACH,EAAED,CAAQ,EACJZ,CACvB,EAIY3X,EAAMlP,EAA0B,EAA0C,UAAY,CAC9E6mB,IACA,cAAcA,CAAkB,EAChCA,EAAqB,EACrBa,IAEpB,EAEY/e,GAAeuG,EAAO,UAAY,CAAE,OAAOsX,GAAgC,CAAC,yBAAyB,CAAC,EACtGtX,EAAM,OAAS,SAAU+B,EAAS0W,EAAgBxF,EAAW,CACzD,IAAIj/I,EACA+tI,IAAY,SAAUA,EAAU,IAC/B0U,GAEDxd,GAAWyc,EAAoB,EAG/B2B,GAEApe,GAAWwc,EAAoB,EAEnC,IAAI5F,GAAe77I,EAAK,CAChB,OAAQ,EACX,EACDA,EAAGu9H,EAAa,EAAuBwQ,EACvC/tI,EAAG,cAAgB,GACnBA,GACA0kJ,EAAmB9I,GAAoC+I,EAAiB,EAAE3Y,CAAK,EACnF0Y,EAAiB3nB,EAAgB,EAA2B,UAAY,CACpEojB,IACAsE,GAAkBA,EAAe5I,CAAW,CAC/C,EAAE7P,CAAK,EACR,SAAS4Y,EAAUC,EAAe,CAC9BhJ,EAAY,cAAgBgJ,EAC5BxB,EAAe,GAEfI,EAAgB,IAAIiB,EAAkB7I,CAAW,EAEjD7P,EAAMlP,EAA0B,IAEhC4nB,EAAiBhoB,IAA6Cmf,CAAW,CAC5E,CACIiJ,EAAe/W,EAAS6W,EAAW,EAAqC3F,CAAS,GAClF2F,EAAU,EAAK,CAEnC,EACY5Y,EAAMhP,EAAwC,EAAG+nB,EACjD/Y,EAAM,UAAY,SAAU2M,EAAQqM,EAAiBjX,EAASkX,EAAO,CACjE,GAAI,CAACtM,EAAQ,CACTsM,GAASA,EAAM,EAAK,EACpBC,EAAiB3D,EAAkB,EACnC,MACH,CACD,IAAI4D,EAAiBJ,EAAWpM,EAAOzc,EAAyC,GAChF,GAAIipB,GAAkB,CAACH,EAAiB,CACpCC,GAASA,EAAM,EAAK,EACpBC,EAAiB,WAAavM,EAAOzc,EAAyC,EAAG,sBAAsB,EACvG,MACH,CACD,IAAI6f,EAAc,CACd,OAAQ,EAC5B,EACgB,SAASqJ,EAAWC,GAAS,CACzBrC,EAAkB7mB,IAA8Bwc,CAAM,EACtDoD,EAAY,MAAQ,CAACpD,CAAM,EAE3BsL,EAAiBlI,CAAW,EAC5BkJ,GAASA,EAAM,EAAI,CACtB,CACD,GAAIE,EAAgB,CAChB,IAAIG,EAAmB,CAACH,EAAe,MAAM,EACzCtJ,GAAc,CACd,OAAQ,EACR,QAAS,CAAC,CAAC9N,CACnC,EACoBwX,EAAeD,EAAkBzJ,GAAa,SAAUwJ,GAAS,CACxDA,IAKDtJ,EAAY,QAAUuJ,EACtBvJ,EAAY,QAAU,GACtBqJ,EAAe,GALfH,GAASA,EAAM,EAAK,CAOhD,CAAqB,CACJ,MAEGG,EAAgB,CAEpC,EACYpZ,EAAM,aAAe,UAAY,CAC7B,OAAOwX,CACvB,EACYxX,EAAM/O,EAA+B,EAAG6nB,EACxC9Y,EAAM,YAAc,SAAUwZ,EAAW,CACrC,OAAK9B,IACDA,EAAYjK,GAA6B,GAEtCiK,CACvB,EACY1X,EAAM,YAAc,SAAUyZ,EAAU,CACpC/B,EAAY+B,GAAY,IACxC,EAEYlgB,GAAgByG,EAAO,cAAe,UAAY,CAAE,OAAOyX,CAAgB,EAAI,KAAK,EACpF,SAAStD,GAAgB,CACrBsC,EAAiB,GAEjBD,EAAUvc,GAAU,GAAM,CAAE,EAAE0b,EAAiB,EAC/C3V,EAAM3P,EAAiC,EAAGmmB,EAC1CxW,EAAMzP,EAAiC,EAAG,IAAI8P,GAAiBmW,CAAO,EACtExW,EAAM9O,EAA2C,EAAG,GACpDomB,EAA8B,IAAIvC,GAClC2B,EAAc,GACdC,EAAuB,KACvBC,EAAe,KACfC,EAAkB,KAClBC,EAAiB,KACjBC,EAAe,KACfE,EAAkB,KAClBD,EAAoB,GACpBE,EAAkB,KAClBC,EAAiB,KACjBC,EAAgB,KAChBC,EAAe,GACfE,EAAyB,KACzBC,EAAgBhT,GAAsB,aAAc,EAAI,EACxDiT,EAAkBjE,GAA4B,EAC9CkE,EAAY,IACf,CACD,SAASU,GAAgB,CACrB,OAAO7I,GAA8BoJ,EAAe,EAAInC,EAASxW,CAAK,CACzE,CAED,SAASiY,EAAiBlI,EAAa,CAEnC,IAAI2J,EAAgB5D,GAAoB9V,EAAMzP,EAAW,EAAwBkhB,GAA2BuF,CAAiB,EAC7HC,EAAkByC,EAAcjmB,IAChCsjB,EAAe,KAEf,IAAIf,EAAgB0D,EAAc,IAGlC,GADAtC,EAAgB9e,GAAUgb,GAAoB6D,EAAgBnB,EAAehW,CAAK,CAAC,EAC/EkX,EAAiB,CAKjB,IAAIl2G,EAAMw2F,GAAWwe,EAAekB,CAAe,EAC/Cl2G,IAAQ,IACRg1G,EAAc7kB,EAAW,EAAuBnwF,EAAK,CAAC,EAE1DA,EAAMw2F,GAAWyf,EAAiBC,CAAe,EAC7Cl2G,IAAQ,IACRi2G,EAAgB9lB,EAAW,EAAuBnwF,EAAK,CAAC,EAE5Dk2G,EAAgB,UAAUE,CAAa,CAC1C,MAEGF,EAAkBpF,GAA8BsF,EAAepX,CAAK,EAGxEgW,EAAc7lB,IAA8B+mB,CAAe,EAC3DD,EAAgB9mB,IAA8B+mB,CAAe,EAE7DlX,EAAM9O,EAAgB,EAA8Bkc,GAAY4I,CAAa,EAE7EkB,EAAgBnnB,EAAyC,EAACymB,EAASxW,EAAOgW,CAAa,EACvFpJ,GAAkBwL,IAAiBpC,CAAa,EAEhDhW,EAAM9O,EAA2C,EAAGoH,GAAU8U,GAAY6J,GAAmB,CAAE,EAAC,EAAE,QAC9FlH,GACAuC,EAAUvC,CAAW,CAE5B,CACD,SAASgJ,EAAWpG,EAAkB,CAClC,IAAI3+I,EACA2lJ,EAAS,KACTzM,EAAY,KAChB,OAAA3V,GAAWyI,EAAM9O,EAA2C,EAAE,SAAU0hB,EAAK,CACzE,GAAIA,EAAI1iB,MAA8CyiB,GAAoBC,IAAQsE,GAAmBtE,IAAQ0E,EACzG,OAAApK,EAAY0F,EACL,EAE/B,CAAiB,EACG,CAAC1F,GAAagK,IAEdhK,EAAYgK,EAAgB,WAAWvE,CAAgB,GAEvDzF,IACAyM,GAAU3lJ,EAAK,CACP,OAAQk5I,CACX,EACDl5I,EAAGm+H,IAA0C,SAAUh7G,EAAS,CAC5Du1H,GAAgBQ,CAAS,EAAEvZ,EAAY,EAAI,CAACx8G,CAC/C,EACDnjB,EAAG,UAAY,UAAY,CACvB,IAAIi5I,EAAcP,GAAgBQ,CAAS,EAC3C,MAAO,CAACD,EAAY7b,EAAa,GAA4B,CAAC6b,EAAYtZ,EAAY,CACzF,EACD3/H,EAAG,OAAS,SAAU+tI,EAAS6X,EAAU,CACrC,IAAI5lJ,EACA+tI,IAAY,SAAUA,EAAU,IACpC,IAAI8X,EAAkB,CAAC3M,CAAS,EAC5B2C,IAAe77I,EAAK,CAChB,OAAQ,CACX,EACDA,EAAGu9H,EAAa,EAAuBwQ,EACvC/tI,GACJulJ,EAAeM,EAAiBhK,GAAa,SAAUwJ,GAAS,CACxDA,IAEApB,EAAiB,CACb,OAAQ,GACR,QAAS4B,CACjD,CAAqC,EAELD,GAAYA,EAASP,EAAO,CAC5D,CAA6B,CACJ,EACDrlJ,IAED2lJ,CACV,CACD,SAAShB,GAAkB,CACvB,GAAI,CAAC5B,EAAc,CAEf,IAAI73D,GAAc+3D,GAAmB,CAAE,GAAE,MAAK,EAE1Czf,GAAWt4C,EAAYo4D,CAA2B,IAAM,IACxDp4D,EAAWixC,IAA8BmnB,CAA2B,EAExEP,EAAe5I,GAA0Bf,GAAYluD,CAAU,EAAGs3D,EAASxW,CAAK,CACnF,CACD,OAAO+W,CACV,CACD,SAASwC,EAAeO,EAAYjK,EAAakK,EAAgB,CAC7D,GAAID,GAAcA,EAAWtpB,EAAW,EAAyB,EAAG,CAChE,IAAIwpB,EAAc7L,GAA0B2L,EAAYtD,EAASxW,CAAK,EAClEoR,EAAYxB,GAAoCoK,EAAaha,CAAK,EACtEoR,EAAUrgB,EAAgB,EAA2B,UAAY,CAC7D,IAAIsoB,EAAU,GAEVY,EAAsB,GAC1B1iB,GAAWyf,EAAmB,SAAUrK,GAAQ3rG,GAAK,CAC5Co1G,GAAiBzJ,GAAQmN,CAAU,EAIpCT,EAAU,GAHVY,EAAoB9pB,IAA8Bwc,EAAM,CAKxF,CAAyB,EACDqK,EAAoBiD,EAEpB,IAAIC,EAAmB,GACnB/C,IACA5f,GAAW4f,EAAgB,SAAUzhD,GAAO10D,GAAK,CAC7C,IAAIm5G,GAAW,GACf5iB,GAAW7hC,GAAO,SAAU0kD,GAAS,CAC5BhE,GAAiBgE,GAASN,CAAU,EAIrCT,EAAU,GAHVc,GAAShqB,IAA8BiqB,EAAO,CAKtF,CAAiC,EACDF,EAAiB/pB,IAA8BgqB,EAAQ,CACvF,CAA6B,EACDhD,EAAiB+C,GAErBH,GAAkBA,EAAeV,CAAO,CAChE,CAAqB,EACDjI,EAAU1gB,IAA6Cmf,CAAW,CACrE,MAEGkK,EAAe,EAAK,CAE3B,CACD,SAASvB,GAAqB,CAC1B,IAAI9iD,EAAQsqC,EAAMzP,EAAiC,EAAGyP,EAAMzP,EAAiC,EAAC,MAAQ,GAClG76B,IACA6hC,GAAW7hC,EAAO,SAAUwrC,EAAY,CACpC,IAAIltI,EACA8gB,GAAQ9gB,EAAK,CAAE,EACfA,EAAGg8H,EAAS,EAAoBunB,GAAkD,sBAAwBrW,EAAW7P,EAAwC,EAC7Jr9H,EAAG,KAAO+kI,GAAYyd,EAAQlmB,EAAwB,CAAkC,EACxFt8H,EAAG,KAAOkjI,GAAY,IAAI,IAAM,EAChCljI,EAAG,SAAW4rI,GAAoB,SAClC5rI,EAAG,SAAW,CAAE,QAASktI,EAAW5P,EAAY,CAAyB,EACzEt9H,GACJgsI,EAAM,MAAMlrH,CAAI,CACxC,CAAqB,EACD4gF,EAAM86B,EAAiC,EAAG,EAEjD,CACD,SAASsoB,EAAe/W,EAASgR,EAAUC,EAAYC,EAAW,CAC9D,OAAIiE,EACOA,EAAgBjmB,EAAU,EAAsB8Q,EAASgR,EAAUC,GAAc,EAAqCC,CAAS,GAE1IF,GAAYA,EAAS,EAAK,EACnB,GACV,CACD,SAAS8E,GAAqB,CAC1B,IAAIwC,EAAgBthB,GAAYyd,EAAQ,aAAa,EACjD6D,IAAkB,IAAQvb,IAE1B6X,EAAqB9lB,IAAqEiO,CAAc,EACxGA,EAAiB,MAEjB6X,GAAwB,CAAC7X,GAAkBub,IAAkB,KAC7Dvb,EAAiBM,GAAiBoX,CAAO,EACzCG,EAAqB/lB,IAAkEkO,CAAc,EAE5G,CACD,SAASgZ,GAAmB,CACxB,IAAIwC,EAAgBvhB,GAAYyd,EAAQ,aAAa,EACjD,CAAC8D,GAAiBzD,IAElBA,EAAkB,MAElByD,GAEAzhB,GAAY2d,EAAS9iB,GAAqBkiB,EAAkB,CAEnE,CACD,SAASmC,GAAiB,CACtB,IAAI3I,EAAYvW,GAAY2d,EAAS5iB,GAAsB,CAAE,GAC7Dwb,EAAU,oBAAsBuH,CACnC,CACD,SAASrE,EAAUvC,EAAa,CAC5B,IAAIwB,EAAYzB,GAAoC6I,EAAiB,EAAE3Y,CAAK,GACxE,CAACA,EAAM,aAAeA,EAAM,YAAYuR,EAAWxB,CAAW,IAAM,KACpEwB,EAAU7gB,IAA6Cqf,CAAW,CAEzE,CACD,SAASmJ,EAAiBz1I,EAAS,CAC/B,IAAI69H,EAAStB,EAAMzP,IACf+Q,EAEAC,GAAeD,EAAQ,EAAkC,GAA8C79H,CAAO,EAG9Gw1H,GAAWx1H,CAAO,CAEzB,CACb,CAAS,CACJ,CA6BD,OAAA8yI,EAAS,QAAQ,EAEVA,CACX,ICloBA,SAASgE,GAActpC,EAAW55G,EAAM0qI,EAASvtI,EAAU,CACvD+iI,GAAWtmB,EAAW,SAAUzpC,EAAU,CACtC,GAAIA,GAAYA,EAASnwE,CAAI,EACzB,GAAI0qI,EACA,WAAW,UAAY,CAAE,OAAOvtI,EAASgzE,CAAQ,CAAE,EAAI,CAAC,MAGxD,IAAI,CACAhzE,EAASgzE,CAAQ,CACpB,MACS,CAET,CAGjB,CAAK,CACL,CAIA,IAAIgzE,GAAqC,UAAY,CACjD,SAASA,EAAoB1mJ,EAAQ,CACjC,KAAK,UAAY,GACjB,IAAI2mJ,EAAkB,CAAC,EAAE3mJ,GAAU,IAAI,gBACvCu6H,GAAamsB,EAAqB,KAAM,SAAUxa,EAAO,CACrDA,EAAMpP,IAAoE,SAAUppD,EAAU,CAC1Fw4D,EAAM,UAAU7P,EAA6B,EAAC3oD,CAAQ,CACtE,EAKYw4D,EAAMnP,IAAuE,SAAUrpD,EAAU,CAE7F,QADI5wE,EAAQ4gI,GAAWwI,EAAMlN,EAAuC,EAAEtrD,CAAQ,EACvE5wE,EAAQ,IACXopI,EAAM,UAAU7O,EAAiC,EAACv6H,EAAO,CAAC,EAC1DA,EAAQ4gI,GAAWwI,EAAMlN,EAAuC,EAAEtrD,CAAQ,CAE9F,EAKYw4D,EAAMhM,IAA4C,SAAU9yH,EAAQ,CAChEq5I,GAAcva,EAAMlN,EAAc,EAA2BkB,GAAiB,GAAM,SAAUxsD,EAAU,CACpGA,EAASwsD,IAA0C9yH,CAAM,CAC7E,CAAiB,CACjB,EAOY8+H,EAAM/L,EAAoB,EAAkC,SAAU/yH,EAAQi5F,EAAQ,CAClFogD,GAAcva,EAAMlN,EAAc,EAA2BmB,GAAsB,GAAM,SAAUzsD,EAAU,CACzGA,EAASysD,EAAoB,EAAgC/yH,EAAQi5F,CAAM,CAC/F,CAAiB,CACjB,EAMY6lC,EAAM9L,EAAuB,EAAoC,SAAU8e,EAAYjR,EAAS,CAC5FwY,GAAcva,EAAMlN,EAAc,EAA2BoB,GAAyB6N,EAAS,SAAUv6D,EAAU,CAC/GA,EAAS0sD,EAAuB,EAAkC8e,EAAYjR,CAAO,CACzG,CAAiB,CACjB,EACY/B,EAAM7L,IAA0C,SAAUoO,EAAW,CAC7DA,IAEIkY,GAAmB,CAAClY,EAAUxP,EAA2C,MACzEwnB,GAAcva,EAAMlN,EAAc,EAA2BqB,GAAgB,GAAO,SAAU3sD,EAAU,CAChG+6D,EAAUhR,IACV,WAAW,UAAY,CAAE,OAAO/pD,EAAS2sD,EAAuC,EAACoO,CAAS,GAAM,CAAC,EAGjG/6D,EAAS2sD,IAAwCoO,CAAS,CAE1F,CAAyB,CAGzB,CACA,CAAS,CACJ,CASD,OAAAiY,EAAoB,QAAQ,EAErBA,CACX,IC5FIE,GAAiC,SAAUx2I,EAAQ,CACnDtT,GAAU8pJ,EAAiBx2I,CAAM,EACjC,SAASw2I,GAAkB,CACvB,IAAIjmJ,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjC,OAAAmqH,GAAaqsB,EAAiBjmJ,EAAO,SAAUurI,EAAOiV,EAAO,CACzDjV,EAAMjQ,EAAe,EAA6B,SAAUj8H,EAAQorF,EAAYoiD,EAAQsW,EAAqB,CACzG3C,EAAMllB,EAAyC,EAACj8H,EAAQorF,EAAYoiD,GAAU,IAAIjB,GAAiBvsI,CAAM,EAAG8jJ,GAAuB,IAAI4C,GAAoB1mJ,CAAM,CAAC,CAClL,EACYksI,EAAM,MAAQ,SAAUmY,EAAe,CACnC1V,GAAOzC,EAAM1L,EAA0C,IAAI,UAAY,CAAE,MAAO,uBAAwB,EAAI,UAAY,CAChH6jB,IAAkB,OAClBwC,EAAoBxC,CAAa,EAEjClf,GAAW,wBAAwB,GAGvC2hB,EAAuBzC,CAAa,EACpClD,EAAM,MAAMkD,CAAa,CAC7C,EAAmB,UAAY,CAAE,MAAQ,CAAE,KAAMA,CAAa,CAAI,EAAI,CAAEA,EAAc,IAAK,CAC3F,EACY,SAASyC,EAAuBzC,EAAe,CACvCpiB,GAAkBoiB,EAAcnoB,EAAS,CAAoB,IAC7D2qB,EAAoBxC,CAAa,EACjClf,GAAW,yBAAyB,EAE3C,CACD,SAAS0hB,EAAoBxC,EAAe,CACxC,IAAI7V,EAAUtC,EAAM/P,EAAmB,IACnCqS,GACAA,EAAQrO,EAAmD,EAAC,CAACkkB,CAAa,EAAG,CAAC,CAErF,CACb,CAAS,EACM1jJ,CACV,CAMD,OAAAimJ,EAAgB,QAAQ,EAEjBA,CACX,EAAEnE,EAAQ,EChDNsE,GAAoB,WACpBC,GAAU,CACV,MAAO,MAAO,QAAS,OAC3B,EAEA,SAASC,GAAShnD,EAAKn+D,EAAI,CACvB,GAAIm+D,EACA,QAASk4B,EAAK,EAAGA,EAAKl4B,EAAIy8B,EAAW,GAC7B,CAAA56F,EAAGm+D,EAAIk4B,CAAE,EAAGA,CAAE,EADuCA,IACzD,CAKZ,CAEA,SAAS+uB,GAAapG,EAAOqG,EAAaC,EAAQC,EAASjmF,EAAM,CACzDA,GAAQ,GAAgCA,GAAQ,GAChD6lF,GAASnG,EAAO,SAAUwG,EAAMp6G,EAAK,CACjC,IAAIq6G,EAAOD,EAAK,KACZ/tK,EAAKguK,EAAKP,GAAQ5lF,CAAI,CAAC,EAC3B,GAAI7nF,EAAI,CAEJ4tK,EAAY,IAAM,UAAY,CAC1B,IAAIlqE,EAAMoqE,EAAQn6G,CAAG,EAAKm6G,EAAQn6G,CAAG,GAAK,GAC1C,OAAO+vC,CAC3B,EACgB,GAAI,CACA1jG,EAAGilJ,EAA+B,EAAC2oB,EAAY,KAAMC,CAAM,CAC9D,OACMhrJ,EAAK,CACR,IAAIorJ,EAAQL,EAAY,IACxB,GAAI,CAEA,IAAIM,EAAcF,EAAKP,GAAQ,CAA+B,GAC1DS,IACAN,EAAY,IAAM/qJ,EAClBqrJ,EAAYjpB,EAA+B,EAAC2oB,EAAY,KAAMC,CAAM,EAE3E,MACS,CAET,QACO,CAEJD,EAAY,IAAMK,CACrB,CACJ,CACJ,CACb,CAAS,CAET,CAEA,SAASE,GAAoBC,EAAQ,CAEjC,OAAO,UAAY,CACf,IAAIznJ,EACA0nJ,EAAW,KAEXC,EAAU,UACV/G,EAAQ6G,EAAO,EACfG,GAAY5nJ,EAAK,CAAE,EACnBA,EAAGg8H,IAA6ByrB,EAAO,EACvCznJ,EAAG,KAAO0nJ,EACV1nJ,EAAG,IAAM,KACTA,EAAG,IAAM6nJ,EACT7nJ,GACAmnJ,EAAU,GACVD,EAASY,EAAY,CAACF,CAAQ,EAAGD,CAAO,EAC5CC,EAAS,IAAMhf,GAAc,OAAO,EACpC,SAASkf,EAAY1qJ,EAAQopI,EAAS,CAClC,OAAAugB,GAASvgB,EAAS,SAAUrkI,EAAK,CAC7B/E,EAAO++H,IAA8Bh6H,CAAG,CACxD,CAAa,EACM/E,CACV,CACD,SAASyqJ,EAAY76G,EAAKpvC,EAAO,CAC7B+pJ,EAAUG,EAAY,GAAIH,CAAO,EACjCA,EAAQ36G,CAAG,EAAIpvC,EACfspJ,EAASY,EAAY,CAACF,CAAQ,EAAGD,CAAO,CAC3C,CAEDX,GAAapG,EAAOgH,EAAUV,EAAQC,EAAS,CAAC,EAEhD,IAAIpuB,EAAU0uB,EAAO,EACrB,GAAI1uB,EACA,GAAI,CACA6uB,EAAS,KAAO7uB,EAAQuF,EAAU,EAAsBopB,EAAUC,CAAO,CAC5E,OACMzrJ,EAAK,CAER,MAAA0rJ,EAAS,IAAM1rJ,EACf8qJ,GAAapG,EAAOgH,EAAUV,EAAQC,EAAS,CAAC,EAE1CjrJ,CACT,CAGL,OAAA8qJ,GAAapG,EAAOgH,EAAUV,EAAQC,EAAS,CAAC,EACzCS,EAAS,IACxB,CACA,CAEA,SAASG,GAAU3qJ,EAAQiG,EAAM2kJ,EAAgB,CAC7C,IAAIC,EAAQ,KACZ,OAAI7qJ,IACI4hG,GAAe5hG,EAAQiG,CAAI,EAC3B4kJ,EAAQ7qJ,EAEH4qJ,IACLC,EAAQF,GAAUlwB,GAAaz6H,CAAM,EAAGiG,EAAM,EAAK,IAGpD4kJ,CACX,CAOO,SAASC,GAAgB9qJ,EAAQ+6H,EAAU9lH,EAAW,CACzD,OAAIjV,EACO+qJ,GAAe/qJ,EAAOw9H,EAAgB,EAAGzC,EAAU9lH,EAAW,EAAK,EAEvE,IACX,CAaA,SAAS+1I,GAAsBH,EAAO9vB,EAAUv2F,EAAIvvB,EAAW,CAC3D,IAAIo1I,EAAS7lH,GAAMA,EAAGilH,EAAiB,EACvC,GAAI,CAACY,EAAQ,CAETA,EAAS,CACL,EAAG,EACH,EAAGtvB,EACH,EAAGv2F,EACH,EAAG,CAAE,CACjB,EAEQ,IAAIymH,EAAUb,GAAoBC,CAAM,EACxCY,EAAQxB,EAAiB,EAAIY,EAC7BQ,EAAM9vB,CAAQ,EAAIkwB,CACrB,CACD,IAAIC,EAAU,CAEV,GAAIb,EAAO,EACX,KAAMp1I,EACN,GAAI,UAAY,CAGZ,IAAIhyB,EAAK,KAAK,GACd0mK,GAASU,EAAO,EAAG,SAAUL,EAAMp6G,EAAK,CACpC,GAAIo6G,EAAK,KAAO/mK,EACZ,OAAAonK,EAAO,EAAEtqB,EAAiC,EAACnwF,EAAK,CAAC,EAC1C,CAE3B,CAAa,CACJ,CAET,EACI,OAAAy6G,EAAO,IACPA,EAAO,EAAEtrB,EAA6B,EAACmsB,CAAO,EACvCA,CACX,CAQO,SAASH,GAAe/qJ,EAAQ+6H,EAAU9lH,EAAW21I,EAAgB,CAExE,GADIA,IAAmB,SAAUA,EAAiB,IAC9C5qJ,GAAU+6H,GAAY9lH,EAAW,CACjC,IAAI41I,EAAQF,GAAU3qJ,EAAQ+6H,EAAU6vB,CAAc,EACtD,GAAIC,EAAO,CACP,IAAIrmH,EAAKqmH,EAAM9vB,CAAQ,EACvB,GAAI,OAAOv2F,IAAO64F,GACd,OAAO2tB,GAAsBH,EAAO9vB,EAAUv2F,EAAIvvB,CAAS,CAElE,CACJ,CACD,OAAO,IACX,CA8BO,SAASk2I,GAAgBnrJ,EAAQg4I,EAAS/iI,EAAW21I,EAAgB,CACxE,GAAI5qJ,GAAUg4I,GAAW/iI,EAAW,CAChC,IAAI41I,EAAQF,GAAU3qJ,EAAQg4I,EAAS4S,CAAc,GAAK5qJ,EAC1D,GAAI6qJ,EACA,OAAOG,GAAsBH,EAAO7S,EAAS6S,EAAM7S,CAAO,EAAG/iI,CAAS,CAE7E,CACD,OAAO,IACX,CCpOO,IAAIm2I,GAAuB,0DACvBC,GAAa,aACbC,GAAgB,gBAChBC,GAAa,cACbC,GAA0B,uCAC1BC,GAAsB,YACtBC,GAAkB,gBAClBC,GAAU,OCbd,SAASC,GAAep8I,EAAW,CACtC,IAAIY,EAAQ,KACZ,GAAI00H,GAAW,KAAK,EAChB10H,EAAQ,IAAI,MAAMZ,CAAS,MAE1B,CACD,IAAI7J,EAAMiL,KACNjL,GAAOA,EAAI,cACXyK,EAAQzK,EAAI,YAAY,OAAO,EAC/ByK,EAAM,UAAUZ,EAAW,GAAM,EAAI,EAE5C,CACD,OAAOY,CACX,CCPO,IAAI0wH,GAAa,QACb1B,GAAc,SACdkC,GAAqB,cACrBuqB,GAAyB,oBACzBC,GAAiB,WACjBC,GAAmB,aACnBntB,GAAY,OACZsB,GAAe,UACf8rB,GAAa,QAMbC,GAAiB,YACjBC,GAAgB,WAChBC,GAA6B,mCAC7BxrB,GAAgB,UAEhByrB,GAAkB,aAClBC,GAAoB,cACpBC,GAAkB,aAClBC,GAAoB,eACpBC,GAAqB,cACrBC,GAAiB,WACjBC,GAAsB,gBACtBC,GAAqB,eACrBC,GAAiB,WACjBC,GAA6B,sBAC7BC,GAAsB,eACtBC,GAAa,QACbC,GAAc,SACdC,GAAgB,WAChBC,GAAiB,WACjBC,GAAY,OACZC,GAAgB,WAChBC,GAAyB,mBACzBzsB,GAAiB,YACjB0sB,GAA6B,8BAC7BC,GAA0B,oBAC1BC,GAA2B,qBAC3BC,GAA6B,uBC9CpCC,GAAW,GACR,SAASC,GAAsB59D,EAAKj7E,EAAc,CAErD,OADIA,IAAiB,SAAUA,EAAe,IACrBi7E,GAAQ,KACtBj7E,EAEJi7E,EAAI,SAAQ,EAAGuxC,EAA6C,MAAO,MAC9E,CAIO,SAASssB,GAAaC,EAAS,EAC9B,MAAMA,CAAO,GAAKA,EAAU,KAC5BA,EAAU,GAEdA,EAAU,KAAK,MAAMA,CAAO,EAC5B,IAAIC,EAAKJ,GAAWG,EAAU,IAC1BE,EAAML,GAAW,KAAK,MAAMG,EAAU,GAAI,EAAI,GAC9Cr4H,EAAMk4H,GAAW,KAAK,MAAMG,GAAW,IAAO,GAAG,EAAI,GACrDG,EAAON,GAAW,KAAK,MAAMG,GAAW,IAAO,GAAK,GAAG,EAAI,GAC3DI,EAAO,KAAK,MAAMJ,GAAW,IAAO,GAAK,GAAK,GAAG,EACrD,OAAAC,EAAKA,EAAG1uB,MAAsC,EAAI,KAAO0uB,EAAKA,EAAG1uB,EAAW,IAA2B,EAAI,IAAM0uB,EAAKA,EACtHC,EAAMA,EAAI3uB,EAAiC,EAAG,EAAI,IAAM2uB,EAAMA,EAC9Dv4H,EAAMA,EAAI4pG,EAAiC,EAAG,EAAI,IAAM5pG,EAAMA,EAC9Dw4H,EAAOA,EAAK5uB,EAAiC,EAAG,EAAI,IAAM4uB,EAAOA,GACzDC,EAAO,EAAIA,EAAO,IAAMP,IAAYM,EAAO,IAAMx4H,EAAM,IAAMu4H,EAAM,IAAMD,CACrF,CAWO,SAASI,GAAmB77I,EAAS0hB,EAAKo6H,EAAYC,EAAc5sJ,EAAO,CAC9E,MAAO,CAACA,GAASwjI,GAAS3yH,CAAO,IAAMA,IAAY,iBAAmBA,IAAY,eACtF,CCxCO,IAAIg8I,GAAiBtkB,GAAe,CACvC,qBAAsB,CAAC,EAA8C,iBAAiB,EACtF,wBAAyB,CAAC,EAAiD,OAAO,EAClF,0BAA2B,CAAC,EAAmD,eAAe,EAC9F,gBAAiB,CAAC,EAAyC,YAAY,EACvE,kBAAmB,CAAC,EAA2C,aAAa,EAC5E,iBAAkB,CAAC,EAA0C,YAAY,EACzE,iBAAkB,CAAC,EAA0C,aAAa,EAC1E,6BAA8B,CAAC,EAAsD,OAAO,EAC5F,8BAA+B,CAAC,EAAuD,iBAAiB,CAC5G,CAAC,ECVUukB,GAAczkB,GAAgB,CACrC,aAAc,EACd,eAAgB,CACpB,CAAC,EACoCA,GAAgB,CACjD,GAAI,EACJ,WAAY,EACZ,IAAK,CACT,CAAC,ECND,IAAI0kB,GAAsB,OACtBC,GAAwB,OAK5B,SAASC,IAAyB,CAC9B,OAAIC,GAAqB,EACdC,GAA0BL,GAAY,YAAY,EAEtD,IACX,CAOA,SAASK,GAA0BC,EAAa,CAC5C,GAAI,CACA,GAAIjqB,GAAkB1G,GAAS,CAAE,EAC7B,OAAO,KAEX,IAAI4wB,EAAO,IAAI,OAAM/C,EAAsC,IACvDrnC,EAAU+mB,GAAcojB,IAAgBN,GAAY,aAAe,eAAiB,gBAAgB,EACxG7pC,EAAQ,QAAQoqC,EAAKA,CAAG,EACxB,IAAIC,EAAOrqC,EAAQ,QAAQoqC,CAAG,IAAMA,EAEpC,GADApqC,EAAQsnC,IAA2C8C,CAAG,EAClD,CAACC,EACD,OAAOrqC,CAEd,MACiB,CAEjB,CACD,OAAO,IACX,CAKA,SAASsqC,IAA2B,CAChC,OAAIC,GAAuB,EAChBL,GAA0BL,GAAY,cAAc,EAExD,IACX,CAIO,SAASW,IAAoB,CAChCV,GAAsB,GACtBC,GAAwB,EAC5B,CAIO,SAASU,IAAmB,CAC/BX,GAAsBG,GAAsB,EAAI,EAChDF,GAAwBQ,GAAwB,EAAI,CACxD,CAMO,SAASN,GAAsB7kI,EAAO,CACzC,OAAIA,GAAS0kI,KAAwB,UACjCA,GAAsB,CAAC,CAACI,GAA0BL,GAAY,YAAY,GAEvEC,EACX,CACO,SAASY,GAAmBjf,EAAQjqI,EAAM,CAC7C,IAAIw+G,EAAUgqC,KACd,GAAIhqC,IAAY,KACZ,GAAI,CACA,OAAOA,EAAQ,QAAQx+G,CAAI,CAC9B,OACMrvB,EAAG,CACN23K,GAAsB,GACtBpe,GAAeD,EAAQ,EAAkC,EAA2D,yCAA2C7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAChN,CAEL,OAAO,IACX,CACO,SAASw4K,GAAmBlf,EAAQjqI,EAAM6Q,EAAM,CACnD,IAAI2tG,EAAUgqC,KACd,GAAIhqC,IAAY,KACZ,GAAI,CACA,OAAAA,EAAQ,QAAQx+G,EAAM6Q,CAAI,EACnB,EACV,OACMlgC,EAAG,CACN23K,GAAsB,GACtBpe,GAAeD,EAAQ,EAAkC,EAA4D,0CAA4C7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAClN,CAEL,MAAO,EACX,CACO,SAASy4K,GAAiBnf,EAAQjqI,EAAM,CAC3C,IAAIw+G,EAAUgqC,KACd,GAAIhqC,IAAY,KACZ,GAAI,CACA,OAAAA,EAAQsnC,IAA2C9lJ,CAAI,EAChD,EACV,OACMrvB,EAAG,CACN23K,GAAsB,GACtBpe,GAAeD,EAAQ,EAAkC,EAAkE,iDAAmD7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC/N,CAEL,MAAO,EACX,CACO,SAASo4K,GAAwBnlI,EAAO,CAC3C,OAAIA,GAAS2kI,KAA0B,UACnCA,GAAwB,CAAC,CAACG,GAA0BL,GAAY,cAAc,GAE3EE,EACX,CAUO,SAASc,GAAqBpf,EAAQjqI,EAAM,CAC/C,IAAIw+G,EAAUsqC,KACd,GAAItqC,IAAY,KACZ,GAAI,CACA,OAAOA,EAAQ,QAAQx+G,CAAI,CAC9B,OACMrvB,EAAG,CACN43K,GAAwB,GACxBre,GAAeD,EAAQ,EAAkC,EAA6D,2CAA6C7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACpN,CAEL,OAAO,IACX,CACO,SAAS24K,GAAqBrf,EAAQjqI,EAAM6Q,EAAM,CACrD,IAAI2tG,EAAUsqC,KACd,GAAItqC,IAAY,KACZ,GAAI,CACA,OAAAA,EAAQ,QAAQx+G,EAAM6Q,CAAI,EACnB,EACV,OACMlgC,EAAG,CACN43K,GAAwB,GACxBre,GAAeD,EAAQ,EAAkC,EAA8D,4CAA8C7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACtN,CAEL,MAAO,EACX,CACO,SAAS44K,GAAwBtf,EAAQjqI,EAAM,CAClD,IAAIw+G,EAAUsqC,KACd,GAAItqC,IAAY,KACZ,GAAI,CACA,OAAAA,EAAQsnC,IAA2C9lJ,CAAI,EAChD,EACV,OACMrvB,EAAG,CACN43K,GAAwB,GACxBre,GAAeD,EAAQ,EAAkC,EAAoE,mDAAqD7I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACnO,CAEL,MAAO,EACX,CC3KA,IAAIgsB,GAGG,SAAS6sJ,GAAgCvf,EAAQjwI,EAAKmc,EAAK,CAC9D,IAAIszI,EAAazvJ,EAAIm/H,IACjBpkD,EAAQ20E,GAAgBzf,EAAQjwI,CAAG,EAEvC,GAAI+6E,EAAMokD,EAAiC,IAAKswB,EAAY,CAGxD,QAFI9vJ,EAAI,EACJgwJ,EAAc50E,EACX5+D,EAAIwzI,CAAW,IAAM,QACxBhwJ,IACAgwJ,EAAc50E,EAAM4lD,EAAc,EAA0B,EAAG,IAAgD,CAAC,EAAIivB,GAAYjwJ,CAAC,EAErIo7E,EAAQ40E,CACX,CACD,OAAO50E,CACX,CACO,SAAS20E,GAAgBzf,EAAQjqI,EAAM,CAC1C,IAAI6pJ,EACJ,OAAI7pJ,IAEAA,EAAOugI,GAAQvgI,EAAK6lJ,EAAc,EAA0B,GAExD7lJ,EAAKm5H,EAAiC,EAAG,MACzC0wB,EAAY7pJ,EAAK26H,EAAuC,EAAC,EAAG,GAAG,EAC/DuP,GAAeD,EAAQ,EAAkC,GAA0C,8DAAiH,CAAE,KAAMjqI,CAAM,EAAE,EAAI,IAGzO6pJ,GAAa7pJ,CACxB,CACO,SAAS8pJ,GAAmB7f,EAAQ1vI,EAAOkyI,EAAW,CACrDA,IAAc,SAAUA,EAAY,MACxC,IAAIsd,EACJ,OAAIxvJ,IACAkyI,EAAYA,GAAwB,KACpClyI,EAAQgmI,GAAQhmI,CAAK,EACjBA,EAAM,SAAQ,EAAG4+H,EAAW,EAAyBsT,IACrDsd,EAAaxvJ,EAAMsrJ,EAAsC,IAAGlrB,IAAwC,EAAG8R,CAAS,EAChHvC,GAAeD,EAAQ,EAAkC,GAAiD,sDAAwDwC,EAAY,eAAgB,CAAE,MAAOlyI,CAAO,EAAE,EAAI,IAGrNwvJ,GAAcxvJ,CACzB,CACO,SAASyvJ,GAAgB/f,EAAQn8G,EAAK,CACzC,OAAOm8H,GAAkBhgB,EAAQn8G,EAAK,KAA+C,EAAE,CAC3F,CACO,SAASo8H,GAAoBjgB,EAAQ79H,EAAS,CACjD,IAAI+9I,EACJ,OAAI/9I,GACIA,EAAQ+sH,EAAiC,EAAG,QAC5CgxB,EAAe/9I,EAAQuuH,EAAuC,EAAC,EAAG,KAAK,EACvEuP,GAAeD,EAAQ,EAAkC,GAA+C,kEAAwH,CAAE,QAAS79H,CAAS,EAAE,EAAI,GAG3P+9I,GAAgB/9I,CAC3B,CACO,SAASg+I,GAAsBngB,EAAQogB,EAAW,CACrD,IAAIC,EACJ,GAAID,EAAW,CAEX,IAAI9vJ,EAAQ,GAAK8vJ,EACb9vJ,EAAM4+H,EAAiC,EAAG,QAC1CmxB,EAAiB/vJ,EAAMogI,EAAuC,EAAC,EAAG,KAAK,EACvEuP,GAAeD,EAAQ,EAAkC,GAAiD,oEAA4H,CAAE,UAAWogB,CAAW,EAAE,EAAI,EAE3Q,CACD,OAAOC,GAAkBD,CAC7B,CACO,SAASE,GAAuBtgB,EAAQnwH,EAAY,CACvD,GAAIA,EAAY,CACZ,IAAI0wI,EAAc,GAClBtrB,GAAcplH,EAAY,SAAUjX,EAAMtI,EAAO,CAC7C,GAAIqkI,GAASrkI,CAAK,GAAK4rI,KAEnB,GAAI,CACA5rI,EAAQ6rI,GAAS,EAAC4f,EAAuC,EAACzrJ,CAAK,CAClE,OACM5pB,EAAG,CACNu5J,GAAeD,EAAQ,EAAkC,GAAmE,+BAAgC,CAAE,UAAWt5J,GAAK,EAAI,CACrL,CAEL4pB,EAAQuvJ,GAAmB7f,EAAQ1vI,EAAO,IAAI,EAC9CsI,EAAO2mJ,GAAgCvf,EAAQpnI,EAAM2nJ,CAAW,EAChEA,EAAY3nJ,CAAI,EAAItI,CAChC,CAAS,EACDuf,EAAa0wI,CAChB,CACD,OAAO1wI,CACX,CACO,SAAS2wI,GAAyBxgB,EAAQygB,EAAc,CAC3D,GAAIA,EAAc,CACd,IAAIC,EAAqB,GACzBzrB,GAAcwrB,EAAc,SAAU74H,EAASt3B,EAAO,CAClDs3B,EAAU23H,GAAgCvf,EAAQp4G,EAAS84H,CAAkB,EAC7EA,EAAmB94H,CAAO,EAAIt3B,CAC1C,CAAS,EACDmwJ,EAAeC,CAClB,CACD,OAAOD,CACX,CACO,SAASE,GAAe3gB,EAAQjtJ,EAAI,CACvC,OAAOA,GAAKitK,GAAkBhgB,EAAQjtJ,EAAI,IAA6C,IAAwC6oK,IAAwC,CAC3K,CACO,SAASoE,GAAkBhgB,EAAQjzH,EAAOy1H,EAAWoe,EAAQ,CAChE,IAAIC,EACJ,OAAI9zI,IACAA,EAAQupH,GAAQvpH,CAAK,EACjBA,EAAMmiH,EAAiC,EAAGsT,IAC1Cqe,EAAa9zI,EAAM2jH,EAAuC,EAAC,EAAG8R,CAAS,EACvEvC,GAAeD,EAAQ,EAAkC4gB,EAAQ,+CAAiDpe,EAAY,eAAgB,CAAE,KAAMz1H,CAAO,EAAE,EAAI,IAGpK8zI,GAAc9zI,CACzB,CACO,SAAS4yI,GAAY3pB,EAAK,CAC7B,IAAIvmI,EAAI,KAAOumI,EACf,OAAOvmI,EAAE,OAAOA,EAAEy/H,EAAiC,EAAG,CAAC,CAC3D,CAI4Bx8H,GAAK,CACzB,gBAAiB,IACjB,cAAe,IACf,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,MACpB,qBAAsB,KACzB,EACDA,GAAG0qJ,EAA0B,EAA2CmC,GACxE7sJ,GAAG,YAAc+sJ,GACjB/sJ,GAAG,eAAiBmtJ,GACpBntJ,GAAG,YAAcqtJ,GACjBrtJ,GAAG,gBAAkButJ,GACrBvtJ,GAAG2qJ,EAAuB,EAAiC8C,GAC3DztJ,GAAG4qJ,EAAwB,EAAkCgD,GAC7D5tJ,GAAG6qJ,EAA0B,EAAoCiD,GACjE9tJ,GAAG,WAAaiuJ,GAChBjuJ,GAAG,cAAgBstJ,GACnBttJ,GAAG,UAAYitJ,GACfjtJ,GAAG,KAAO4jI,GC5Id,IAAIwqB,GAAYpgJ,GAAa,GAAI,GAC7BqgJ,GAAiB,EAGjBC,GAAqB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAC/C,SAASC,GAAYp9H,EAAK,CAC7B,IAAIq9H,EAAYH,GACZI,EAAcH,GACdI,EAAaD,EAAYD,CAAS,EACtC,OAAKJ,GAAU,cAILK,EAAYD,CAAS,IAE3BE,EAAaD,EAAYD,CAAS,EAAIJ,GAAU,cAAc,GAAG,GAJjEM,EAAa,CAAE,KAAMC,GAAax9H,EAAK,EAAI,CAAC,EAMhDu9H,EAAW,KAAOv9H,EAElBq9H,IACIA,GAAaC,EAAYjyB,MACzBgyB,EAAY,GAEhBH,GAAiBG,EACVE,CACX,CACO,SAASE,GAAkBz9H,EAAK,CACnC,IAAIjzB,EACAxqB,EAAI66K,GAAYp9H,CAAG,EACvB,OAAIz9C,IACAwqB,EAASxqB,EAAE,MAERwqB,CACX,CASO,SAAS2wJ,GAAkBrmE,EAAQsmE,EAAa,CACnD,OAAItmE,EACOA,EAAO,cAAgB,IAAMsmE,EAEjCA,CACX,CAEO,SAASH,GAAax9H,EAAK49H,EAAU,CACxC,IAAIC,EAAWC,GAAiB99H,EAAK49H,CAAQ,GAAK,GAClD,GAAIC,EAAU,CACV,IAAI7pJ,EAAQ6pJ,EAAS,MAAM,6CAA6C,EACxE,GAAI7pJ,GAAS,MAAQA,EAAMq3H,EAAiC,EAAG,GAAK4F,GAASj9H,EAAM,CAAC,CAAC,GAAKA,EAAM,CAAC,EAAEq3H,EAAiC,EAAG,EACnI,OAAOr3H,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAK,GAEtC,CACD,OAAO6pJ,CACX,CACO,SAASC,GAAiB99H,EAAK49H,EAAU,CAC5C,IAAI7wJ,EAAS,KACb,GAAIizB,EAAK,CACL,IAAIhsB,EAAQgsB,EAAI,MAAM,8CAA8C,EACpE,GAAIhsB,GAAS,MAAQA,EAAMq3H,EAAiC,EAAG,GAAK4F,GAASj9H,EAAM,CAAC,CAAC,GAAKA,EAAM,CAAC,EAAEq3H,EAAiC,EAAG,IACnIt+H,EAASiH,EAAM,CAAC,GAAK,GACjB4pJ,GAAY5pJ,EAAMq3H,EAAW,EAAyB,GAAG,CACzD,IAAI0yB,GAAY/pJ,EAAM,CAAC,GAAK,IAAIu5H,EAAkB,IAC9CywB,EAAOhqJ,EAAM,CAAC,GAAK,IAEnB+pJ,IAAa,QAAUC,IAAS,OAG3BD,IAAa,SAAWC,IAAS,UACtCA,EAAO,IAEXjxJ,GAAUixJ,CACb,CAER,CACD,OAAOjxJ,CACX,CCxEA,IAAIkxJ,GAAqB,CACrBxG,GAA0BC,GAC1B,8CAAgDA,GAChD,2CAA6CA,EACjD,EACO,SAASwG,GAAsCC,EAAa,CAC/D,OAAO9rB,GAAW4rB,GAAoBE,EAAY5wB,EAAkB,EAA6B,KAAM,EAC3G,CAiDO,IAAI6wB,GAAsB,CAC7B,oBAAqB,UAQrB,4BAA6B,SAAUzvJ,EAAQ0vJ,EAAYC,EAAa,CACpE,GAAI,CAACD,GAAe1vJ,GAAUA,EAAO,0BACjC,MAAO,GAEX,GAAIA,GAAUA,EAAOypJ,KACjB,QAASvsJ,EAAI,EAAGA,EAAI8C,EAAO,iCAAiC08H,IAAmCx/H,IAC3F,GAAI8C,EAAOypJ,EAA0E,EAACvsJ,CAAC,EAAE,KAAKwyJ,CAAU,EACpG,MAAO,GAInB,IAAIE,EAAcnB,GAAYiB,CAAU,EAAE,KAAK9wB,EAAkB,IAMjE,GALIgxB,IAAgBA,EAAY3xB,EAAoC,EAAC,MAAM,IAAM,IAAM2xB,EAAY3xB,EAAoC,EAAC,KAAK,IAAM,MAG/I2xB,GAAeT,GAAiBO,EAAY,EAAI,GAAK,IAAI9wB,EAAkB,MAE1E,CAAC5+H,GAAU,CAACA,EAAO,wBAA2B4vJ,GAAeA,IAAgBD,EAC9E,MAAO,GAEX,IAAIE,EAAkB7vJ,GAAUA,EAAO,yBACvC,GAAI6vJ,EAAiB,CACjB,IAAIC,EAKJ,GAJArsB,GAAWosB,EAAiB,SAAU/c,EAAQ,CAC1C,IAAIid,EAAQ,IAAI,OAAOjd,EAAO,YAAa,EAAC,QAAQ,MAAO,MAAM,EAAE,QAAQ,MAAO,KAAK,EAAE,QAAQ,MAAO,IAAI,CAAC,EAC7Ggd,EAAgBA,GAAiBC,EAAM,KAAKH,CAAW,CACvE,CAAa,EACG,CAACE,EACD,MAAO,EAEd,CACD,IAAIE,EAAkBhwJ,GAAUA,EAAO,iCACvC,GAAI,CAACgwJ,GAAmBA,EAAgBtzB,EAAW,IAA2B,EAC1E,MAAO,GAEX,QAASx/H,EAAI,EAAGA,EAAI8yJ,EAAgBtzB,EAAW,EAAwBx/H,IAAK,CACxE,IAAI6yJ,EAAQ,IAAI,OAAOC,EAAgB9yJ,CAAC,EAAE,YAAa,EAAC,QAAQ,MAAO,MAAM,EAAE,QAAQ,MAAO,KAAK,EAAE,QAAQ,MAAO,IAAI,CAAC,EACzH,GAAI6yJ,EAAM,KAAKH,CAAW,EACtB,MAAO,EAEd,CAGD,OAAOA,GAAeA,EAAYlzB,EAAW,EAAyB,CACzE,EAID,sBAAuB,SAAUuzB,EAAgB,CAC7C,GAAIA,EAAgB,CAChB,IAAIC,EAAgBT,GAAoB,2BAA2BQ,EAAgBtE,GAAe,CAAC,CAA+C,EAClJ,GAAIuE,GAAiBA,IAAkBT,GAAoB,oBACvD,OAAOS,CAEd,CACJ,EAID,2BAA4B,SAAUD,EAAgB1yJ,EAAK,CACvD,GAAI0yJ,EAEA,QADIE,EAAYF,EAAe7xB,EAA+B,EAAC,GAAG,EACzDlhI,EAAI,EAAGA,EAAIizJ,EAAUzzB,EAAW,EAAwB,EAAEx/H,EAAG,CAClE,IAAIkzJ,EAAWD,EAAUjzJ,CAAC,EAAEkhI,EAAU,EAAsB,GAAG,EAC/D,GAAIgyB,EAAS1zB,MAAsC,GAAK0zB,EAAS,CAAC,IAAM7yJ,EACpE,OAAO6yJ,EAAS,CAAC,CAExB,CAER,CACL,EACO,SAASC,GAA8B7iB,EAAQwhB,EAAatmE,EAAQ4nE,EAAa,CACpF,IAAIhzJ,EAAQiG,EAAO+sJ,EAAal8I,EAAOk8I,EACvC,GAAItB,GAAeA,EAAYtyB,EAAW,EAAyB,EAAG,CAClE,IAAI6zB,EAAY9B,GAAYO,CAAW,EAEvC,GADA1xJ,EAASizJ,EAAU,KACf,CAAChtJ,EACD,GAAIgtJ,EAAU/G,EAAqC,GAAI,KAAM,CACzD,IAAIgH,EAAYD,EAAU,SAAS7zB,MAAsC,EAAK,IAAM6zB,EAAU/G,IAC1FgH,EAAS,OAAO,CAAC,IAAM,MACvBA,EAAW,IAAMA,GAErBp8I,EAAOm8I,EAAU/G,IACjBjmJ,EAAO8pJ,GAAmB7f,EAAQ9kD,EAASA,EAAS,IAAM8nE,EAAWA,CAAQ,CAChF,MAEGjtJ,EAAO8pJ,GAAmB7f,EAAQwhB,CAAW,CAGxD,MAEG1xJ,EAASgzJ,EACT/sJ,EAAO+sJ,EAEX,MAAO,CACH,OAAQhzJ,EACR,KAAMiG,EACN,KAAM6Q,CACd,CACA,CACO,SAASq8I,IAAmB,CAE/B,IAAIC,EAAOjnB,KACX,GAAIinB,GAAQA,EAAK,KAAOA,EAAK,OAAQ,CACjC,IAAIplJ,EAAMolJ,EAAK,IAAK,EAAGA,EAAK,OAAO,gBAEnC,GAAIplJ,EAAM,EACN,OAAOA,CAEd,CACD,OAAOm5H,GAAO,CAClB,CACO,SAASksB,GAAsBt7H,EAAOC,EAAK,CAC9C,IAAIl3B,EAAS,KACb,OAAIi3B,IAAU,GAAKC,IAAQ,GAAK,CAAC2sG,GAAkB5sG,CAAK,GAAK,CAAC4sG,GAAkB3sG,CAAG,IAC/El3B,EAASk3B,EAAMD,GAEZj3B,CACX,CAcO,SAASwyJ,GAAuCC,EAAgBjX,EAAW,CAC9E,IAAIC,EAAQgX,GAAkB,GAC9B,MAAO,CACH,QAAS,UAAY,CACjB,OAAOhX,EAAM3d,GAChB,EACD,QAAS,SAAUv4G,EAAU,CACzBi2H,GAAaA,EAAU,QAAQj2H,CAAQ,EACvCk2H,EAAM3d,EAA6B,EAAGv4G,CACzC,EACD,WAAY,UAAY,CACpB,OAAOk2H,EAAM,OAChB,EACD,WAAY,SAAUl2H,EAAU,CAC5Bi2H,GAAaA,EAAU,WAAWj2H,CAAQ,EACtC60H,GAAe70H,CAAQ,IACvBk2H,EAAM,QAAUl2H,EAEvB,EACD,UAAW,UAAY,CACnB,OAAOk2H,EAAM,QAChB,EACD,UAAW,SAAUl2H,EAAU,CAC3Bi2H,GAAaA,EAAU,UAAUj2H,CAAQ,EACrC80H,GAAc90H,CAAQ,IACtBk2H,EAAM,SAAWl2H,EAExB,EACD,cAAe,UAAY,CACvB,OAAOk2H,EAAM,UAChB,EACD,cAAe,SAAUC,EAAe,CACpCF,GAAaA,EAAU,cAAcE,CAAa,EAClDD,EAAM,WAAaC,CACtB,CACT,CACA,CChPA,IAAIgX,GAAoB,IACpBC,GAA6B,IAC1B,SAASC,GAAsBC,EAAkB,CACpD,GAAI,CAACA,EACD,MAAO,GAEX,IAAIC,EAAUD,EAAiB7yB,EAA+B,EAAC0yB,EAAiB,EAC5E1yJ,EAASylI,GAAUqtB,EAAS,SAAU5xI,EAAQ6xI,EAAI,CAClD,IAAIC,EAAUD,EAAG/yB,EAA+B,EAAC2yB,EAA0B,EAC3E,GAAIK,EAAQ10B,EAAiC,IAAK,EAAG,CACjD,IAAIn/H,EAAM6zJ,EAAQ,CAAC,EAAExyB,EAA6C,IAC9D9gI,EAAQszJ,EAAQ,CAAC,EACrB9xI,EAAO/hB,CAAG,EAAIO,CACjB,CACD,OAAOwhB,CACV,EAAE,CAAE,GACL,GAAI2kH,GAAQ7lI,CAAM,EAAEs+H,EAAW,EAAyB,EAAG,CAEvD,GAAIt+H,EAAO,eAAgB,CAEvB,IAAIizJ,EAAiBjzJ,EAAO,SAAWA,EAAO,SAAW,IAAM,GAC/DA,EAAO+qJ,EAAsB,EAAoC/qJ,EAAO+qJ,EAAuD,GAAK,WAAakI,EAAiB,MAAQjzJ,EAAO,cACpL,CAEDA,EAAO+qJ,EAAuD,EAAG/qJ,EAAO+qJ,EAAsB,GAAqCL,EACtI,CACD,OAAO1qJ,CACX,CC1BA,IAAIkzJ,GAA0B,UAAY,CAItC,SAASA,EAAS9jB,EAAQp5H,EAAM7Q,EAAM,CAClC,IAAI5C,EAAQ,KACRurI,EAAQ,KACZA,EAAM,IAAM,EACZA,EAAM,WAAa,IACnBA,EAAM,KAAO,GACbA,EAAMhQ,EAAS,EAAuBmxB,GAAmB7f,EAAQjqI,CAAI,GAAKylJ,GAC1E9c,EAAM,KAAO93H,EACb83H,EAAM,KAAO9I,GAAY,IAAI,IAAM,EACnC8I,EAAM,eAAiB,CACnB,KAAM,EACN,KAAM,EACN,KAAM,EACN,WAAY,UAAY,CACpB,OAAQvrI,EAAM,aAAe,IAAO,EAA2B,CAClE,EACD,KAAM,EACN,KAAM,CAClB,CACK,CACD,OAAO2wJ,CACX,IC1BIC,GAAuB,UAAY,CAInC,SAASA,EAAM/jB,EAAQjqI,EAAM8Z,EAAY4wI,EAAc,CACnD,KAAK,eAAiB,CAClB,IAAK,EACL,KAAM,EACN,WAAY,EACZ,aAAc,CAC1B,EACQ,IAAI/hB,EAAQ,KACZA,EAAM,IAAM,EACZA,EAAMhQ,EAAS,EAAuBmxB,GAAmB7f,EAAQjqI,CAAI,GAAKylJ,GAC1E9c,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,CACtG,CACD,OAAAsD,EAAM,aAAe,0CACrBA,EAAM,SAAW,YACVA,CACX,IClBIC,GAAW,cACXC,GAAW,QACXC,GAAW,QACXC,GAAkB,eAClBC,GAAc,WACdC,GAAa,UACbC,GAAiB,cACrB,SAASC,GAAWj0J,EAAOk0J,EAAiB,CACxC,IAAI5zJ,EAASN,EACb,OAAIM,GAAU,CAACkkI,GAASlkI,CAAM,IACtB,MAAQ,KAAKmrJ,KACbnrJ,EAAS,KAAKmrJ,EAAuC,EAACzrJ,CAAK,EACvDk0J,IAAoB,CAAC5zJ,GAAUA,IAAW,QACtCgkI,GAAWtkI,EAAMsrJ,EAAc,CAAwB,EACvDhrJ,EAASN,EAAMsrJ,EAAc,IAG7BhrJ,EAAS,GAAKN,IAKtBM,EAAS,GAAKN,EAAQ,+BAGvBM,GAAU,EACrB,CACA,SAAS6zJ,GAAenc,EAAUoc,EAAW,CACzC,IAAIC,EAAarc,EACjB,OAAIA,IACIqc,GAAc,CAAC7vB,GAAS6vB,CAAU,IAClCA,EAAarc,EAAS+b,EAAU,GAAK/b,EAASgc,EAAc,GAAKK,GAGjEA,GAAc,CAAC7vB,GAAS6vB,CAAU,IAElCA,EAAaJ,GAAWI,EAAY,EAAI,GAExCrc,EAAS,WAETqc,EAAaA,EAAa,MAAQrc,EAAS,UAAe,IAAM,KAAOA,EAAS,QAAa,KAAO,KAAOA,EAAS,OAAY,OAIpIoc,GAAaA,IAAc,UAAYA,IAAc,UAAYA,IAAc,UAAYC,GAAc,IAAIl0B,EAAa,EAAwBi0B,CAAS,IAAM,KACjKC,EAAaD,EAAY,KAAOC,GAE7BA,GAAc,EACzB,CACA,SAASC,GAA4Bt0J,EAAO,CACxC,GAAI,CACA,GAAIqkI,GAASrkI,CAAK,EACd,MAAO,iBAAkBA,GAAS,aAAcA,CAEvD,MACS,CAET,CACD,MAAO,EACX,CACA,SAASu0J,GAAqBv0J,EAAO,CACjC,GAAI,CACA,GAAIqkI,GAASrkI,CAAK,EACd,MAAQ,QAASA,GAAS,eAAgBA,GAAS,eAAgBA,CAE1E,MACS,CAET,CACD,MAAO,EACX,CACA,SAASw0J,GAAgBxjB,EAAS,CAC9B,OAAOA,GAAWA,EAAQ,KAAOxM,GAASwM,EAAQ,GAAG,GAAKA,EAAQ,KAAO9sH,GAAQ8sH,EAAQ,GAAG,CAChG,CACA,SAASyjB,GAAiBC,EAAY,CAClC,IAAI5+G,EAAM4+G,GAAc,GACnBlwB,GAAS1uF,CAAG,IACT0uF,GAAS1uF,EAAI89G,EAAQ,CAAC,EACtB99G,EAAMA,EAAI89G,EAAQ,EAGlB99G,EAAM,GAAKA,GAGnB,IAAI9yB,EAAQ8yB,EAAIwqF,EAA+B,EAAC;AAAA,CAAI,EACpD,MAAO,CACH,IAAKxqF,EACL,IAAK9yB,CACb,CACA,CACA,SAAS2xI,GAAehxF,EAAc,CAGlC,QAFIqa,EAAQ,GACRhkD,EAAQ2pC,EAAa28D,EAA+B,EAAC;AAAA,CAAI,EACpDjG,EAAK,EAAGA,EAAKrgG,EAAM4kG,EAAW,EAAwBvE,IAAM,CACjE,IAAIj3H,EAAQ42B,EAAMqgG,CAAE,EAChBrgG,EAAMqgG,EAAK,CAAC,IACZj3H,GAAS,IAAM42B,EAAMqgG,EAAK,CAAC,EAC3BA,KAEJr8C,EAAM,KAAK56E,CAAK,CACnB,CACD,MAAO,CACH,IAAKugE,EACL,IAAKqa,CACb,CACA,CACA,SAAS42E,GAAsBC,EAAU,CACrC,IAAI7jB,EAAU,KACd,GAAI6jB,EACA,GAAI,CAGA,GAAIA,EAASjB,EAAQ,EAEjB5iB,EAAUyjB,GAAiBI,EAASjB,EAAQ,CAAC,UAExCiB,EAASlB,EAAQ,GAAKkB,EAASlB,EAAQ,EAAEC,EAAQ,EAEtD5iB,EAAUyjB,GAAiBI,EAASlB,EAAQ,EAAEC,EAAQ,CAAC,UAElDiB,EAAS,WAAgBA,EAAS,UAAUjB,EAAQ,EACzD5iB,EAAUyjB,GAAiBI,EAAS,UAAUjB,EAAQ,CAAC,UAElDY,GAAgBK,CAAQ,EAC7B7jB,EAAU6jB,UAELL,GAAgBK,EAAShB,EAAe,CAAC,EAC9C7iB,EAAU6jB,EAAShB,EAAe,UAE7B,QAAU,OAAO,OAAYgB,EAASd,EAAU,EAErD/iB,EAAU2jB,GAAeE,EAASn1B,EAAmC,WAEhEm1B,EAAS,QAAaA,EAAS,OAAOjB,EAAQ,EAEnD5iB,EAAUyjB,GAAiBI,EAAS,OAAOjB,EAAQ,CAAC,UAE/CpvB,GAASqwB,CAAQ,EACtB7jB,EAAUyjB,GAAiBI,CAAQ,MAElC,CACD,IAAIR,EAAaQ,EAASd,EAAU,GAAKc,EAASb,EAAc,GAAK,GACjExvB,GAASqwB,EAASf,EAAW,CAAC,IAC1BO,IACAA,GAAc;AAAA,GAElBA,GAAc,SAAWQ,EAASf,EAAW,GAE7CO,IACArjB,EAAUyjB,GAAiBJ,CAAU,EAE5C,CACJ,OACMj+K,EAAG,CAGN46J,EAAUyjB,GAAiBr+K,CAAC,CAC/B,CAEL,OAAO46J,GAAW,CACd,IAAK,GACL,IAAK,IACb,CACA,CACA,SAAS8jB,GAAkBC,EAAc,CACrC,IAAI/2E,EAAQ,GACZ,OAAI+2E,IACIA,EAAa,IACbpvB,GAAWovB,EAAa,IAAK,SAAU3xJ,EAAO,CAC1C46E,GAAS56E,EAAQ;AAAA,CACjC,CAAa,EAGD46E,EAAQ+2E,EAAa,KAAO,IAG7B/2E,CACX,CACA,SAASg3E,GAAYh3E,EAAO,CACxB,IAAIi3E,EACAC,EAASl3E,EAAM,IACnB,GAAIk3E,GAAUA,EAAOt2B,EAAW,EAAyB,EAAG,CACxDq2B,EAAc,GACd,IAAIE,EAAU,EACVC,EAAqB,EACzBzvB,GAAWuvB,EAAQ,SAAUG,EAAO,CAChC,IAAIC,EAAWD,EAAM/J,EAAc,IACnC,GAAIiK,GAAY,MAAM,KAAKD,CAAQ,EAAG,CAClC,IAAIE,EAAc,IAAID,GAAYD,EAAUH,GAAS,EACrDC,GAAsBI,EAAYxJ,IAClCiJ,EAAY,KAAKO,CAAW,CAC/B,CACb,CAAS,EAGD,IAAIC,EAAgC,GAAK,KACzC,GAAIL,EAAqBK,EAMrB,QALIzgJ,EAAO,EACPC,EAAQggJ,EAAYr2B,EAAW,EAAyB,EACxD/rG,EAAO,EACP6iI,EAAe1gJ,EACf2gJ,EAAgB1gJ,EACbD,EAAOC,GAAO,CAEjB,IAAI2gJ,EAAQX,EAAYjgJ,CAAI,EAAEg3I,EAAkB,EAC5C6J,EAAQZ,EAAYhgJ,CAAK,EAAE+2I,EAAkB,EAEjD,GADAn5H,GAAQ+iI,EAAQC,EACZhjI,EAAO4iI,EAA+B,CAEtC,IAAIK,EAAUH,EAAgBD,EAAe,EAC7CT,EAAY,OAAOS,EAAcI,CAAO,EACxC,KACH,CAEDJ,EAAe1gJ,EACf2gJ,EAAgB1gJ,EAChBD,IACAC,GACH,CAER,CACD,OAAOggJ,CACX,CACA,SAASc,GAAc3B,EAAW,CAE9B,IAAI4B,EAAW,GACf,GAAI5B,IACA4B,EAAW5B,EAAU,UAAYA,EAAUh2B,EAAS,GAAwB,GACxE,CAAC43B,GACD,GAAI,CACA,IAAIljJ,EAAgB,wBAChBC,EAAWD,EAAe,KAAMshJ,EAAW,YAAY9I,EAAsC,GAAE,EACnG0K,EAAYjjJ,GAAWA,EAAQ6rH,EAAW,EAAyB,EAAK7rH,EAAQ,CAAC,EAAI,EACxF,MACS,CAET,CAGT,OAAOijJ,CACX,CAKO,SAASC,GAAiBpB,EAAU,CACvC,GAAIA,EACA,GAAI,CACA,GAAI,CAACrwB,GAASqwB,CAAQ,EAAG,CACrB,IAAIT,EAAY2B,GAAclB,CAAQ,EAClCv0J,EAAS2zJ,GAAWY,EAAU,EAAK,EASvC,OARI,CAACv0J,GAAUA,IAAW,QAClBu0J,EAASlB,EAAQ,IAEjBkB,EAAWA,EAASlB,EAAQ,EAC5BS,EAAY2B,GAAclB,CAAQ,GAEtCv0J,EAAS2zJ,GAAWY,EAAU,EAAI,GAElCv0J,EAAO6/H,IAAqCi0B,CAAS,IAAM,GAAKA,IAAc,SACvEA,EAAY,IAAM9zJ,EAEtBA,CACV,CACJ,MACS,CAET,CAGL,MAAO,IAAMu0J,GAAY,GAC7B,CACA,IAAIqB,GAA2B,UAAY,CAIvC,SAASA,EAAUxmB,EAAQogB,EAAWvwI,EAAY4wI,EAAcgG,EAAe1zK,EAAI,CAC/E,KAAK,eAAiB,CAClB,IAAK,EACL,WAAY,EACZ,cAAe,EACf,WAAY,EACZ,aAAc,CAC1B,EACQ,IAAI2rJ,EAAQ,KACZA,EAAM,IAAM,EACPmmB,GAAqBzE,CAAS,GAe/B1hB,EAAMwd,EAAyC,EAAGkE,EAAUlE,EAAe,GAA8B,GACzGxd,EAAM0d,EAAe,EAA6BgE,EAAUhE,EAAe,EAC3E1d,EAAM2d,EAAiB,EAA+B+D,EAAU/D,EAAiB,EAC7E+D,EAAU5D,MACV9d,EAAM8d,EAAmB,EAAgC4D,EAAU5D,EAAmB,GAEtF4D,EAAU,KACV1hB,EAAM,GAAK0hB,EAAU,IAErBA,EAAU3D,MACV/d,EAAM+d,EAAkB,EAA+B2D,EAAU3D,EAAkB,GAGlFhoB,GAAkB2rB,EAAU1D,EAAsC,KACnEhe,EAAMge,EAAc,EAA2B0D,EAAU1D,EAAc,KA5BtE7sI,IACDA,EAAa,IAEjB6uH,EAAMwd,EAAyC,EAAG,CAAC,IAAIwK,GAAkB1mB,EAAQogB,EAAWvwI,CAAU,CAAC,EACvG6uH,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,EAC/FgG,IACA/nB,EAAM8d,EAAgD,EAAGiK,GAEzD1zK,IACA2rJ,EAAM,GAAK3rJ,GAqBtB,CACD,OAAAyzK,EAAU,oBAAsB,SAAUrkJ,EAAS0hB,EAAKo6H,EAAYC,EAAc5sJ,EAAO29D,EAAKqf,EAAOq4E,EAAU,CAC3G,IAAIj0J,EACAgyJ,EAAY2B,GAAc/0J,GAAS29D,GAAO9sD,CAAO,EACrD,OAAOzP,EAAK,CAAE,EACVA,EAAGs9H,EAAgC,EAAGy0B,GAAetiJ,EAASuiJ,CAAS,EACvEhyJ,EAAG,IAAMmxB,EACTnxB,EAAG,WAAaurJ,EAChBvrJ,EAAG,aAAewrJ,EAClBxrJ,EAAG,MAAQ6zJ,GAAiBj1J,GAAS29D,GAAO9sD,CAAO,EACnDzP,EAAG,IAAM6zJ,GAAiBt3F,GAAO9sD,CAAO,EACxCzP,EAAG6pJ,EAAc,EAAwBmI,EACzChyJ,EAAG,aAAewyJ,GAAsB52E,GAASh9E,GAAS29D,CAAG,EAC7Dv8D,EAAG,SAAWi0J,EACdj0J,CACZ,EACI8zJ,EAAU,oBAAsB,SAAUxmB,EAAQogB,EAAWvwI,EAAY4wI,EAAc,CACnF,IAAImG,EAAaxG,EAAUlE,EAAyC,GAC7D9lB,GAAOgqB,EAAUlE,IAA2C,SAAUxa,EAAI,CAAE,OAAOglB,GAAkB/J,EAA6D,EAAC3c,EAAQ0B,CAAE,CAAI,GACpLmlB,EAAgB,IAAIL,EAAUxmB,EAAQxwI,GAASA,GAAS,CAAE,EAAE4wJ,CAAS,EAAG,CAAE,WAAYwG,CAAU,CAAE,EAAG/2I,EAAY4wI,CAAY,EACjI,OAAOoG,CACf,EACIL,EAAU,UAAU,YAAc,UAAY,CAC1C,IAAI9zJ,EACAC,EAAK,KAAMi0J,EAAaj0J,EAAG,WAAYkd,EAAald,EAAG,WAAY8tJ,EAAe9tJ,EAAG,aAAc8zJ,EAAgB9zJ,EAAG,cAAem0J,EAAen0J,EAAG,aAAc5f,EAAK4f,EAAG,GAAIo0J,EAAWp0J,EAAG,SAC/Lq0J,EAA4BJ,aAAsB,OAC/CxwB,GAAOwwB,EAAY,SAAUxG,EAAW,CAAE,OAAOA,EAAU,YAAa,EAAG,GAC3E,OACP,OAAO1tJ,EAAK,CACJ,IAAK,KACR,EACDA,EAAGwpJ,EAAe,EAA0B8K,EAC5Ct0J,EAAG,cAAgB+zJ,EACnB/zJ,EAAG,WAAamd,EAChBnd,EAAG,aAAe+tJ,EAClB/tJ,EAAG,aAAeo0J,EAClBp0J,EAAG,GAAK3f,EACR2f,EAAG,SAAWq0J,EACdr0J,CACZ,EAII8zJ,EAAU,sBAAwB,SAAUrkJ,EAASmkJ,EAAUW,EAAUC,EAAU5lB,EAASzqD,EAAM,CAC9F,IAAInkF,EACJ,MAAO,CACH,WAAY,EACPA,EAAK,CAAE,EACJA,EAAGkqJ,EAAmB,EAA4B,GAClDlqJ,EAAG,QAAUyP,EACbzP,EAAG,MAAQ4uI,EACX5uI,EAAG,SAAW4zJ,EACd5zJ,EACP,CACb,CACA,EACI8zJ,EAAU,aAAe,8CACzBA,EAAU,SAAW,gBACrBA,EAAU,YAAcD,GACjBC,CACX,EAAC,EAEGE,GAAmC,UAAY,CAC/C,SAASA,EAAkB1mB,EAAQogB,EAAWvwI,EAAY,CACtD,KAAK,eAAiB,CAClB,GAAI,EACJ,QAAS,EACT,SAAU,EACV,QAAS,EACT,aAAc,EACd,MAAO,EACP,YAAa,CACzB,EACQ,IAAI6uH,EAAQ,KACZ,GAAKkmB,GAA4BxE,CAAS,EAiBtC1hB,EAAM6d,EAAc,EAA2B6D,EAAU7D,EAAc,EACvE7d,EAAM1O,EAAY,EAA0BowB,EAAUpwB,EAAY,EAClE0O,EAAMwlB,EAAQ,EAAI9D,EAAU8D,EAAQ,EACpCxlB,EAAMyd,EAA4C,EAAGiE,EAAUjE,EAAiB,GAA+B,GAC/Gzd,EAAMke,EAAmB,EAA+BwD,EAAUxD,EAAmB,MArB5C,CACzC,IAAItrJ,EAAQ8uJ,EACRnxF,EAAM39D,GAASA,EAAM,IACpB22C,GAAQ32C,CAAK,IACdA,EAAQA,EAAM2yJ,EAAQ,GAAKh1F,GAAO39D,GAEtCotI,EAAM6d,EAAsC,EAAGsD,GAAmB7f,EAAQqmB,GAAc/0J,CAAK,CAAC,GAAKkqJ,GACnG9c,EAAM1O,EAAY,EAA0BiwB,GAAoBjgB,EAAQykB,GAAerE,GAAa9uJ,EAAOotI,EAAM6d,GAAsC,CAAC,GAAKf,GAC7J,IAAIltE,EAAQ8xE,EAAU+D,EAAe,GAAKe,GAAsB9E,CAAS,EACzE1hB,EAAMyd,EAAiB,EAA8BmJ,GAAYh3E,CAAK,EACtEowD,EAAMwlB,EAAQ,EAAI/D,GAAsBngB,EAAQolB,GAAkB92E,CAAK,CAAC,EACxEowD,EAAM,aAAelqH,GAAQkqH,EAAM,WAAW,GAAKA,EAAM,YAAYxP,EAAiC,EAAG,EACrGr/G,IACAA,EAAW0sI,EAAc,EAA2B1sI,EAAW0sI,EAAc,GAA4B7d,EAAM6d,IAEtH,CAQJ,CACD,OAAAmK,EAAkB,UAAU,YAAc,UAAY,CAClD,IAAIh0J,EACAgsI,EAAQ,KACR6mB,EAAc7mB,EAAMyd,EAAiB,YAAuC,OACzE/lB,GAAOsI,EAAMyd,EAAiB,EAA6B,SAAUwJ,EAAO,CAAE,OAAOA,EAAM,aAAc,CAAE,EAC9GqB,GAA6Bt0J,EAAK,CAC9B,GAAIgsI,EAAM,GACV,QAASA,EAAM,QACf,SAAUA,EAAM6d,EAAsC,EACtD,QAAS7d,EAAM1O,EAAmC,EAClD,aAAc0O,EAAMke,EAA+C,EACnE,MAAOle,EAAMwlB,EAAQ,CACxB,EACDxxJ,EAAGypJ,IAA4CoJ,GAAe,OAC9D7yJ,GACJ,OAAOs0J,CACf,EACIN,EAAkB,oBAAsB,SAAU1mB,EAAQogB,EAAW,CACjE,IAAImF,EAAenF,EAAUjE,EAA4C,YAAY,OAC9E/lB,GAAOgqB,EAAUjE,EAA4C,EAAE,SAAUwJ,EAAO,CAAE,OAAOE,GAAYlJ,EAA0B,EAAoCgJ,CAAK,CAAE,CAAE,GAC5KvF,EAAUjE,EAAiB,EAC9BgL,EAAmB,IAAIT,EAAkB1mB,EAAQxwI,GAASA,GAAS,GAAI4wJ,CAAS,EAAG,CAAE,YAAamF,CAAW,CAAE,CAAC,EACpH,OAAO4B,CACf,EACWT,CACX,EAAC,EAEGb,GAA6B,UAAY,CACzC,SAASA,EAAYuB,EAAaC,EAAO,CACrC,KAAK,eAAiB,CAClB,MAAO,EACP,OAAQ,EACR,SAAU,EACV,SAAU,EACV,KAAM,CAClB,EACQ,IAAI3oB,EAAQ,KAIZ,GAHAA,EAAM4d,EAA6C,EAAG,EAGlD,OAAO8K,GAAgB,SAAU,CACjC,IAAIzB,EAAQyB,EACZ1oB,EAAMme,EAA+B,EAAGwK,EACxC3oB,EAAMoe,EAAiC,EAAGkH,GAC1CtlB,EAAMqe,EAAa,EAA2BzmB,GAAQqvB,CAAK,EAC3DjnB,EAAMse,EAAsC,EAAG,GAC/Cte,EAAMue,EAA6B,EAAG,EACtC,IAAI51E,EAAUs+E,EAAM,MAAME,EAAY,KAAK,EACvCx+E,GAAWA,EAAQ6nD,EAAW,GAA0B,IACxDwP,EAAMoe,EAAiC,EAAGxmB,GAAQjvD,EAAQ,CAAC,CAAC,GAAKq3D,EAAMoe,IACvEpe,EAAMse,EAAc,EAA2B1mB,GAAQjvD,EAAQ,CAAC,CAAC,EACjEq3D,EAAMue,EAAS,EAAuB,SAAS51E,EAAQ,CAAC,CAAC,GAAK,EAErE,MAEGq3D,EAAMme,EAAU,EAAwBuK,EAAYvK,EAAU,EAC9Dne,EAAMoe,EAAW,EAAyBsK,EAAYtK,EAAW,EACjEpe,EAAMqe,EAAa,EAA2BqK,EAAYrK,EAAa,EACvEre,EAAMse,EAAc,EAA2BoK,EAAYpK,EAAc,EACzEte,EAAMue,EAAS,EAAuBmK,EAAYnK,EAAS,EAC3Dve,EAAM4d,EAA6C,EAAG,EAE1D5d,EAAM,aAAeA,EAAM,OAAOxP,EAAW,EAC7CwP,EAAM,aAAeA,EAAM,SAASxP,EAAW,EAC/CwP,EAAM,aAAeA,EAAM,SAASxP,EAAW,EAE/CwP,EAAM4d,EAAkB,GAA+BuJ,EAAY,SACnEnnB,EAAM,aAAeA,EAAM,MAAM,SAAQ,EAAGxP,IAC5CwP,EAAM,aAAeA,EAAM,KAAK,SAAQ,EAAGxP,GAC9C,CACD,OAAA22B,EAAY,oBAAsB,SAAUF,EAAO,CAC/C,OAAO,IAAIE,EAAYF,EAAO,KACtC,EACIE,EAAY,UAAU,YAAc,UAAY,CAC5C,IAAInnB,EAAQ,KACZ,MAAO,CACH,MAAOA,EAAMme,EAA+B,EAC5C,OAAQne,EAAMoe,EAAiC,EAC/C,SAAUpe,EAAMqe,EAAqC,EACrD,SAAUre,EAAMse,EAAsC,EACtD,KAAMte,EAAMue,EAA6B,CACrD,CACA,EAGI4I,EAAY,MAAQ,uFACpBA,EAAY,SAAW,GAChBA,CACX,IC7fIyB,GAA2B,UAAY,CACvC,SAASA,GAAY,CAIjB,KAAK,eAAiB,CAClB,KAAM,EACN,KAAM,EACN,MAAO,EACP,MAAO,EACP,IAAK,EACL,IAAK,EACL,OAAQ,CACpB,EAIQ,KAAK,KAAO,CACf,CACD,OAAOA,CACX,IChBIC,GAAwB,UAAY,CAIpC,SAASA,EAAOvnB,EAAQjqI,EAAMzF,EAAOgJ,EAAOgsB,EAAKC,EAAKiiI,EAAQ33I,EAAY4wI,EAAc,CACpF,KAAK,eAAiB,CAClB,IAAK,EACL,QAAS,EACT,WAAY,CACxB,EACQ,IAAI/hB,EAAQ,KACZA,EAAM,IAAM,EACZ,IAAI+oB,EAAY,IAAIH,GACpBG,EAAU3L,EAAU,EAAwBxiJ,EAAQ,EAAIA,EAAQ,OAChEmuJ,EAAU,IAAM,MAAMliI,CAAG,GAAKA,IAAQ,KAAO,OAAYA,EACzDkiI,EAAU,IAAM,MAAMniI,CAAG,GAAKA,IAAQ,KAAO,OAAYA,EACzDmiI,EAAU/4B,EAAS,EAAuBmxB,GAAmB7f,EAAQjqI,CAAI,GAAKylJ,GAC9EiM,EAAU,MAAQn3J,EAClBm3J,EAAU,OAAS,MAAMD,CAAM,GAAKA,IAAW,KAAO,OAAYA,EAClE9oB,EAAM,QAAU,CAAC+oB,CAAS,EAC1B/oB,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,CACtG,CACD,OAAA8G,EAAO,aAAe,2CACtBA,EAAO,SAAW,aACXA,CACX,IC1BIG,GAA0B,UAAY,CAItC,SAASA,EAAS1nB,EAAQjqI,EAAM8tB,EAAK8jI,EAAY93I,EAAY4wI,EAAc1tK,EAAI,CAC3E,KAAK,eAAiB,CAClB,IAAK,EACL,KAAM,EACN,IAAK,EACL,SAAU,EACV,WAAY,EACZ,aAAc,EACd,GAAI,CAChB,EACQ,IAAI2rJ,EAAQ,KACZA,EAAM,IAAM,EACZA,EAAM,GAAKiiB,GAAe3gB,EAAQjtJ,CAAE,EACpC2rJ,EAAM,IAAMqhB,GAAgB/f,EAAQn8G,CAAG,EACvC66G,EAAMhQ,EAAS,EAAuBmxB,GAAmB7f,EAAQjqI,CAAI,GAAKylJ,GACrE,MAAMmM,CAAU,IACjBjpB,EAAMwe,EAAa,EAA2BQ,GAAaiK,CAAU,GAEzEjpB,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,CACtG,CACD,OAAAiH,EAAS,aAAe,6CACxBA,EAAS,SAAW,eACbA,CACX,IC5BIE,GAAsC,UAAY,CAIlD,SAASA,EAAqB5nB,EAAQjtJ,EAAIyuK,EAAasB,EAAaxyJ,EAAOu3J,EAASC,EAAY5sE,EAAQ6sE,EAAYC,EAAoBn4I,EAAY4wI,EAAc,CAC1JsH,IAAe,SAAUA,EAAa,QAC1C,KAAK,eAAiB,CAClB,GAAI,EACJ,IAAK,EACL,KAAM,EACN,WAAY,EACZ,SAAU,EACV,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,EACN,WAAY,EACZ,aAAc,EACd,KAAM,EACN,MAAO,EACP,MAAO,EACP,IAAK,EACL,IAAK,EACL,OAAQ,EACR,eAAgB,EAChB,iBAAkB,EAClB,YAAa,EACb,mBAAoB,CAChC,EACQ,IAAIrpB,EAAQ,KACZA,EAAM,IAAM,EACZA,EAAM,GAAK3rJ,EACX2rJ,EAAMwe,EAAa,EAA2BQ,GAAaptJ,CAAK,EAChEouI,EAAM,QAAUmpB,EAChBnpB,EAAM,WAAaopB,EAAa,GAChCppB,EAAM,KAAOmhB,GAAmB7f,EAAQ+nB,CAAU,EAClD,IAAIE,EAAmBpF,GAA8B7iB,EAAQwhB,EAAatmE,EAAQ4nE,CAAW,EAC7FpkB,EAAM,KAAOqhB,GAAgB/f,EAAQ8iB,CAAW,GAAKmF,EAAiB,KACtEvpB,EAAM,OAASmhB,GAAmB7f,EAAQioB,EAAiB,MAAM,EAC7DD,IACAtpB,EAAM,OAAS,GAAG,OAAOA,EAAM,OAAQ,KAAK,EAAE,OAAOspB,CAAkB,GAE3EtpB,EAAMhQ,EAAS,EAAuBmxB,GAAmB7f,EAAQioB,EAAiBv5B,EAAS,CAAoB,EAC/GgQ,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,CACtG,CACD,OAAAmH,EAAqB,aAAe,qDACpCA,EAAqB,SAAW,uBACzBA,CACX,IClDIM,GAAuB,UAAY,CAInC,SAASA,EAAMloB,EAAQ79H,EAASskJ,EAAe52I,EAAY4wI,EAAc,CACrE,KAAK,eAAiB,CAClB,IAAK,EACL,QAAS,EACT,cAAe,EACf,WAAY,CACxB,EACQ,IAAI/hB,EAAQ,KACZA,EAAM,IAAM,EACZv8H,EAAUA,GAAWq5I,GACrB9c,EAAM1O,EAAmC,EAAGiwB,GAAoBjgB,EAAQ79H,CAAO,EAC/Eu8H,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,EAC/FgG,IACA/nB,EAAM8d,EAAgD,EAAGiK,EAEhE,CACD,OAAAyB,EAAM,aAAe,4CACrBA,EAAM,SAAW,cACVA,CACX,ICxBIC,GAAqC,UAAY,CAIjD,SAASA,EAAoBnoB,EAAQjqI,EAAM8tB,EAAKukI,EAAQv4I,EAAY4wI,EAAc4H,EAAa,CAC3F,KAAK,eAAiB,CAClB,IAAK,EACL,KAAM,EACN,IAAK,EACL,SAAU,EACV,UAAW,EACX,eAAgB,EAChB,YAAa,EACb,iBAAkB,EAClB,cAAe,EACf,WAAY,EACZ,aAAc,CAC1B,EACQ,IAAI3pB,EAAQ,KACZA,EAAM,IAAM,EACZA,EAAM,IAAMqhB,GAAgB/f,EAAQn8G,CAAG,EACvC66G,EAAMhQ,EAAS,EAAuBmxB,GAAmB7f,EAAQjqI,CAAI,GAAKylJ,GAC1E9c,EAAM0d,EAAyC,EAAGkE,GAAuBtgB,EAAQnwH,CAAU,EAC3F6uH,EAAM2d,EAA6C,EAAGmE,GAAyBxgB,EAAQygB,CAAY,EAC/F4H,IACA3pB,EAAM,cAAgB2pB,EAAY,cAClC3pB,EAAMwe,EAAa,EAA2BmL,EAAYnL,EAAa,EACvExe,EAAM,eAAiB2pB,EAAY,eACnC3pB,EAAM,UAAY2pB,EAAY,UAC9B3pB,EAAMye,EAAsB,EAAmCkL,EAAYlL,EAAsB,EACjGze,EAAM,YAAc2pB,EAAY,YAEvC,CACD,OAAAF,EAAoB,aAAe,wDACnCA,EAAoB,SAAW,0BACxBA,CACX,ICvCIG,GAAsB,UAAY,CAIlC,SAASA,EAAKC,EAAU3hJ,EAAM,CAI1B,KAAK,eAAiB,CAClB,SAAU,EACV,SAAU,CACtB,EACQ,KAAK,SAAW2hJ,EAChB,KAAK,SAAW3hJ,CACnB,CACD,OAAO0hJ,CACX,ICdA,SAASE,GAAYC,EAAU,CAC3B,IAAIC,EAAS,MAAQD,EAAW,IAChC,OAAO,SAAU1yJ,EAAM,CACnB,OAAO2yJ,EAAS3yJ,CACxB,CACA,CACA,IAAI4yJ,GAAiBH,GAAY,aAAa,EAC1CI,GAAYJ,GAAY,QAAQ,EAChCK,GAAcL,GAAY,UAAU,EACpCM,GAAeN,GAAY,WAAW,EACtCO,GAAaP,GAAY,SAAS,EAClCQ,GAAUR,GAAY,MAAM,EAC5BS,GAAWT,GAAY,OAAO,EAC9BU,GAAcV,GAAY,UAAU,EACpCW,GAAgC,SAAUvmJ,EAAQ,CAClDtT,GAAU65J,EAAgBvmJ,CAAM,EAChC,SAASumJ,GAAiB,CACtB,OAAOvmJ,EAAO,KAAK,IAAI,GAAK,IAC/B,CACD,OAAOumJ,CACX,EAAE7wB,GAAyB,CACvB,mBAAoBqwB,GAAe,KAAK,EACxC,iBAAkBA,GAAe,OAAO,EACxC,kBAAmBA,GAAe,QAAQ,EAC1C,cAAeA,GAAe,eAAe,EAC7C,iBAAkBA,GAAe,OAAO,EACxC,SAAUC,GAAU,IAAI,EACxB,SAAUA,GAAU,IAAI,EACxB,eAAgBA,GAAU,UAAU,EACpC,aAAcA,GAAU,QAAQ,EAChC,YAAaA,GAAU,OAAO,EAC9B,mBAAoBA,GAAU,cAAc,EAC5C,cAAeA,GAAU,SAAS,EAClC,kBAAmBA,GAAU,aAAa,EAC1C,cAAeA,GAAU,SAAS,EAClC,SAAUA,GAAU,IAAI,EACxB,gBAAiBA,GAAU,WAAW,EACtC,mBAAoBA,GAAU,cAAc,EAC5C,eAAgBA,GAAU,UAAU,EACpC,uBAAwBA,GAAU,kBAAkB,EACpD,WAAYA,GAAU,MAAM,EAC5B,kBAAmBA,GAAU,aAAa,EAC1C,aAAcA,GAAU,QAAQ,EAChC,cAAeA,GAAU,SAAS,EAClC,qBAAsBA,GAAU,gBAAgB,EAChD,WAAYC,GAAY,IAAI,EAC5B,gBAAiBA,GAAY,SAAS,EACtC,iBAAkBA,GAAY,UAAU,EACxC,aAAcA,GAAY,MAAM,EAChC,YAAaC,GAAa,IAAI,EAC9B,cAAeA,GAAa,MAAM,EAClC,kBAAmBA,GAAa,UAAU,EAC1C,gBAAiBA,GAAa,QAAQ,EACtC,yBAA0BA,GAAa,iBAAiB,EACxD,2BAA4BA,GAAa,mBAAmB,EAC5D,UAAWC,GAAW,IAAI,EAC1B,eAAgBA,GAAW,SAAS,EACpC,aAAcA,GAAW,OAAO,EAChC,2BAA4BC,GAAQ,wBAAwB,EAC5D,cAAeA,GAAQ,WAAW,EAClC,UAAWA,GAAQ,WAAW,EAC9B,OAAQA,GAAQ,IAAI,EACpB,gBAAiBA,GAAQ,aAAa,EACtC,eAAgBA,GAAQ,YAAY,EACpC,iCAAkCA,GAAQ,yBAAyB,EACnE,qCAAsCA,GAAQ,yBAAyB,EACvE,UAAWC,GAAS,MAAM,EAC1B,UAAWA,GAAS,MAAM,EAC1B,aAAcA,GAAS,SAAS,EAChC,kBAAmBA,GAAS,cAAc,EAC1C,iBAAkBA,GAAS,aAAa,EACxC,cAAeA,GAAS,UAAU,EAClC,oBAAqBA,GAAS,gBAAgB,EAC9C,iBAAkBC,GAAY,UAAU,EACxC,mBAAoBA,GAAY,YAAY,EAC5C,qBAAsBA,GAAY,cAAc,EAChD,gBAAiBA,GAAY,SAAS,EACtC,eAAgBA,GAAY,QAAQ,CACxC,CAAC,CAAC,ECnEK,SAASE,GAAoB51I,EAAM+0I,EAAUc,EAAcrpB,EAAQspB,EAAkBC,EAAkB,CAC1G,IAAI72J,EACJ22J,EAAexJ,GAAmB7f,EAAQqpB,CAAY,GAAK7N,IACvD/mB,GAAkBjhH,CAAI,GACtBihH,GAAkB8zB,CAAQ,GAC1B9zB,GAAkB40B,CAAY,IAC9B1xB,GAAW,2CAA2C,EAE1D,IAAI6xB,EAAO,GACPh2I,EAAKioI,EAAO,IACZ+N,EAAOh2I,EAAKioI,EAAO,EACnB,OAAOjoI,EAAKioI,EAAO,GAEvB,IAAI5E,GAAiBnkJ,EAAK,CAAE,EACxBA,EAAGg8H,EAAS,EAAoB26B,EAChC32J,EAAG,KAAOkjI,GAAY,IAAI,IAAM,EAChCljI,EAAG,KAAO82J,EACV92J,EAAG,IAAM62J,GAAsC,CAAE,EACjD72J,EAAG,KAAO,CAAE,EACZA,EAAG,KAAO,CAAE,EACZA,EAAG,SAAW61J,EACd71J,EAAG,SAAW8gB,EAEd9gB,GAEJ,OAAK+hI,GAAkB60B,CAAgB,GACnCr0B,GAAcq0B,EAAkB,SAAU1wJ,EAAMtI,EAAO,CACnDumJ,EAAc,KAAKj+I,CAAI,EAAItI,CACvC,CAAS,EAEEumJ,CACX,CC7CO,IAAI4S,GAAa,CACpB,QAAS,OACT,UAAW,SACX,SAAU,QACV,OAAQ,MACR,OAAQ,MACR,MAAO,KACP,WAAY,MACZ,OAAQ,KACZ,EACWC,GAAa,IAAIP,GCiBjBQ,GAA6B,8BAC7BC,GAA0B,2BAC1BC,GAA4B,+BCrB5BjO,GAAiB,WACjBkO,GAA6B,2BAC7BC,GAA6B,yBAC7BC,GAA6B,2BAC7BC,GAA6B,0CAC7BC,GAA2B,qBAC3BC,GAA6B,uBAC7BC,GAA6B,+BAC7BC,GAA6B,0BAC7BC,GAAmB,aACnBC,GAA6B,6BAE7BC,GAAY,OACZC,GAAiB,WACjBC,GAAqB,eACrBr6B,GAAgB,UAChBs6B,GAAa,QACbC,GAAuB,gBACvBC,GAA6B,yBAC7BC,GAA8B,uBAC9BC,GAA8B,kCAC9BC,GAA8B,mCAC9BC,GAAY,OACZC,GAA8B,wBAC9BC,GAAiB,YACjBC,GAAa,QACbC,GAAgB,WAChBC,GAAiB,WACjBC,GAAmB,aACnBC,GAAqB,eACrBx7B,GAAe,UACfy7B,GAA8B,sBAC9BC,GAA8B,0BAC9BxO,GAAgB,WAChBhuB,GAAc,SACdy8B,GAA8B,+BAC9BC,GAA8B,uBAC9BC,GAAwB,kBACxBC,GAA8B,wBAC9BC,GAA8B,+BAC9BC,GAA2B,mBAC3BC,GAAsB,gBACtBC,GAAqB,eACrBC,GAAsB,eACtBC,GAAoB,cACpBC,GAAmB,aACnBC,GAA8B,qBC9CrCC,GAAiC,UAAY,CAC7C,SAASA,EAAgBC,EAAaC,EAA0B3tB,EAAM4tB,EAA4B,CAC9F3/B,GAAaw/B,EAAiB,KAAM,SAAU7tB,EAAO,CACjD,IAAIiuB,EAAiB,KACjBC,EAAY,GACZC,EAA0B,GAC1BC,EACAhuB,IACAguB,EAAUhuB,EAAK,QAEnB,SAAS0Y,EAAe/W,EAAS,CACzB3B,GACAA,EAAK,MAAM2B,CAAO,CAEzB,CACD,SAASssB,EAAUhhL,EAAI,CACnB6gL,EAAU,KAAK7gL,CAAE,EACZ4gL,IACDA,EAAiB,YAAa,UAAY,CACtC,IAAIK,EAAWJ,EAAU,MAAM,CAAC,EAC5BK,EAAU,GACdL,EAAY,GACZ32B,GAAW+2B,EAAU,SAAUx5I,EAAM,CAC5BA,EAAI,EAKLy5I,EAAU,GAHVL,EAAU,KAAKp5I,CAAI,CAKnD,CAAyB,EACGo5I,EAAU19B,EAAiC,IAAK,IAChD,cAAcy9B,CAAc,EAC5BA,EAAiB,MAEjBM,GAEAzV,EAAe,EAAI,CAE1B,EAAG,GAAG,EAEd,CACD9Y,EAAMksB,EAAoB,EAAgC,SAAUsC,EAAU5D,EAAkB,CAC5F,IAAIvzJ,EAAOm3J,EAAS,KACpB,GAAIz4B,GAAkB1+H,CAAI,GAAK,OAAOA,GAAS,SAAU,CACrD,IAAIN,EAAMiL,KACV3K,EAAOm3J,EAAS,KAAOz3J,GAAOA,EAAI,OAAS,EAC9C,CACD,IAAIgsG,EAAMyrD,EAAS,IACnB,GAAIz4B,GAAkBhzB,CAAG,GAAK,OAAOA,GAAQ,SAAU,CACnD,IAAIokC,EAAahgE,KACjB47B,EAAMyrD,EAAS,IAAMrnB,GAAcA,EAAWolB,EAA6B,GAAI,EAClF,CAID,GAAI,CAACyB,EAA2Bf,EAA2B,IAAgD,CACvGa,EAAY1B,EAA2B,EAAqCoC,EAAU5D,CAAgB,EACtG9R,EAAe,EAAI,EAEnBvX,GAAe6sB,EAAS,EAAkC,GAA2D,iLAAiL,EACtS,MACH,CACD,IAAIK,EAAe,GACfC,EAEAvlI,EAAQ6kI,EAA2Bd,EAA2B,EAAsC,EAACC,EAAqB,EAC1HhkI,EAAQ,IACRulI,EAAiBjK,GAAsBt7H,EAAO,CAAC,IAAI,IAAI,EAClD6kI,EAA2BZ,EAAgE,EAACsB,CAAc,IAC3GA,EAAiB,SAKzB,IAAItwJ,EACA,CAAC23H,GAAkB60B,CAAgB,GACnC,CAAC70B,GAAkB60B,EAAiBpM,EAAa,CAAwB,IACzEpgJ,EAAWwsJ,EAAiBpM,MAE5BuP,GAA4B,CAAC,MAAM3vJ,CAAQ,KACvC,MAAMA,CAAQ,IAETwsJ,IACDA,EAAmB,IAEvBA,EAAiBpM,EAAqC,EAAGkQ,GAG7DZ,EAAY1B,EAA2B,EAAqCoC,EAAU5D,CAAgB,EACtG9R,EAAe,EAAI,EACnB2V,EAAe,IAGnB,IAAIE,EAAmB,IAClB/D,IACDA,EAAmB,IAGvByD,EAAU,UAAY,CAClB,IAAIO,EAAY,GAChB,GAAI,CACA,GAAIZ,EAA2BX,EAA2B,IAAgD,CACtGuB,EAAY,GACZ,IAAIC,EAAsB,CACtB,KAAMx3J,EACN,IAAK0rG,CACrC,EAC4BirD,EAA2B1B,IAA4EuC,CAAmB,EACtH,CAACA,EAAoB,SAAW,CAACJ,GAGjC7D,EAAiBpM,EAAqC,EAAGkQ,EACzDZ,EAAY1B,EAA2B,EAAqCoC,EAAU5D,CAAgB,IAGjG6D,IACD7D,EAAiBpM,EAAa,EAA2BqQ,EAAoB,WAC7Ef,EAAY1B,EAA2B,EAAqCoC,EAAU5D,CAAgB,GAErGuD,IACDL,EAAYzB,EAA2B,EAAgDwC,EAAqBjE,CAAgB,EAC5HuD,EAA0B,IAGrC,MACQhlI,EAAQ,GAAKs7H,GAAsBt7H,EAAO,CAAC,IAAI,IAAI,EAAIwlI,IAG5DC,EAAY,GACPH,IACD7D,EAAiBpM,EAAqC,EAAGmQ,EACzDb,EAAY1B,EAA2B,EAAqCoC,EAAU5D,CAAgB,GAGjH,OACM5iL,EAAG,CACNu5J,GAAe6sB,EAAS,EAAmC,GAAgD,kDAAoD31B,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAChN,CACD,OAAO4mL,CAC3B,CAAiB,CACjB,EACY5uB,EAAM,SAAW,SAAUoR,EAAWvB,EAAa,CAC/C,GAAIoe,EAAgB,CAChB,cAAcA,CAAc,EAC5BA,EAAiB,KACjB,IAAIK,EAAWJ,EAAU,MAAM,CAAC,EAEhCA,EAAY,GACZ32B,GAAW+2B,EAAU,SAAUx5I,EAAM,CAC7BA,EAAM,CAGlC,CAAqB,CACJ,CACjB,CACA,CAAS,CACJ,CAMD,OAAA+4I,EAAgB,QAAQ,EAEjBA,CACX,ICzKIiB,GAAuB,KACvBC,GAAgB,CAAC,YAAa,gBAAiB,cAAe,sBAAsB,EACxF,SAASC,IAAgC,CACrC,IAAIxK,EAAOjnB,KACX,OAAOinB,GAAQ,CAAC,CAACA,EAAK,MAC1B,CACA,SAASyK,IAA0C,CAC/C,IAAIzK,EAAOjnB,KACX,OAAOinB,GAAQA,EAAK,kBAAoBA,EAAK,iBAAiB,YAAY,EAAEh0B,EAAiC,EAAG,CACpH,CACA,SAAS0+B,KAAgC,CACrC,IAAI1K,EAAOjnB,KACP4xB,EAAS3K,EAAOA,EAAK,OAAS,EAClC,OAAO2K,GACAA,EAAO,kBAAoB,GAC3BA,EAAOhC,EAAqB,EAAkC,GAC9DgC,EAAO5B,EAAmB,EAAgC,GAC1D4B,EAAO3B,EAAkB,EAA+B,GACxD2B,EAAO1B,EAAmB,EAA+B,GACzD0B,EAAOzB,EAAiB,EAA8B,GACtDyB,EAAOxB,EAAgB,EAA6B,GACpDwB,EAAO,WAAa,CAC/B,CACA,SAASC,IAAwB,CAC7B,OAAIJ,GAA6B,EACtBzxB,GAAgB,EAAC,OAErB,IACX,CACA,SAAS8xB,KAAkC,CACvC,OAAIJ,GAAuC,EAChC1xB,GAAgB,EAAC+vB,EAAwB,EAAiC,YAAY,EAAE,CAAC,EAE7F,IACX,CAIA,SAASgC,KAAyB,CAE9B,QADIC,EAAY,GACP15J,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpC05J,EAAU15J,CAAE,EAAI,UAAUA,CAAE,EAEhC,IAAI25J,EAAavyB,GAAc,GAAI,GAE/BhmI,EAAYu4J,EAAW,UACvBC,EAAc,GAClB,GAAIx4J,EACA,QAASjG,EAAI,EAAGA,EAAI+9J,GAAcv+B,EAAW,EAAwBx/H,IACjEy+J,EAAcA,GAAex4J,EAAU,YAAa,EAAC,QAAQ83J,GAAc/9J,CAAC,CAAC,IAAM,GAG3F,GAAIy+J,EAEA,MAAO,GAIP,QAASz+J,EAAI,EAAGA,EAAIu+J,EAAU/+B,EAAW,EAAwBx/H,IAC7D,GAAIu+J,EAAUv+J,CAAC,EAAI,GAAKu+J,EAAUv+J,CAAC,GAAK89J,GACpC,MAAO,GAInB,MAAO,EACX,CAIA,IAAIY,IAA4C,UAAY,CACxD,SAASA,EAA2BtvB,EAAM,CACtC,IAAI3rI,EAAQ,KACR25J,EAAUjuB,GAAcC,CAAI,EAChC/R,GAAaqhC,EAA4B,KAAM,SAAU1vB,EAAO,CAC5DA,EAAMssB,IAA8E,SAAUuC,EAAqB,CAC/GA,EAAoB,QAAU,GAqB9B,IAAIc,EAAmBN,MACnBF,EAASC,KACT5gI,EAAQ,EACRohI,EAAU,EACV9yD,EAAU,EACVhB,EAAW,EACX+zD,EAAM,GACNF,GAAoBR,KAChBQ,GACAnhI,EAAQmhI,EAAiBnR,IAMzBoR,EAAUD,EAAiB,YAAc,EAAIA,EAAiBhC,EAAgB,EAA6BlJ,GAAsBkL,EAAiB,UAAWA,EAAiBhC,EAA0C,GACxN7wD,EAAU2nD,GAAsBkL,EAAiB,aAAcA,EAAiBpC,EAAmB,CAA6B,EAChIzxD,EAAW2oD,GAAsBkL,EAAiBpC,EAAgD,EAAEoC,EAAiBjC,EAAiB,CAA2B,EACjKmC,EAAMpL,GAAsBkL,EAAiB,YAAaA,EAAiBlC,EAAmB,CAA4B,IAG1Hj/H,EAAQi2H,GAAsB0K,EAAOhC,EAAoD,EAAEgC,EAAO1B,EAAmB,CAA4B,EACjJmC,EAAUnL,GAAsB0K,EAAOhC,EAAoD,EAAEgC,EAAOxB,EAAgB,CAA0B,EAC9I7wD,EAAU2nD,GAAsB0K,EAAO,aAAcA,EAAO5B,EAAmB,CAA6B,EAC5GzxD,EAAW2oD,GAAsB0K,EAAO5B,EAAgD,EAAE4B,EAAOzB,EAAiB,CAA2B,EAC7ImC,EAAMpL,GAAsB0K,EAAO,YAAaA,EAAO1B,EAAmB,CAA4B,GAEtGj/H,IAAU,EACV+yG,GAAe6sB,EAAS,EAAkC,GAA0C,2CAA4C,CAAE,MAAO5/H,EAAO,QAASohI,EAAS,QAAS9yD,EAAS,SAAUhB,EAAU,IAAK+zD,CAAG,CAAE,EAE5Np7J,EAAM24J,IAAiE5+H,EAAOohI,EAAS9yD,EAAShB,EAAU+zD,CAAG,EAG9GrhI,EAAQ,KAAK,MAAMohI,CAAO,EAAI,KAAK,MAAM9yD,CAAO,EAAI,KAAK,MAAMhB,CAAQ,EAAI,KAAK,MAAM+zD,CAAG,EAG9FtuB,GAAe6sB,EAAS,EAAkC,EAAwD,iCAAkC,CAAE,MAAO5/H,EAAO,QAASohI,EAAS,QAAS9yD,EAAS,SAAUhB,EAAU,IAAK+zD,CAAG,CAAE,GAGtOhB,EAAoB,WAAargI,EAEjCqgI,EAAoB,UAAYA,EAAoBrQ,EAAa,EAA2BQ,GAAaxwH,CAAK,EAC9GqgI,EAAoB,eAAiB7P,GAAa4Q,CAAO,EACzDf,EAAoB,YAAc7P,GAAaliD,CAAO,EACtD+xD,EAAoB,iBAAmB7P,GAAaljD,CAAQ,EAC5D+yD,EAAoB,cAAgB7P,GAAa6Q,CAAG,EACpDhB,EAAoB,QAAU,IAf9BttB,GAAe6sB,EAAS,EAAkC,GAAmD,qEAAsE,CAAE,MAAO5/H,EAAO,QAASohI,EAAS,QAAS9yD,EAAS,SAAUhB,EAAU,IAAK+zD,CAAG,CAAE,EAkB7R,EACY7vB,EAAMktB,EAA+D,EAAGkC,GACxEpvB,EAAMitB,EAAuE,EAAG+B,GAChFhvB,EAAMqtB,EAAuE,EAAG6B,IAChFlvB,EAAMotB,EAAgE,EAAGkC,GACrF,CAAS,CACJ,CASD,OAAAI,EAA2B,QAAQ,EAE5BA,CACX,IChKII,IAAsC,UAAY,CAMlD,SAASA,EAAqBxuB,EAAQyuB,EAA8B,CAChE,IAAIC,EAA2B,oBAC/B3hC,GAAayhC,EAAsB,KAAM,SAAU9vB,EAAO,CACtDA,EAAMmsB,EAA0B,EAAyC,SAAU8D,EAAiBC,EAAgB,CAChH,GAAI,CAEA,IAAIC,EAAwBC,EAAsBH,EAAiBC,CAAc,EAE7EC,GACAJ,EAA6BI,EAAsB,SAAUA,EAAsB,QAASA,EAAsB,aAAa,CAEtI,OACMnoL,EAAG,CACNw5J,GAAeF,EAAQ,oEAAsEpD,GAAQl2J,CAAC,CAAC,CAC1G,CACjB,EAMY,SAASooL,EAAsBC,EAAUC,EAAS,CAC9C,IAAIC,EAAoB,KACxB,GAAI,CACAA,EAAoBC,EAAkB,EACtCC,EAAoBJ,EAAUC,CAAO,CACxC,OACMtoL,EAAG,CACNw5J,GAAeF,EAAQ,2BAA6BpD,GAAQl2J,CAAC,CAAC,EAC9DuoL,EAAoB,IACvB,CACD,OAAOA,CACV,CAMD,SAASE,EAAoBJ,EAAUC,EAAS,CAC5C,GAAI,CACA,GAAIlQ,GAAuB,EAAI,CACvBM,GAAqBpf,EAAQ0uB,CAAwB,GAAK,MAC1D/2B,GAAW,8EAA8E,EAE7F,IAAIy3B,EAAoB,IAAIC,IAAcN,EAAUC,CAAO,EACvDM,EAAuBnzB,GAAO,EAAG,UAAUizB,CAAiB,EAChE/P,GAAqBrf,EAAQ0uB,EAA0BY,CAAoB,CAC9E,CACJ,OACM5oL,EAAG,CAENw5J,GAAeF,EAAQ,yBAA2BpD,GAAQl2J,CAAC,CAAC,CAC/D,CACJ,CAKD,SAASwoL,GAAqB,CAC1B,IAAID,EAAoB,KACxB,GAAI,CACA,GAAInQ,GAAuB,EAAI,CAE3B,IAAIyQ,EAAmBt4B,KAEnBu4B,EAAuBpQ,GAAqBpf,EAAQ0uB,CAAwB,EAC5Ec,GAAwBtzB,OAExB+yB,EAAoB9yB,GAAO,EAAG,MAAMqzB,CAAoB,EACxDP,EAAkB,cAAgBM,EAAmBN,EAAkB3C,EAA2B,EAElGhN,GAAwBtf,EAAQ0uB,CAAwB,EAE/D,CACJ,OACMhoL,EAAG,CACNw5J,GAAeF,EAAQ,iCAAmCpD,GAAQl2J,CAAC,CAAC,EACpEuoL,EAAoB,IACvB,CACD,OAAOA,CACV,CAEDr4B,GAAmB8H,EAAO,UAAW,UAAY,CAAE,OAAOsB,CAAO,CAAE,EACnEpJ,GAAmB8H,EAAO,+BAAgC,UAAY,CAAE,OAAO+vB,CAA6B,CAAE,CAC1H,CAAS,CACJ,CAKD,OAAAD,EAAqB,QAAQ,EAEtBA,CACX,EAAC,EAEGa,IAA+B,UAAY,CAC3C,SAASA,EAAcN,EAAUC,EAAS,CACtC,KAAK1C,IAAgEr1B,KACrE,KAAK,SAAW83B,EAChB,KAAK,QAAUC,CAClB,CACD,OAAOK,CACX,IC9GII,GAAwB,UAAY,CACpC,SAASA,EAAOzvB,EAAQjqI,EAAM,CAC1B,IAAI2oI,EAAQ,KACRjvH,EAAU,GACdivH,EAAM,MAAQ,SAAU3oI,EAAM,CACtB,OAAO0Z,EAAQ1Z,CAAI,EAAM,KACzBkqI,GAAeD,EAAQ,EAAkC,GAAsD,uEAAwE,CAAE,KAAMjqI,EAAM,IAAKA,CAAM,EAAE,EAAI,EAE1N0Z,EAAQ1Z,CAAI,EAAI,CAAC,IAAI,IACjC,EACQ2oI,EAAM,KAAO,SAAU3oI,EAAM8tB,EAAKhU,EAAY4wI,EAAc,CACxD,IAAI54H,EAAQpY,EAAQ1Z,CAAI,EACxB,GAAI,MAAM8xB,CAAK,EACXo4G,GAAeD,EAAQ,EAAkC,GAAqD,iDAAkD,CAAE,KAAMjqI,EAAM,IAAKA,CAAM,EAAE,EAAI,MAE9L,CACD,IAAI+xB,EAAM,CAAC,IAAI,KACXhrB,EAAWqmJ,GAAsBt7H,EAAOC,CAAG,EAC/C42G,EAAM,OAAO3oI,EAAM8tB,EAAK/mB,EAAU+S,EAAY4wI,CAAY,CAC7D,CACD,OAAOhxI,EAAQ1Z,CAAI,EACnB0Z,EAAQ1Z,CAAI,EAAI,MAC5B,CACK,CACD,OAAO05J,CACX,ICnBIC,IAAW,QACf,SAASC,GAAe7/J,EAAQ8/J,EAAM,CAC9B9/J,GAAUA,EAAO,eAAiB8/J,GAClC9/J,EAAO,cAAc8/J,CAAI,CAEjC,CACA,SAASC,IAAWv+J,EAAO,CACvB,GAAIA,GAASA,EAAM,OAAQ,CACvB,IAAIunG,EAASvnG,EAAM,OACnB,MAAI,CAACwjI,GAASj8B,CAAM,GAAK+7B,GAAW/7B,EAAO+iD,EAAc,CAAwB,EACtE/iD,EAAO+iD,EAAc,IAEzBhf,GAAQ/jC,CAAM,CACxB,CAED,OAAOvnG,GAAS,EACpB,CACA,IAAIw+J,GAAkB,IACtB,SAASC,GAAoBz/J,EAAOknI,EAAU,CAC1C,OAAAlnI,EAAQA,GAASknI,EACblnI,EAAQw/J,KACRx/J,EAAQw/J,IAELx/J,CACX,CACA,SAAS0/J,GAAkBx9J,EAAQ,CAC/B,OAAKA,IACDA,EAAS,IAGbA,EAAO,iBAAmBu9J,GAAoBv9J,EAAO,iBAAkB,GAAK,GAAK,GAAI,EACrFA,EAAO,oBAAsBu9J,GAAoBv9J,EAAO,oBAAqB,GAAK,GAAK,GAAK,GAAI,EAChGA,EAAOs3J,EAA0B,EAA2CrM,GAAsBjrJ,EAAOs3J,EAAkE,GAC3Kt3J,EAAOu3J,EAA0B,EAAyCtM,GAAsBjrJ,EAAOu3J,EAAgE,GACvKv3J,EAAOw3J,EAA0B,EAA2CvM,GAAsBjrJ,EAAOw3J,EAAkE,GAC3Kx3J,EAAOy3J,EAA0B,EAA0DxM,GAAsBjrJ,EAAOy3J,EAAiF,IACrM,MAAMz3J,EAAO03J,EAAwB,CAAkC,GAAK13J,EAAO03J,EAA0D,GAAI,GAAK13J,EAAO03J,EAAwB,GAAsC,OAC3N13J,EAAO03J,EAA0D,EAAG,KAExE13J,EAAO23J,EAA0B,EAAuC1M,GAAsBjrJ,EAAO23J,EAA8D,GACnK33J,EAAO43J,EAA0B,EAA+C3M,GAAsBjrJ,EAAO43J,EAAsE,GACnL53J,EAAO63J,EAA0B,EAA0C5M,GAAsBjrJ,EAAO63J,EAAiE,GACzK73J,EAAO83J,EAA0C,EAAG93J,EAAO83J,EAAgB,GAA8B,GACzG93J,EAAO,YAAcirJ,GAAsBjrJ,EAAO,WAAW,EAC7DA,EAAO+3J,EAA0B,EAA6C9M,GAAsBjrJ,EAAO+3J,EAAoE,GAC/K/3J,EAAO,qBAAuBirJ,GAAsBjrJ,EAAO,qBAAsBA,EAAO+3J,EAA0B,CAA0C,EACrJ/3J,CACX,CACA,SAASy9J,IAAoBniB,EAAW,CAG/BtZ,GAAYsZ,EAAUqc,EAA8D,KACjFrc,EAAUqc,IACVpL,KAGAC,KAGZ,CACA,IAAIkR,IAAiC,SAAUttJ,EAAQ,CACnDtT,GAAU4gK,EAAiBttJ,CAAM,EACjC,SAASstJ,GAAkB,CACvB,IAAI/8J,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjCzP,EAAM,WAAa02J,GACnB12J,EAAM,SAAW,IACjBA,EAAM,iBAAmB,IACzB,IAAIg9J,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAOAC,EACAC,EACAhb,EACJ,OAAAnpB,GAAamjC,EAAiB/8J,EAAO,SAAUurI,EAAOiV,EAAO,CACzD,IAAIwd,EAAWxd,EAAM,SACrBd,IACAnU,EAAM,aAAe,UAAY,CAC7B,OAAOoG,GAAiBpG,EAAM8rB,EAAS,CAAoB,CAC3E,EACY9rB,EAAM,iBAAmB,SAAU0P,EAAKkB,EAAS,CAC7C5Q,EAAM,YAAY0P,EAAKkB,CAAO,CAC9C,EACY5Q,EAAM,WAAa,SAAUx+H,EAAOopJ,EAAkB,CAClD,GAAI,CACA,IAAIzS,EAAgBuS,GAAoBlpJ,EAAOkxJ,GAAe3G,EAAsC,EAAE2G,GAAe1G,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAEi5B,CAAgB,EACnO5qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACpF,OACMnwK,EAAG,CACNu5J,EAAe,EAAkC,GAA+C,mDAAqD9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACtM,CACjB,EAKYg4J,EAAM,gBAAkB,SAAU3oI,EAAM,CACpC,GAAI,CACAo6J,EAAe,MAAMp6J,CAAI,CAC5B,OACMrvB,EAAG,CACNu5J,EAAe,EAAmC,GAAoD,wDAA0D9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACjN,CACjB,EAOYg4J,EAAM,eAAiB,SAAU3oI,EAAM8Z,EAAY4wI,EAAc,CAC7D,GAAI,CACA0P,EAAe,KAAKp6J,EAAM,OAAW8Z,EAAY4wI,CAAY,CAChE,OACM/5K,EAAG,CACNu5J,EAAe,EAAmC,GAAmD,uDAAyD9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC/M,CACjB,EAOYg4J,EAAM,WAAa,SAAU2N,EAAOid,EAAkB,CAClD,GAAI,CACA,IAAIzS,EAAgBuS,GAAoB/c,EAAO6b,GAAMuC,EAAsC,EAAEvC,GAAMwC,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAEi5B,CAAgB,EACjN5qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACpF,OACMnwK,EAAG,CACNu5J,EAAe,EAAkC,GAA+C,mDAAqD9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACtM,CACjB,EAYYg4J,EAAM,YAAc,SAAU2yB,EAAQ/H,EAAkB,CACpD,GAAI,CACA,IAAIzS,EAAgBuS,GAAoBiI,EAAQ9J,GAAOkD,EAAsC,EAAElD,GAAOmD,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAEi5B,CAAgB,EACpN5qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACpF,OACMnwK,EAAG,CACNu5J,EAAe,EAAmC,GAAgD,qDAAuD9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC1M,CACjB,EAOYg4J,EAAMksB,EAAoB,EAAgC,SAAUsC,EAAU5D,EAAkB,CAC5F,GAAI,CACA,IAAIgI,EAAOpE,GAAY,GACvBmD,EAAiBzF,EAAoB,EAA8B0G,EAAM9hK,GAASA,GAASA,GAAS,GAAI8hK,EAAK,UAAU,EAAGA,EAAK,YAAY,EAAGhI,CAAgB,CAAC,EAC3J5qB,EAAM,OAAOqrB,KACbwG,EAAsB1F,EAA0B,EAAuCyG,EAAK,KAAMA,EAAK,GAAG,CAEjH,OACM5qL,EAAG,CACNu5J,EAAe,EAAmC,GAA4C,0DAA4D9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC3M,CACjB,EAOYg4J,EAAMosB,EAA+D,EAAG,SAAUoC,EAAUr9I,EAAY05I,EAAkB,CACtH,IAAI9zJ,EAAMiL,KACNjL,IACAy3J,EAAS,OAASA,EAAS,SAAW,OAAYz3J,EAAI,SAAWy3J,EAAS,QAE9E,IAAIrW,EAAgBuS,GAAoB8D,EAAUxF,GAAS+C,EAAc,EAA0B/C,GAASgD,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAExgH,EAAY05I,CAAgB,EACtO7qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CAGjG,EAMYnY,EAAMqsB,EAA0E,EAAG,SAAUwC,EAAqB19I,EAAY05I,EAAkB,CAC5I,IAAI1S,EAAgBuS,GAAoBmE,EAAqBpF,GAAoBsC,EAAc,EAA0BtC,GAAoBuC,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAExgH,EAAY05I,CAAgB,EACvQ7qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACjG,EAMYnY,EAAM,yBAA2B,SAAU6uB,EAAqBjE,EAAkB,CAC9E,IAAIiI,EAAQhE,GAAuB,GACnC,GAAI,CACA+C,EAA4BtF,IAA4EuG,CAAK,EAC7G7yB,EAAMqsB,EAA2B,EAAgDwG,EAAOjI,CAAgB,CAC3G,OACM5iL,EAAG,CACNu5J,EAAe,EAAmC,GAA4C,qEAAuE9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACtN,CACjB,EAOYg4J,EAAM,eAAiB,SAAU3oI,EAAM,CACnC,GAAI,CACA,GAAI,OAAOA,GAAS,SAAU,CAC1B,IAAIN,EAAMiL,KACV3K,EAAON,GAAOA,EAAI,OAAS,EAC9B,CACD26J,EAAc,MAAMr6J,CAAI,CAC3B,OACMrvB,EAAG,CACNu5J,EAAe,EAAmC,GAA+C,0DAA4D9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC9M,CACjB,EASYg4J,EAAM,cAAgB,SAAU3oI,EAAM8tB,EAAKhU,EAAY2hJ,EAAa,CAChE,GAAI,CACA,GAAI,OAAOz7J,GAAS,SAAU,CAC1B,IAAIN,EAAMiL,KACV3K,EAAON,GAAOA,EAAI,OAAS,EAC9B,CACD,GAAI,OAAOouB,GAAQ,SAAU,CACzB,IAAIk6D,EAAMlY,KACVhiD,EAAMk6D,GAAOA,EAAIktE,EAAS,GAAwB,EACrD,CACDmF,EAAc,KAAKr6J,EAAM8tB,EAAKhU,EAAY2hJ,CAAW,EACjD9yB,EAAM,OAAOqrB,KACbwG,EAAsB1F,EAA0B,EAAuC90J,EAAM8tB,CAAG,CAEvG,OACMn9C,EAAG,CACNu5J,EAAe,EAAmC,GAA8C,0DAA4D9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC7M,CACjB,EAOYg4J,EAAMwsB,EAAgE,EAAG,SAAU9K,EAAWkJ,EAAkBC,EAAkB,CAC9H,IAAIkI,EAAWrR,EAAU+K,KAA2C/K,EAAUgL,KAAmC,IAAI,MAAM5P,EAAe,EACtIkW,EAAiB,IAAIlL,GAAU9nB,EAAMrO,IAAsC,EAAEohC,EAAUrR,EAAU,YAAckJ,EAAkBlJ,EAAU,aAAcA,EAAU,cAAeA,EAAU,EAAE,EAAE,cAChMvJ,EAAgBuS,GAAoBsI,EAAgBlL,GAAUiE,EAAc,EAA0BjE,GAAUkE,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAEi5B,EAAkBC,CAAgB,EACpP7qB,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACjG,EAUYnY,EAAM,eAAiB,SAAU0hB,EAAWkJ,EAAkB,CACtDlJ,GAAa,CAACA,EAAU+K,EAAc,GAA6B/K,EAAUgL,MAC7EhL,EAAU+K,EAAc,EAA4B/K,EAAUgL,EAAU,GAE5E,GAAI,CACA1sB,EAAMwsB,EAA2B,EAAsC9K,EAAWkJ,CAAgB,CACrG,OACM5iL,EAAG,CACNu5J,EAAe,EAAmC,GAAmD,2DAA6D9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACnN,CACjB,EAMYg4J,EAAM2sB,IAAwC,SAAUjL,EAAW,CAC/D,IAAI9uJ,EAAQ8uJ,GAAaA,EAAUgL,EAAU,EACzCn8F,EAAMmxF,GAAaA,EAAU,IACjC,GAAI,CACA,GAAI,CAACnxF,EAAK,CACN,IAAIzyD,EAAUC,KACVD,IACAyyD,EAAMzyD,EAAQkzJ,GAAQ,EAE7B,CACD,IAAI7rI,EAAOu8H,GAAaA,EAAU,MAAS1/I,GAAW,GAAM,CAAE,GAAE,IAE5DimJ,EAAWvG,EAAUkL,EAAsC,GAAI,kBAAoBznI,EAAM,KAAOu8H,EAAUmL,EAA0C,GAAI,GAAK,KAAOnL,EAAUoL,EAAkB,GAAgC,GAChO37I,EAAa,CACb,SAAU82I,EACV,IAAK9iI,EACL,WAAYu8H,EAAUmL,EAAgB,GAA8B,EACpE,aAAcnL,EAAUoL,EAAkB,GAAgC,EAC1E,QAASpL,EAAUpwB,EAAmC,CAC9E,EACwBguB,GAAmBoC,EAAU,QAASA,EAAU,IAAKA,EAAU,WAAYA,EAAU,aAAcA,EAAUgL,EAA+B,GAC5IuG,EAAmBnL,GAAUiF,IAA+D,qJAAsJ5nI,EAAKu8H,EAAUmL,EAAgB,GAA8B,EAAGnL,EAAUoL,EAA8C,GAAI,EAAGl6J,EAAO29D,EAAK,KAAM03F,CAAQ,EAAG92I,CAAU,GAGnZuwI,EAAUkL,MACXlL,EAAUkL,EAAsC,EAAG3E,GAEvDjoB,EAAM,eAAe,CAAE,UAAW0hB,EAAW,cAAe,CAAC,EAA+BvwI,CAAU,EAE7G,OACMnpC,EAAG,CACN,IAAIkrL,EAActgK,EAASA,EAAM,KAAO,KAAOA,EAAM0+H,EAAmC,EAAI,OAC5FiQ,EAAe,EAAmC,GAAyD,8EACrG9I,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,EAAG,YAAakrL,CAAW,CAAE,CACjF,CACjB,EACYlzB,EAAMgtB,IAAqE,SAAU9X,EAAsB,CACvG,GAAIlV,EAAM8rB,IAEN,OAAO9rB,EAAM8rB,EAAS,EAAqBkB,EAAkE,EAAC9X,CAAoB,EAGjI4c,IACDA,EAAgC,IAEpCA,EAA8B,KAAK5c,CAAoB,CACvE,EACYlV,EAAM,WAAa,SAAUlsI,EAAQssI,EAAMlhD,EAAY4zD,EAAa,CAChE,GAAI,CAAA9S,EAAM,gBAGV,CAAIjK,GAAkBqK,CAAI,GACtBnH,GAAW,oBAAoB,EAEnCgc,EAAM,WAAWnhJ,EAAQssI,EAAMlhD,EAAY4zD,CAAW,EACtD,GAAI,CACA0E,EAAgBxN,GAAkBxF,GAAsBxE,EAAM,UAAU,EAAGI,EAAK,cAAgBA,EAAK,aAAY,CAAE,EAC/G0xB,IACAv6B,GAAWu6B,EAA+B,SAAU1c,EAAa,CAC7DhV,EAAK4sB,IAAmE5X,CAAW,CAC/G,CAAyB,EACD0c,EAAgC,MAEpC,IAAI1iB,EAAY+jB,EAAkBr/J,CAAM,EACxCy9J,IAAoBniB,CAAS,EAC7BwiB,EAA8B,IAAIlC,IAA2B1vB,EAAM8rB,EAA6B,GAChG6F,EAAmB,IAAI9D,GAAgBp5J,EAAO26I,EAAUkc,EAAkE,EAAEtrB,EAAM8rB,IAA+B8F,CAA2B,EAC5LC,EAAwB,IAAI/B,IAAqB9vB,EAAMrO,EAAoC,IAAI,SAAU0+B,EAAUC,EAAS8C,EAAe,CAAE,OAAOC,EAAmBhD,EAAUC,EAAS8C,CAAa,CAAE,CAAE,EAC3ME,EAA2BlkB,EAAWt7I,CAAM,EAC5C29J,EAAiB,IAAIV,GAAO/wB,EAAMrO,EAAoC,IAAI,YAAY,EACtF8/B,EAAe,OACX,SAAUp6J,EAAM8tB,EAAK/mB,EAAU+S,EAAY4wI,GAAc,CAChD5wI,IACDA,EAAa,IAEZ4wI,KACDA,GAAe,IAEnB5wI,EAAW,SAAW/S,EAAS8+I,EAAsC,IACrEld,EAAM,WAAW,CAAE,KAAM3oI,EAAM,WAAY8Z,EAAY,aAAc4wI,EAAY,CAAE,CAC/G,EAEoB2P,EAAgB,IAAIX,GAAO/wB,EAAMrO,EAAoC,IAAI,eAAe,EACxF+/B,EAAc,OAAS,SAAUr6J,EAAM8tB,EAAK/mB,EAAU+S,EAAY4wI,GAAc,CAExEhsB,GAAkB5kH,CAAU,IAC5BA,EAAa,IAEjBA,EAAW,SAAW/S,EAAS8+I,EAAsC,IACrE,IAAIqW,GAAe,CACf,KAAMl8J,EACN,IAAK8tB,EACL,WAAYhU,EACZ,aAAc4wI,EAC1C,EACwB/hB,EAAMosB,EAA2B,EAAqCmH,GAAcpiJ,CAAU,CACtH,EACwB2rH,GAAS,IACT02B,EAAyBpkB,CAAS,EAClCqkB,EAAsBrkB,CAAS,EAEtC,OACMpnK,EAAG,CAEN,MAAAg4J,EAAM,eAAe,EAAK,EACpBh4J,CACT,EACjB,EACYg4J,EAAM,YAAc,SAAUoR,EAAWvB,EAAa,CAClD8hB,GAAoBA,EAAiB,SAASvgB,EAAWvB,CAAW,EAEpEvF,GAAS,OAAQ,KAAM,KAAMkN,CAAa,EAC1CrD,GAChB,EACY,SAASgf,EAAkBr/J,EAAQ,CAC/B,IAAIi9E,EAAMw+D,GAA8B,KAAMz7I,EAAQksI,EAAM8rB,EAAS,CAAoB,EACrFzyE,EAAa2mD,EAAM,WAEnBtkC,EAAW41D,GAAkBx9J,CAAM,EACnCs7I,EAAYpP,EAAM,OAASjvD,EAAI,UAAUsI,CAAU,EACvD,OAAIqiB,IAAa,QACb66B,GAAc76B,EAAU,SAAUtvB,EAAOx6E,EAAO,CAE5Cw9I,EAAUhjE,CAAK,EAAI2E,EAAI,UAAUsI,EAAYjN,EAAOx6E,CAAK,EACrDw9I,EAAUhjE,CAAK,IAAM,SACrBgjE,EAAYx9I,EAExC,CAAqB,EAEEw9I,CACV,CACD,SAASkkB,EAA2BlkB,EAAWt7I,EAAQ,CACnDi+J,EAAgC3iB,EAAUsc,EAAsE,GAAI53J,EAAO43J,EAA0B,EACrJgI,GACH,CAMD,SAASL,EAAmBhD,EAAUC,EAAS8C,EAAe,CAC1D,IAAIjiJ,EAAa,CAAE,SAAUk/I,EAAU,QAASC,CAAO,EACvDtwB,EAAM,YAAY,CACd,KAAM,gBACN,QAASozB,EACT,IAAKA,EACL,IAAKA,EACL,YAAa,CAChB,EAAEjiJ,CAAU,CAChB,CACD,SAASuiJ,GAAmC,CACxC,GAAI,CAAC1B,GAAgCD,EAA+B,CAChE,IAAI4B,EAAqB,CAAC,uBAAwB,iBAAiB,EAC/DC,EAA0B,SAAUC,EAAU,CAC9C,GAAI9B,GAAiC8B,EAAS,WAAa3K,GAAqB6C,EAAc,EAA0B,CACpH,IAAI+H,EAAaD,EAAS,SAC1B,GAAIC,GACA,QAAS9iK,EAAI,EAAGA,EAAI2iK,EAAmBnjC,EAAW,EAAwBx/H,IACtE,GAAI8iK,EAAW,QAAUA,EAAW,OAAO,QAAQH,EAAmB3iK,CAAC,CAAC,GAAK,EACzE,MAAO,GAItB,CACD,MAAO,EAC/B,EACoBgvI,EAAMgtB,IAAmE4G,CAAuB,EAChG5B,EAA+B,EAClC,CACJ,CACD,SAASiB,EAAmBvR,EAAWvwI,EAAY,CAC/C,IAAIgnI,EAAgBuS,GAAoBhJ,EAAWoG,GAAUiE,EAAsC,EAAEjE,GAAUkE,EAA8C,EAAEhsB,EAAMrO,EAAa,EAAyB,EAAExgH,CAAU,EACvN6uH,EAAM8rB,EAA6B,EAACG,EAA+B,EAAC9T,CAAa,CACpF,CACD,SAASqb,EAAyBpkB,EAAW,CACzC,IAAItxI,EAAUC,KACVg2J,EAAO5sF,GAAY,EAAI,EAC3BgrF,EAA4B/iB,EAAUgc,IAClC,CAAC+G,GAA6B,CAACC,GAA8B,CAAChjB,EAAU,4BAExEqjB,EAASlW,GAAgBz+I,EAAS,UAAW,CACzC,GAAI05I,EACJ,IAAK,SAAUyD,EAAax3I,EAAS0hB,EAAKo6H,EAAYC,EAAc5sJ,EAAO,CACnE,CAACu/J,GAA6BlX,EAAY,OAAS,IACnDjb,EAAM2sB,EAAqC,EAAC7E,GAAUiF,EAA8D,EAACtpJ,EAAS0hB,EAAKo6H,EAAYC,EAAc5sJ,EAAOqoJ,EAAY,GAAG,CAAC,CAE3L,CACzB,EAAuB,EAAK,CAAC,EACTmX,EAA6B,IAEjC4B,EAAsC5kB,EAAWtxI,EAASi2J,CAAI,CACjE,CACD,SAASN,EAAsBrkB,EAAW,CACtC,IAAI5wI,EAAMT,KACNg2J,EAAO5sF,GAAY,EAAI,EAK3B,GAJA8qF,EAA2B7iB,EAAUuc,EAAiE,IAAK,GAIvGntJ,GAAOyzJ,GAA4B/0B,KAAc,CACjD,IAAI+2B,EAAW92B,KACXjH,GAAW+9B,EAAS,SAAS,GAAK/9B,GAAW+9B,EAAS,YAAY,GAAK,OAAO,QAAUC,IACxFC,EAAoB/kB,EAAW5wI,EAAKy1J,EAAUF,CAAI,CAEzD,CACJ,CACD,SAASK,GAA0B,CAC/B,IAAIC,EAAsB,KAI1B,GAHIr0B,EAAM8rB,EAA6B,GAAI9rB,EAAM8rB,EAAS,EAAqB,cAC3EuI,EAAsBr0B,EAAM8rB,EAA6B,EAAC,YAAY,EAAK,GAE3E,CAACuI,EAAqB,CAEtB,IAAIljJ,EAAa6uH,EAAM8rB,EAA6B,EAAC,UAAUb,EAA0B,EACzF,GAAI95I,EAAY,CACZ,IAAI/M,EAAU+M,EAAW,OAAO,QAC5B/M,IACAiwJ,EAAsB3P,GAAuCtgJ,EAAQ,cAAc,EAE1F,CACJ,CACD,OAAOiwJ,CACV,CAID,SAASF,EAAoB/kB,EAAW5wI,EAAKopE,EAASmsF,EAAM,CACxD,IAAIO,EAAallB,EAAUwc,EAAgB,GAA8B,GACzE,SAAS2I,GAAmB,CACpBtC,GACAhB,GAAezyJ,EAAKw+I,GAAesX,EAAa,gBAAgB,CAAC,CAExE,CACD,SAASE,GAAyB,CAS9B,GAPIhC,IACAD,EAAWC,GACXA,EAAWuB,GAAQA,EAAKxH,EAAS,GAAwB,GAKzD0F,EAA0B,CAC1B,IAAIoC,EAAsBD,IAC1B,GAAIC,EAAqB,CACrBA,EAAoB,WAAW/oB,GAAa,CAAE,EAC9C,IAAImpB,EAAoB,YACpBV,GAAQA,EAAK,WACbU,EAAoBV,EAAK,UAAYA,EAAK,MAAQ,KAGtDM,EAAoB,QAAQlT,GAAmBnhB,EAAMrO,IAAsC,EAAE8iC,CAAiB,CAAC,CAClH,CACD,YAAY,SAAU1xD,GAAK,CAEvBi9B,EAAMksB,IAAkD,CAAE,OAAQnpD,GAAK,WAAY,CAAE,SAAU,CAAG,EAAE,CAChI,GAA2B,KAAK,KAAMwvD,CAAQ,EAAGvyB,EAAM,gBAAgB,CAClD,CACJ,CACIkyB,IACDO,EAASlW,GAAgB30E,EAAS,YAAa,CAC3C,GAAI4vE,EACJ,IAAK,UAAY,CACTya,IACAhB,GAAezyJ,EAAKw+I,GAAesX,EAAa,WAAW,CAAC,EAC5DrD,GAAezyJ,EAAKw+I,GAAesX,EAAa,gBAAgB,CAAC,EAExE,CACzB,EAAuB,EAAI,CAAC,EACR7B,EAASlW,GAAgB30E,EAAS,eAAgB,CAC9C,GAAI4vE,EACJ,IAAK,UAAY,CACTya,IACAhB,GAAezyJ,EAAKw+I,GAAesX,EAAa,cAAc,CAAC,EAC/DrD,GAAezyJ,EAAKw+I,GAAesX,EAAa,gBAAgB,CAAC,EAExE,CACzB,EAAuB,EAAI,CAAC,EACRlqB,GAAQ5rI,EAAK81J,EAAa,WAAYC,EAAkB/c,CAAa,EACrEpN,GAAQ5rI,EAAK81J,EAAa,iBAAkBE,EAAwBhd,CAAa,EACjF0a,EAAwB,GAE/B,CACD,SAAS8B,EAAsC5kB,EAAWtxI,EAAS42J,EAAW,CAC1ErC,EAA2CjjB,EAAUmc,EAAiF,IAAK,GACvI8G,GAA4C,CAACC,IAE7CG,EAASlW,GAAgBz+I,EAAS,uBAAwB,CACtD,GAAI05I,EACJ,IAAK,SAAUyD,EAAaroJ,EAAO,CAC3By/J,GAA4CpX,EAAY,OAAS,IACjEjb,EAAM2sB,EAAa,EAAyB7E,GAAUiF,EAA2B,EAAoCoE,IAAWv+J,CAAK,EAAG8hK,EAAYA,EAAUnI,EAA6B,EAAG,GAAI,EAAG,EAAG35J,EAAOqoJ,EAAY,GAAG,CAAC,CAEtO,CACzB,EAAuB,EAAK,CAAC,EACTqX,EAAoC,GACpCljB,EAAU,iCAAmCkjB,EAEpD,CAMD,SAAS/wB,EAAeV,EAAUhB,EAAOC,EAAK3uH,EAAY4uH,EAAW,CACjEC,EAAMrO,IAAsC,EAAC,cAAckP,EAAUhB,EAAOC,EAAK3uH,EAAY4uH,CAAS,CACzG,CACD,SAASoU,GAAgB,CACrBsd,EAAiB,KACjBC,EAAgB,KAChBC,EAAmB,KACnBC,EAA8B,KAC9BC,EAAwB,KACxBC,EAAgC,KAChCC,EAAgC,GAChCC,EAA+B,GAC/BC,EAA2B,GAC3BC,EAAwB,GACxBC,EAA4B,GAC5BC,EAA6B,GAC7BC,EAA2C,GAC3CC,EAAoC,GAOpC,IAAIzrF,EAAWM,GAAY,EAAI,EAC/BorF,EAAW1rF,GAAYA,EAAS0lF,EAAS,GAAwB,GACjEiG,EAAW,KACXhb,EAAgB,IACnB,CAEDtf,GAAmB8H,EAAO,mBAAoB,UAAY,CAAE,OAAO2xB,CAAiB,CAAE,EACtFz5B,GAAmB8H,EAAO,8BAA+B,UAAY,CAAE,OAAO4xB,CAA4B,CAAE,EAC5G15B,GAAmB8H,EAAO,wBAAyB,UAAY,CAAE,OAAO6xB,CAAsB,CAAE,EAChG35B,GAAmB8H,EAAO,gBAAiB,UAAY,CAAE,MAAO,IAAMwX,CAAc,CAAE,CAClG,CAAS,EACM/iJ,CACV,CAmBD,OAAA+8J,EAAgB,QAAU,QAC1BA,EAAgB,iBAAmBF,GAC5BE,CACX,EAAE3d,EAAmB,ECrqBV8gB,GAAe,WCEfC,GAAY,OACZC,GAAmB,aACnBC,GAAY,OACZ9kC,GAAY,OACZmD,GAAgB,UAChB3C,GAAc,SACd6sB,GAAiB,YACjBM,GAAoB,eACpBoO,GAAiB,WACjBC,GAAqB,eACrB9O,GAAiB,WACjB6X,GAAe,SACfC,GAAe,UACf5X,GAAa,QACbjtB,GAAY,OACZ8kC,GAA6B,wBAC7BC,GAAa,QACbC,GAAsB,gBACtBC,GAAoB,aACpBC,GAAkB,YAClBC,GAAoB,aACpBC,GAA0B,kBAC1BC,GAA0B,kBAC1B5J,GAAmB,aACnB6J,GAA6B,sBAC7BC,GAAoB,cACpB/jC,GAAgB,UAChBgkC,GAA6B,wBAC7BC,GAA6B,sBAC7BC,GAAe,UACfC,GAAsB,gBACtBC,GAAe,UACfC,GAA6B,6BAC7BxK,GAA2B,qBAC3Bl7B,GAA2B,qBAC3B2lC,GAAoB,cACpBC,GAAsB,gBACtBC,GAAmB,aACnBC,GAA6B,uBAC7BC,GAAyB,mBACzBC,GAAiB,WACjBC,GAAmB,aACnBC,GAAyB,mBACzBC,IAA6B,uBAC7BC,GAAiB,WACjBC,GAA2B,oBAC3BC,GAAmB,aACnBC,GAAsB,gBACtBC,IAAsB,gBACtBC,GAAyB,kBACzBC,GAA0B,mBAC1BC,GAA0B,mBAC1BC,GAA2B,oBAC3BC,GAA6B,sCAC7BC,GAA0B,mBAC1BC,IAA2B,mBC1DlCC,GAAc,WACdC,GAAc,WACdC,GAAgB,aAChBC,GAAU,OACd,SAASC,GAAYtmK,EAAQg7E,EAAOx6E,EAAO,CACvC,OAAOuiB,GAAS/iB,EAAQg7E,EAAOx6E,EAAOonI,EAAQ,CAClD,CAIA,SAAS2+B,IAAwBr2B,EAAQxsH,EAAM46H,EAAK,CAEhD,IAAIkoB,EAAUloB,EAAIklB,EAAS,EAAuBllB,EAAIklB,EAA6B,GAAI,GACnFiD,EAAS/iJ,EAAK,IAAMA,EAAK,KAAO,GAChCgjJ,EAAUhjJ,EAAK8/I,EAAS,EAAuB9/I,EAAK8/I,EAA6B,GAAI,GACrFmD,EAAUF,EAAO,KACjBE,IACAL,GAAYE,EAAS5M,GAAW,eAAgB+M,EAAQ,MAAM,EAC9DL,GAAYE,EAAS5M,GAAW,OAAQ+M,EAAQ,IAAMA,EAAQ,OAAO,GAEzE,IAAIC,EAASH,EAAO,IAChBG,GACAN,GAAYE,EAAS5M,GAAW,UAAWgN,EAAO,KAAK,EAE3D,IAAIC,EAAYJ,EAAO,OACnBI,IACAP,GAAYE,EAAS5M,GAAW,SAAUiN,EAAU,IAAMA,EAAU,OAAO,EAC3EP,GAAYE,EAAS5M,GAAW6J,EAAgB,EAA4BoD,EAAU,WAAW,EACjGP,GAAYE,EAAS5M,GAAW,SAAUiN,EAAU,EAAE,EACtDP,GAAYE,EAAS5M,GAAW,YAAaiN,EAAU,KAAK,EAC5DP,GAAYE,EAAS5M,GAAW6J,EAA0C,EAAEoD,EAAUpD,EAAgB,CAA0B,GAEpI,IAAIqD,EAAMpjJ,EAAK,IAAI,IACnB,GAAIojJ,EAAK,CACLR,GAAYE,EAAS5M,GAAW,eAAgBkN,EAAI,WAAW,EAC/DR,GAAYE,EAAS5M,GAAW,qBAAsBkN,EAAI,UAAU,EACpER,GAAYE,EAAS5M,GAAW,cAAekN,EAAI,OAAO,EAC1D,IAAIC,EAAUzoB,EAAIolB,EAAS,EAAuBplB,EAAIolB,EAA6B,GAAI,GACnFsD,EAAcD,EAAQZ,EAAW,EAAIY,EAAQZ,EAAW,GAAK,GAC7Dc,EAAWD,EAAYZ,EAAa,EAAIY,EAAYZ,EAAa,GAAK,GAC1EE,GAAYW,EAAU,SAAUH,EAAI,MAAM,EAC1CR,GAAYW,EAAU,WAAYH,EAAI,SAAWT,GAAU,IAAI,EAC/DC,GAAYW,EAAU,YAAaH,EAAI,SAAS,EAChDR,GAAYW,EAAU,cAAeH,EAAI,YAAcT,GAAU,IAAI,CACxE,CACD,IAAIa,EAAQT,EAAO,GACfS,GACAZ,GAAYE,EAAS5M,GAAW,SAAUsN,EAAMtoC,EAAS,CAAoB,EAGjF,IAAIuoC,EAAWV,EAAO,MAClBU,IACAb,GAAYE,EAAS5M,GAAW,kBAAmBuN,EAAS,QAAQ,EACpEb,GAAYE,EAAS5M,GAAW,cAAe7J,GAAmB7f,EAAQi3B,EAASvoC,EAA6B,EAAC,EACjH0nC,GAAYE,EAAS5M,GAAW,YAAauN,EAASplC,EAAa,CAAuB,GAmB9F,QAFIqlC,EAAM,GAEDxnK,EAAI8mK,EAAQtnC,EAAW,EAAyB,EAAGx/H,GAAK,EAAGA,IAAK,CACrE,IAAI/R,EAAK64K,EAAQ9mK,CAAC,EAClBulI,GAAct3I,EAAI,SAAUoS,EAAKO,EAAO,CACpC4mK,EAAInnK,CAAG,EAAIO,CACvB,CAAS,EACDkmK,EAAQ,OAAO9mK,EAAG,CAAC,CACtB,CAEDulI,GAAcuhC,EAAS,SAAU74K,EAAI2S,EAAO,CACxC4mK,EAAIv5K,CAAE,EAAI2S,CAClB,CAAK,EACD,IAAI6mK,EAAU3nK,GAASA,GAAS,CAAE,EAAE8mK,CAAO,EAAGY,CAAG,EAC5CC,EAAQzN,GAAW,kBAAkB,IAEtCyN,EAAQzN,GAAW,kBAAkB,EAAI,cAAc,OAAO0N,IAAgB,OAAO,GAEzFhpB,EAAIklB,EAAS,EAAuB76B,GAAe0+B,CAAO,CAC9D,CACA,SAASE,GAA6BzwJ,EAAMiJ,EAAY4wI,EAAc,CAC7DhsB,GAAkB7tH,CAAI,GACvBquH,GAAcruH,EAAM,SAAU7W,EAAKO,EAAO,CAClCmlI,GAASnlI,CAAK,EACdmwJ,EAAa1wJ,CAAG,EAAIO,EAEfwkI,GAASxkI,CAAK,EACnBuf,EAAW9f,CAAG,EAAIO,EAEb4rI,GAAO,IACZrsH,EAAW9f,CAAG,EAAIosI,GAAS,EAAC4f,EAAc,EAA0BzrJ,CAAK,EAEzF,CAAS,CAET,CACA,SAASgnK,GAA2CznJ,EAAY0nJ,EAAsB,CAC7E9iC,GAAkB5kH,CAAU,GAC7BolH,GAAcplH,EAAY,SAAU9f,EAAKO,EAAO,CAC5Cuf,EAAW9f,CAAG,EAAIO,GAASinK,CACvC,CAAS,CAET,CAEA,SAASC,GAAgBx3B,EAAQy3B,EAAc5gB,EAAejwI,EAAM,CAChE,IAAI2rJ,EAAW,IAAIzO,GAAS9jB,EAAQp5H,EAAM6wJ,CAAY,EACtDrB,GAAY7D,EAAU,aAAc1b,EAAcsE,EAAU,CAAC,GACxDtE,EAAcof,EAAW,GAAK,IAAI,YACnC1D,EAAS,KAAO38B,GAAYihB,EAAcof,EAAW,EAAE,SAAS,GAEpE1D,EAAS,KAAO1b,EAAc,KAC9B,IAAI6gB,EAAe7gB,EAAc,KAAK,QAAQ,KAAM,EAAE,EACtD,OAAA0b,EAAS7jC,EAA6B,EAAG6jC,EAAS7jC,EAA6B,EAAC,QAAQ,MAAOgpC,CAAY,EAE3GrB,IAAwBr2B,EAAQ6W,EAAe0b,CAAQ,EAEvD1b,EAAcyc,EAA6B,EAAGzc,EAAcyc,EAAS,GAAwB,GACtF76B,GAAe85B,CAAQ,CAClC,CACA,SAASoF,GAAoB33B,EAAQ6W,EAAe,CAC5CpiB,GAAkBoiB,EAAcof,EAAW,CAAC,GAC5Ch2B,GAAeD,EAAQ,EAAmC,GAAuD,wCAAwC,CAEjK,CACO,IAAIo3B,IAAkB,CACzB,QAAS,OACb,EACO,SAASQ,IAA0B53B,EAAQ6W,EAAe0gB,EAAsB,CACnFI,GAAoB33B,EAAQ6W,CAAa,EACzC,IAAIghB,EAAqBhhB,EAAcof,EAAW,EAAE5Z,EAAiB,GAAgC,GACjGiN,EAAmBzS,EAAcof,EAAW,EAAEC,EAAa,GAAK,GACpEmB,GAA6BxgB,EAAc2c,EAA6B,EAAElK,EAAkBuO,CAAkB,EACzGpjC,GAAkB8iC,CAAoB,GACvCD,GAA2ChO,EAAkBiO,CAAoB,EAErF,IAAI/kL,EAAKqkK,EAAcof,EAAW,EAClC,GAAIxhC,GAAkBjiJ,CAAE,EACpB,OAAA0tJ,GAAeF,EAAQ,mCAAmC,EACnD,KAEX,IAAI9kD,EAAS1oG,EAAG0jL,EAAa,GAAK1jL,EAAG0jL,EAAa,EAAE7a,EAAU,EAAI7oK,EAAG0jL,EAAa,EAAE7a,EAAU,EAAI,MAC9Fyc,EAAgB,IAAIlQ,GAAqB5nB,EAAQxtJ,EAAG,GAAIA,EAAG,OAAQA,EAAGk8I,EAAS,EAAsBl8I,EAAG6gL,IAAsC7gL,EAAG,QAASA,EAAG,aAAc0oG,EAAQ1oG,EAAG,KAAMA,EAAG,mBAAoB82K,EAAkBuO,CAAkB,EACvPjxJ,EAAO,IAAI0hJ,GAAKV,GAAqB6C,EAAc,EAA0BqN,CAAa,EAC9F,OAAON,GAAgBx3B,EAAQ4nB,GAAqB8C,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC3H,CACO,SAASmxJ,GAAqB/3B,EAAQ6W,EAAe0gB,EAAsB,CAC9EI,GAAoB33B,EAAQ6W,CAAa,EACzC,IAAIyS,EAAmB,GACnBuO,EAAqB,GACrBhhB,EAAcmf,EAAW,IAAMjS,GAAM0G,EAAc,IACnDnB,EAAiB,eAAoBzS,EAAcmf,EAAW,GAE9Dnf,EAAcmf,EAAW,IAAMjS,GAAM0G,EAAc,GACnDnB,EAAmBzS,EAAcof,EAAW,EAAEC,EAAa,GAAK,GAChE2B,EAAqBhhB,EAAcof,EAAW,EAAE5Z,EAAiB,GAAgC,IAG7FxF,EAAcof,EAAW,GACzBoB,GAA6BxgB,EAAcof,EAAW,EAAG3M,EAAkBuO,CAAkB,EAIrGR,GAA6BxgB,EAAc2c,EAA6B,EAAElK,EAAkBuO,CAAkB,EACzGpjC,GAAkB8iC,CAAoB,GACvCD,GAA2ChO,EAAkBiO,CAAoB,EAErF,IAAIj4J,EAAYu3I,EAAcof,EAAW,EAAEvnC,EAAS,EAChDspC,EAAY,IAAIjU,GAAM/jB,EAAQ1gI,EAAWgqJ,EAAkBuO,CAAkB,EAC7EjxJ,EAAO,IAAI0hJ,GAAKvE,GAAM0G,EAAc,EAA0BuN,CAAS,EAC3E,OAAOR,GAAgBx3B,EAAQ+jB,GAAM2G,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC5G,CACO,SAASqxJ,IAAyBj4B,EAAQ6W,EAAe0gB,EAAsB,CAClFI,GAAoB33B,EAAQ6W,CAAa,EAEzC,IAAIghB,EAAqBhhB,EAAcof,EAAW,EAAE5Z,EAAiB,GAAgC,GACjGiN,EAAmBzS,EAAcof,EAAW,EAAEC,EAAa,GAAK,GACpEmB,GAA6BxgB,EAAc2c,EAA6B,EAAElK,EAAkBuO,CAAkB,EACzGpjC,GAAkB8iC,CAAoB,GACvCD,GAA2ChO,EAAkBiO,CAAoB,EAErF,IAAI/kL,EAAKqkK,EAAcof,EAAW,EAC9BiC,EAAS1R,GAAU,oBAAoBxmB,EAAQxtJ,EAAI82K,EAAkBuO,CAAkB,EACvFjxJ,EAAO,IAAI0hJ,GAAK9B,GAAUiE,EAAc,EAA0ByN,CAAM,EAC5E,OAAOV,GAAgBx3B,EAAQwmB,GAAUkE,EAAkB,EAA8B7T,EAAejwI,CAAI,CAChH,CACO,SAASuxJ,IAAsBn4B,EAAQ6W,EAAe0gB,EAAsB,CAC/EI,GAAoB33B,EAAQ6W,CAAa,EACzC,IAAIuhB,EAAWvhB,EAAcof,EAAW,EACpC3zJ,EAAQ81J,EAASlC,EAAa,GAAK,GACnCzV,EAAe2X,EAAS/b,EAAiB,GAAgC,GAC7Egb,GAA6BxgB,EAAc2c,EAA6B,EAAElxJ,EAAOm+I,CAAY,EACxFhsB,GAAkB8iC,CAAoB,GACvCD,GAA2Ch1J,EAAOi1J,CAAoB,EAE1E,IAAIc,EAAiB,IAAI9Q,GAAOvnB,EAAQo4B,EAAS1pC,EAA6B,EAAE0pC,EAAS,QAASA,EAAS,YAAaA,EAAS,IAAKA,EAAS,IAAKA,EAAS,OAAQ91J,EAAOm+I,CAAY,EACpL75I,EAAO,IAAI0hJ,GAAKf,GAAOkD,EAAc,EAA0B4N,CAAc,EACjF,OAAOb,GAAgBx3B,EAAQunB,GAAOmD,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC7G,CACO,SAAS0xJ,IAAwBt4B,EAAQ6W,EAAe0gB,EAAsB,CACjFI,GAAoB33B,EAAQ6W,CAAa,EAEzC,IAAI/5I,EACAs7J,EAAWvhB,EAAcof,EAAW,EACpC,CAACxhC,GAAkB2jC,CAAQ,GAC3B,CAAC3jC,GAAkB2jC,EAASlC,EAAa,CAAC,GAC1C,CAACzhC,GAAkB2jC,EAASlC,EAAa,EAAE7C,EAAY,CAAC,GACxDv2J,EAAWs7J,EAASlC,EAAa,EAAE7C,EAAY,EAC/C,OAAO+E,EAASlC,EAAa,EAAE7C,EAAY,GAEtC,CAAC5+B,GAAkBoiB,EAAc2c,GAA6B,GACnE,CAAC/+B,GAAkBoiB,EAAc2c,EAAS,EAAqBH,EAAY,CAAC,IAC5Ev2J,EAAW+5I,EAAc2c,EAA6B,EAACH,EAAY,EACnE,OAAOxc,EAAc2c,IAA8BH,EAAY,GAEnE,IAAI7gL,EAAKqkK,EAAcof,EAAW,EAE9BsC,IACE1hB,EAAc,KAAO,CAAE,GAAE,OAAS,IAAIhlB,MACxC0mC,EAAmB1hB,EAAc,IAAI,MAAMhlB,EAAa,GAE5D,IAAI9+I,EAAKP,EAAG,IAAM+lL,EACdxiK,EAAOvjB,EAAGk8I,IACV7qG,EAAMrxC,EAAG,IACTq9B,EAAar9B,EAAG0jL,EAAa,GAAK,GAClCzV,EAAejuK,EAAG6pK,EAAiB,GAAgC,GAcvE,GAZK5nB,GAAkBjiJ,EAAG,MAAM,IAC5Bq9B,EAAW,OAAYr9B,EAAG,QAGzBiiJ,GAAkBjiJ,EAAG,QAAQ,IAC9Bq9B,EAAW,SAAcr9B,EAAG,UAG3BiiJ,GAAkBjiJ,EAAG,UAAU,IAChCq9B,EAAW,WAAgBr9B,EAAG,WAAWopK,EAAsC,KAG/E,CAACnnB,GAAkBjiJ,EAAG0jL,EAAa,CAAC,EAAG,CACvC,IAAIsC,EAAWhmL,EAAG0jL,EAAa,EAC/BjhC,GAAcujC,EAAU,SAAUzoK,EAAKO,EAAO,CAC1Cuf,EAAW9f,CAAG,EAAIO,CAC9B,CAAS,CACJ,CACD+mK,GAA6BxgB,EAAc2c,EAA6B,EAAE3jJ,EAAY4wI,CAAY,EAC7FhsB,GAAkB8iC,CAAoB,GACvCD,GAA2CznJ,EAAY0nJ,CAAoB,EAE/E,IAAIkB,EAAe,IAAI/Q,GAAS1nB,EAAQjqI,EAAM8tB,EAAK/mB,EAAU+S,EAAY4wI,EAAc1tK,CAAE,EACrF6zB,EAAO,IAAI0hJ,GAAKZ,GAAS+C,EAAc,EAA0BgO,CAAY,EACjF,OAAOjB,GAAgBx3B,EAAQ0nB,GAASgD,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC/G,CACO,SAAS8xJ,IAAmC14B,EAAQ6W,EAAe0gB,EAAsB,CAC5FI,GAAoB33B,EAAQ6W,CAAa,EACzC,IAAIrkK,EAAKqkK,EAAcof,EAAW,EAC9BlgK,EAAOvjB,EAAGk8I,IACV7qG,EAAMrxC,EAAG,KAAOA,EAAG,IACnBq9B,EAAar9B,EAAG0jL,EAAa,GAAK,GAClCzV,EAAejuK,EAAG6pK,EAAiB,GAAgC,GACvEgb,GAA6BxgB,EAAc2c,EAA6B,EAAE3jJ,EAAY4wI,CAAY,EAC7FhsB,GAAkB8iC,CAAoB,GACvCD,GAA2CznJ,EAAY0nJ,CAAoB,EAE/E,IAAIa,EAAW,IAAIjQ,GAAoBnoB,EAAQjqI,EAAM8tB,EAAK,OAAWhU,EAAY4wI,EAAcjuK,CAAE,EAC7Fo0B,EAAO,IAAI0hJ,GAAKH,GAAoBsC,EAAc,EAA0B2N,CAAQ,EACxF,OAAOZ,GAAgBx3B,EAAQmoB,GAAoBuC,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC1H,CACO,SAAS+xJ,IAAqB34B,EAAQ6W,EAAe0gB,EAAsB,CAC9EI,GAAoB33B,EAAQ6W,CAAa,EACzC,IAAI10I,EAAU00I,EAAcof,EAAW,EAAE,QACrCxP,EAAgB5P,EAAcof,EAAW,EAAE,cAC3C3zJ,EAAQu0I,EAAcof,EAAW,EAAEC,EAAa,GAAK,GACrDzV,EAAe5J,EAAcof,EAAW,EAAE5Z,EAAiB,GAAgC,GAC/Fgb,GAA6BxgB,EAAc2c,EAA6B,EAAElxJ,EAAOm+I,CAAY,EACxFhsB,GAAkB8iC,CAAoB,GACvCD,GAA2Ch1J,EAAOi1J,CAAoB,EAE1E,IAAIa,EAAW,IAAIlQ,GAAMloB,EAAQ79H,EAASskJ,EAAenkJ,EAAOm+I,CAAY,EACxE75I,EAAO,IAAI0hJ,GAAKJ,GAAMuC,EAAc,EAA0B2N,CAAQ,EAC1E,OAAOZ,GAAgBx3B,EAAQkoB,GAAMwC,EAAkB,EAA8B7T,EAAejwI,CAAI,CAC5G,CCtSA,SAASgyJ,GAAe9oK,EAAQ43I,EAAc,CAC1CsB,GAASl5I,EAAQ,KAAM,KAAM43I,CAAY,CAC7C,CAKO,SAASmxB,IAAsBC,EAAoB,CACtD,IAAIhY,EAAYpgJ,KACZwtJ,EAAavyB,KACbo9B,EAAe,GACfC,EAAgB,GAChB9iB,EAAgBxN,GAAkBxF,GAAsB,iBAAiB,EAAG41B,CAAkB,EAClG,GAAI,CAIA,GAHIG,EAAcx8J,GAAS,CAAE,IACzBs8J,EAAe,IAEfjY,EAAW,CAEX,IAAIhxJ,EAASgxJ,EAAU,MAAQA,EAC3BhxJ,EAAO,UACHmpK,EAAcnpK,CAAM,IACpBipK,EAAe,GAG1B,CACGA,GAEI7K,GAAc,CAACz5B,GAAkBy5B,EAAWuF,EAAkC,KAC9EuF,EAAgB9K,EAAWuF,IAGtC,MACS,CAENsF,EAAe,EAClB,CACD,SAASE,EAAcnpK,EAAQ,CAC3B,IAAI+lB,EAAU,GACd,OAAI/lB,IACA+lB,EAAUizH,GAAQh5I,EAAQ,SAAUopK,EAAYhjB,CAAa,EACzDrgI,GACAizH,GAAQh5I,EAAQ,UAAWqpK,EAAajjB,CAAa,GAGtDrgI,CACV,CACD,SAASqjJ,GAAa,CAClBF,EAAgB,EACnB,CACD,SAASG,GAAc,CACnBH,EAAgB,EACnB,CACD,SAASI,GAAY,CACjB,IAAIxoK,EAAS,GACb,OAAImoK,EACAnoK,EAASooK,EAEJ9K,GAAc,CAACz5B,GAAkBy5B,EAAWuF,EAAkC,KACnF7iK,EAASs9J,EAAWuF,KAEjB7iK,CACV,CACD,SAASyoK,GAAU,CACf,IAAIn8J,EAAMT,KACV,GAAIS,GAAO67J,EAAc,CAErB,GADAH,GAAe17J,EAAKg5I,CAAa,EAC7B4K,EAAW,CAEX,IAAIhxJ,EAASgxJ,EAAU,MAAQA,EAC1BtsB,GAAY1kI,EAAO,QAAQ,GAC5B8oK,GAAe9oK,EAAQomJ,CAAa,CAE3C,CACD6iB,EAAe,EAClB,CACJ,CACD,MAAO,CACH,SAAUK,EACV,YAAa,UAAY,CAAE,OAAOL,CAAe,EACjD,OAAQM,CAChB,CACA,CC/EA,IAAIC,GAAgC,UAAY,CAC5C,SAASA,EAAet5B,EAAQxtI,EAAQ,CACpC,IAAI+mK,EAAU,GACVC,EAAyB,GAC7B,KAAK,KAAO,UAAY,CACpB,OAAOD,CACnB,EACQ,KAAK,KAAO,SAAUlxI,EAAQ,CAC1B,OAAAkxI,EAAUlxI,EACHkxI,CACnB,EACQxsC,GAAausC,EAAgB,KAAM,SAAU56B,EAAO,CAChDA,EAAMg1B,IAAsC,SAAU9vC,EAAS,CAC3D,GAAI8a,EAAMod,EAAU,EAAuB,GAAItpJ,EAAO,iBAAgB,EAAI,CAEjEgnK,IACDv5B,GAAeD,EAAQ,EAAkC,IAAyD,0CAA4CtB,EAAMod,EAAU,IAAyB,EAAI,EAC3M0d,EAAyB,IAE7B,MACH,CACDD,EAAQ1qC,IAA8BjL,CAAO,CAC7D,EACY8a,EAAMod,EAAU,EAAwB,UAAY,CAChD,OAAOyd,EAAQrqC,GAC/B,EACYwP,EAAM,KAAO,UAAY,CAErB,QADIv7G,EAAOo2I,EAAQrqC,IACVvE,EAAK,EAAGA,EAAK4uC,EAAQrqC,EAAW,EAAwBvE,IAC7DxnG,GAAQo2I,EAAQ5uC,CAAE,EAAEuE,EAAW,EAEnC,OAAK18H,EAAOmhK,EAA0B,MAClCxwI,GAAQ,GAELA,CACvB,EACYu7G,EAAMk1B,EAAU,EAAwB,UAAY,CAChD2F,EAAU,GACVC,EAAyB,EACzC,EACY96B,EAAM,SAAW,UAAY,CACzB,OAAO66B,EAAQ,MAAM,CAAC,CACtC,EACY76B,EAAMm1B,IAAmD,SAAUjwC,EAAS,CACxE,GAAIA,GAAWA,EAAQsL,EAAW,EAAyB,EAAG,CAC1D,IAAIuqC,EAAQjnK,EAAOmhK,IAAiE,EAChF/vC,EAAQ,KAAK;AAAA,CAAI,EACjB,IAAMA,EAAQ,KAAK,GAAG,EAAI,IAC9B,OAAO61C,CACV,CACD,OAAO,IACvB,CACA,CAAS,CACJ,CAUD,OAAAH,EAAe,QAAQ,EAEhBA,CACX,EAAC,EAIGI,IAAiC,SAAU92J,EAAQ,CACnDtT,GAAUoqK,EAAiB92J,CAAM,EACjC,SAAS82J,EAAgB15B,EAAQxtI,EAAQ,CACrC,IAAIW,EAAQyP,EAAO,KAAK,KAAMo9H,EAAQxtI,CAAM,GAAK,KACjD,OAAAu6H,GAAa2sC,EAAiBvmK,EAAO,SAAUurI,EAAOiV,EAAO,CACzDjV,EAAMo1B,IAA8C,SAAUlwC,EAAS,CACnE+vB,EAAMigB,EAAU,GAChC,EACYl1B,EAAMq1B,IAA2C,SAAUnwC,EAAS,CAEhF,CACA,CAAS,EACMzwH,CACV,CAMD,OAAAumK,EAAgB,QAAQ,EAEjBA,CACX,EAAEJ,EAAc,EAKZK,IAA0C,SAAU/2J,EAAQ,CAC5DtT,GAAUqqK,EAA0B/2J,CAAM,EAC1C,SAAS+2J,EAAyB35B,EAAQxtI,EAAQ,CAC9C,IAAIW,EAAQyP,EAAO,KAAK,KAAMo9H,EAAQxtI,CAAM,GAAK,KAC7CgnK,EAAyB,GAC7B,OAAAzsC,GAAa4sC,EAA0BxmK,EAAO,SAAUurI,EAAOiV,EAAO,CAClE,IAAIimB,EAAcC,EAAWF,EAAyB3F,EAA2C,GAC7F8F,EAAoBD,EAAWF,EAAyB1F,EAAsD,GAC9G5rI,EAASq2G,EAAM,KAAKk7B,EAAY,OAAOE,CAAiB,CAAC,EAEzDzxI,EAAO6mG,EAAW,EAAyByqC,EAAyBzF,EAAuB,IAC3F7rI,EAAO6mG,EAAW,EAAyByqC,EAAyBzF,EAAuB,GAE/F6F,EAAWJ,EAAyB1F,EAAsD,EAAE,CAAE,GAC9F8F,EAAWJ,EAAyB3F,EAA2C,EAAE3rI,CAAM,EACvFq2G,EAAMg1B,IAAsC,SAAU9vC,EAAS,CAC3D,GAAI8a,EAAMod,EAAU,EAAuB,GAAI6d,EAAyBzF,EAAuB,EAAiC,CAEvHsF,IACDv5B,GAAeD,EAAQ,EAAkC,GAAuD,gCAAkCtB,EAAMod,EAAU,IAAyB,EAAI,EAC/L0d,EAAyB,IAE7B,MACH,CACD7lB,EAAM+f,IAAoC9vC,CAAO,EACjDm2C,EAAWJ,EAAyB3F,EAAiB,EAA4Bt1B,EAAM,KAAM,EAC7G,EACYA,EAAMk1B,EAAU,EAAwB,UAAY,CAChDjgB,EAAMigB,EAAU,IAChBmG,EAAWJ,EAAyB3F,EAAiB,EAA4Bt1B,EAAM,KAAM,GAC7Fq7B,EAAWJ,EAAyB1F,EAAsD,EAAE,CAAE,GAC9FuF,EAAyB,EACzC,EACY96B,EAAMo1B,IAA8C,SAAUlwC,EAAS,CACnEm2C,EAAWJ,EAAyB3F,EAA2C,EAAEt1B,EAAM,KAAKs7B,EAA0Bp2C,EAAS8a,EAAM,KAAM,EAAC,CAAC,EAC7I,IAAIu7B,EAAeJ,EAAWF,EAAyB1F,EAAsD,GACzGgG,aAAwB,OAASr2C,aAAmB,QACpDq2C,EAAeA,EAAa,OAAOr2C,CAAO,EACtCq2C,EAAa/qC,EAAW,EAAyByqC,EAAyBzF,EAAuB,IAGjGj0B,GAAeD,EAAQ,EAAmC,GAAuD,yCAA2Ci6B,EAAa/qC,IAAmC,EAAI,EAChN+qC,EAAa/qC,EAAW,EAAyByqC,EAAyBzF,EAAuB,GAErG6F,EAAWJ,EAAyB1F,EAAsD,EAAEgG,CAAY,EAE5H,EACYv7B,EAAMq1B,IAA2C,SAAUnwC,EAAS,CAChE,IAAIq2C,EAAeJ,EAAWF,EAAyB1F,EAAsD,GAC7GgG,EAAeD,EAA0Bp2C,EAASq2C,CAAY,EAC9DF,EAAWJ,EAAyB1F,EAAsD,EAAEgG,CAAY,CACxH,EACY,SAASD,EAA0BE,EAAU7xI,EAAQ,CACjD,IAAIk7D,EAAY,GAChB,OAAA0yC,GAAW5tG,EAAQ,SAAU/3B,EAAO,CAC5B,CAACskI,GAAWtkI,CAAK,GAAK4lI,GAAWgkC,EAAU5pK,CAAK,IAAM,IACtDizF,EAAUsrC,IAA8Bv+H,CAAK,CAErE,CAAiB,EACMizF,CACV,CACD,SAASs2E,EAAW9pK,EAAK,CACrB,IAAIoqK,EAAcpqK,EAClB,GAAI,CACAoqK,EAAc3nK,EAAO83J,KAA8C93J,EAAO83J,EAA0C,IAAK93J,EAAO83J,EAAgB,EAA4B,EAAG,IAAM6P,EAAcA,EACnM,IAAIC,EAAahb,GAAqBpf,EAAQm6B,CAAW,EACzD,GAAIC,EAAY,CACZ,IAAIC,EAAWl+B,GAAO,EAAG,MAAMi+B,CAAU,EAKzC,GAJItlC,GAASulC,CAAQ,IAEjBA,EAAWl+B,GAAO,EAAG,MAAMk+B,CAAQ,GAEnCA,GAAY7lJ,GAAQ6lJ,CAAQ,EAC5B,OAAOA,CAEd,CACJ,OACM3zL,EAAG,CACNu5J,GAAeD,EAAQ,EAAmC,GAA2D,iBAAmBm6B,EAAc,KAAOhjC,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC9M,CACD,MAAO,EACV,CACD,SAASqzL,EAAWhqK,EAAKs4B,EAAQ,CAC7B,IAAI8xI,EAAcpqK,EAClB,GAAI,CACAoqK,EAAc3nK,EAAO83J,KAA8C93J,EAAO83J,EAA0C,IAAK93J,EAAO83J,EAAgB,EAA4B,EAAG,IAAM6P,EAAcA,EACnM,IAAIC,EAAa,KAAKre,EAAuC,EAAC1zH,CAAM,EACpEg3H,GAAqBrf,EAAQm6B,EAAaC,CAAU,CACvD,OACM1zL,EAAG,CAGN24K,GAAqBrf,EAAQm6B,EAAa,KAAKpe,EAAuC,EAAC,CAAE,EAAC,EAC1F9b,GAAeD,EAAQ,EAAkC,GAAuD,iBAAmBm6B,EAAc,KAAOhjC,GAAiBzwJ,CAAC,EAAI,mBAAoB,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAC,CAAE,CAC9N,CACJ,CACb,CAAS,EACMysB,CACV,CAKD,OAAAwmK,EAAyB,WAAa,YACtCA,EAAyB,gBAAkB,gBAE3CA,EAAyB,gBAAkB,IACpCA,CACX,EAAEL,EAAc,EC/MZgB,IAA4B,UAAY,CACxC,SAASA,EAAWt6B,EAAQ,CACxBjT,GAAautC,EAAY,KAAM,SAAU57B,EAAO,CAI5CA,EAAM,UAAY,SAAU3xH,EAAO,CAC/B,IAAIosE,EAASohF,EAAiBxtJ,EAAO,MAAM,EAC3C,GAAI,CACA,OAAOovH,GAAS,EAAC4f,EAAuC,EAAC5iE,CAAM,CAClE,OACMzyG,EAAG,CAENu5J,GAAeD,EAAQ,EAAmC,GAAqDt5J,GAAKkuJ,GAAWluJ,EAAEk1K,EAAc,CAAwB,EAAKl1K,EAAEk1K,EAAsC,IAAK,2BAA4B,KAAM,EAAI,CAClQ,CACjB,EACY,SAAS2e,EAAiB7oJ,EAAQ3b,EAAM,CACpC,IAAIykK,EAAyB,uBACzBrhF,EAAS,GACb,GAAI,CAACznE,EACD,OAAAuuH,GAAeD,EAAQ,EAAmC,GAAoD,0DAA2D,CAAE,KAAMjqI,GAAQ,EAAI,EACtLojF,EAEX,GAAIznE,EAAO8oJ,CAAsB,EAC7B,OAAAv6B,GAAeD,EAAQ,EAAkC,GAAwD,uDAAwD,CAAE,KAAMjqI,GAAQ,EAAI,EACtLojF,EAEX,GAAI,CAACznE,EAAO,eAAgB,CAExB,GAAI3b,IAAS,eACTojF,EAASshF,EAAoB/oJ,EAAQ,SAAU3b,CAAI,UAE9CA,IAAS,aACdojF,EAASshF,EAAoB/oJ,EAAQ,SAAU3b,CAAI,UAE9CA,IAAS,OACdojF,EAASshF,EAAoB/oJ,EAAQ,SAAU3b,CAAI,UAE9Cye,GAAQ9C,CAAM,EACnBynE,EAASuhF,EAAgBhpJ,EAAQ3b,CAAI,MAEpC,CACDkqI,GAAeD,EAAQ,EAAkC,GAAmE,2EAA4E,CAAE,KAAMjqI,GAAQ,EAAI,EAC5N,GAAI,CAEAomI,KAAU4f,IAAwCrqI,CAAM,EACxDynE,EAASznE,CACZ,OACMhrC,EAAG,CAENu5J,GAAeD,EAAQ,EAAmC,GAAqDt5J,GAAKkuJ,GAAWluJ,EAAEk1K,EAAc,CAAwB,EAAKl1K,EAAEk1K,EAAsC,IAAK,2BAA4B,KAAM,EAAI,CAClQ,CACJ,CACD,OAAOziE,CACV,CACD,OAAAznE,EAAO8oJ,CAAsB,EAAI,GACjCvlC,GAAcvjH,EAAO,eAAgB,SAAUo5D,EAAO6vF,EAAU,CAC5D,IAAIC,EAAchmC,GAAW+lC,CAAQ,EAAMA,EAAQ,EAAK,EAA+BA,EAAW,EAC9FE,EAAYjmC,GAAW+lC,CAAQ,EAAMA,EAAQ,EAAK,EAA6BA,EAAW,EAC1FnmJ,EAAUmmJ,EAAW,EACrBG,EAAYppJ,EAAOo5D,CAAK,IAAM,OAC9BiwF,EAAQpmC,GAASjjH,EAAOo5D,CAAK,CAAC,GAAKp5D,EAAOo5D,CAAK,IAAM,KACzD,GAAI8vF,GAAc,CAACE,GAAa,CAACtmJ,EAC7ByrH,GAAeD,EAAQ,EAAmC,GAAgE,wFAAyF,CAAE,MAAOl1D,EAAO,KAAM/0E,CAAI,CAAE,UAG1O,CAAC8kK,EAAU,CAChB,IAAIvqK,EAAQ,OACRyqK,EACIvmJ,EAEAlkB,EAAQoqK,EAAgBhpJ,EAAOo5D,CAAK,EAAGA,CAAK,EAI5Cx6E,EAAQiqK,EAAiB7oJ,EAAOo5D,CAAK,EAAGA,CAAK,EAKjDx6E,EAAQohB,EAAOo5D,CAAK,EAGpBx6E,IAAU,SACV6oF,EAAOrO,CAAK,EAAIx6E,EAEvB,CACrB,CAAiB,EACD,OAAOohB,EAAO8oJ,CAAsB,EAC7BrhF,CACV,CACD,SAASuhF,EAAgB9oE,EAAS77F,EAAM,CACpC,IAAIojF,EACJ,GAAMyY,EACF,GAAI,CAACp9E,GAAQo9E,CAAO,EAChBquC,GAAeD,EAAQ,EAAmC,GAA6C;AAAA,EAA0F,CAAE,KAAMjqI,GAAQ,EAAI,MAEpN,CACDojF,EAAS,GACT,QAASzpF,EAAI,EAAGA,EAAIkiG,EAAQs9B,EAAW,EAAwBx/H,IAAK,CAChE,IAAIgiB,EAASkgF,EAAQliG,CAAC,EAClB8jB,EAAO+mJ,EAAiB7oJ,EAAQ3b,EAAO,IAAMrG,EAAI,GAAG,EACxDypF,EAAO01C,IAA8Br7G,CAAI,CAC5C,CACJ,CAEL,OAAO2lE,CACV,CACD,SAASshF,EAAoBvuJ,EAAK8uJ,EAAcjlK,EAAM,CAClD,IAAIojF,EACJ,OAAIjtE,IACAitE,EAAS,GACT87C,GAAc/oH,EAAK,SAAU4+D,EAAOx6E,EAAO,CACvC,GAAI0qK,IAAiB,SACb1qK,IAAU,OACV6oF,EAAOrO,CAAK,EAAI,YAEXx6E,IAAU,KACf6oF,EAAOrO,CAAK,EAAI,OAEVx6E,EAAMsrJ,IAIZziE,EAAOrO,CAAK,EAAIx6E,EAAMsrJ,EAAsC,IAH5DziE,EAAOrO,CAAK,EAAI,oDAMfkwF,IAAiB,SACtB,GAAI1qK,IAAU,OACV6oF,EAAOrO,CAAK,EAAI,oBAEXx6E,IAAU,KACf6oF,EAAOrO,CAAK,EAAI,WAEf,CACD,IAAIkrD,EAAM,WAAW1lI,CAAK,EACtB,MAAM0lI,CAAG,EACT78C,EAAOrO,CAAK,EAAI,MAGhBqO,EAAOrO,CAAK,EAAIkrD,CAEvB,MAGD78C,EAAOrO,CAAK,EAAI,kBAAoB/0E,EAAO,uBAC3CkqI,GAAeD,EAAQ,EAAmC7mD,EAAOrO,CAAK,EAAG,KAAM,EAAI,CAE/G,CAAqB,GAEEqO,CACV,CACb,CAAS,CACJ,CAKD,OAAAmhF,EAAW,QAAQ,EAEZA,CACX,IChKIW,IAAmB,EACnBC,IAAwC,UAAY,CACpD,SAASA,GAAyB,CACjC,CACD,OAAAA,EAAuB,UAAU,iBAAmB,SAAUnrK,EAAK,CAC/D,IAAIk5E,EAAQ,KAAK,YAAYl5E,CAAG,EAAImrK,EAAuB,cAC3D,OAAOjyF,EAAQ,GACvB,EACIiyF,EAAuB,UAAU,YAAc,SAAUnuJ,EAAO,CAC5D,GAAIA,IAAU,GACV,MAAO,GAEX,KAAOA,EAAMmiH,EAAiC,EAAG+rC,KAC7CluJ,EAAQA,EAAM,OAAOA,CAAK,EAI9B,QADI83D,EAAO,KACFn1E,EAAI,EAAGA,EAAIqd,EAAMmiH,EAAW,EAAwB,EAAEx/H,EAC3Dm1E,GAASA,GAAQ,GAAKA,EAAQ93D,EAAM,WAAWrd,CAAC,EAGhDm1E,EAAOA,EAAOA,EAElB,OAAO,KAAK,IAAIA,CAAI,CAC5B,EAEIq2F,EAAuB,cAAgB,WAChCA,CACX,IC3BIC,IAAwC,UAAY,CACpD,SAASA,GAAyB,CAC9B,IAAIz8B,EAAQ,KACR08B,EAAoB,IAAIF,IACxBznJ,EAAO,IAAI01I,GACfzqB,EAAMo3B,IAA0D,SAAUtiJ,EAAM,CAC5E,IAAIy1D,EAAQ,EACZ,OAAIz1D,EAAK8/I,KAAiC9/I,EAAK8/I,IAA8B7/I,EAAK,MAAM,EACpFw1D,EAAQmyF,EAAkB,iBAAiB5nJ,EAAK8/I,EAAS,EAAqB7/I,EAAK,MAAM,CAAC,EAErFD,EAAK,KAAOA,EAAK,IAAI,MAAQA,EAAK,IAAI,KAAK,GAChDy1D,EAAQmyF,EAAkBrF,GAAwD,EAACviJ,EAAK,IAAI,KAAK,EAAE,EAE9FA,EAAK8/I,KAAiC9/I,EAAK8/I,IAA8B7/I,EAAK,WAAW,EAC9Fw1D,EAAQmyF,EAAkB,iBAAiB5nJ,EAAK8/I,EAAS,EAAqB7/I,EAAK,WAAW,CAAC,EAE1FD,EAAK,KAAOA,EAAK,IAAI,gBAAkBA,EAAK,IAAI,eAAeq+G,IACpE5oD,EAAQmyF,EAAkB,iBAAiB5nJ,EAAK,IAAI,eAAeq+G,EAAa,CAAuB,EAIvG5oD,EAAS,KAAK,OAAQ,EAAG,IAEtBA,CACnB,CACK,CACD,OAAOkyF,CACX,IC1BIE,IAAwB,UAAY,CACpC,SAASA,EAAOC,EAAYt7B,EAAQ,CAEhC,KAAK,cAAgB,WACrB,IAAI8sB,EAAU9sB,GAAUnB,GAAc,IAAI,GACtCy8B,EAAa,KAAOA,EAAa,KACjCxO,EAAQ,cAAc,EAAkC,GAAmD,8IAA+I,CAAE,aAAcwO,GAAc,EAAI,EAC5RA,EAAa,KAEjB,KAAKrG,EAA0C,EAAGqG,EAClD,KAAK,uBAAyB,IAAIH,GACrC,CAID,OAAAE,EAAO,UAAU,YAAc,SAAU9I,EAAU,CAC/C,IAAIgJ,EAAqB,KAAKtG,IAC1BuG,EAAc,GAClB,OAAID,GAAuB,MAA4CA,GAAsB,KAGpFhJ,EAAS,WAAahL,GAAOkD,EAAc,EAFzC,IAMX+Q,EAAc,KAAK,uBAAuB1F,EAAuB,EAAiCvD,CAAQ,EAAIgJ,EACvGC,EACf,EACWH,CACX,ICnCI3oK,GAWA+oK,IAAiC,KACrC,SAASC,GAAiBC,EAAK,CAC3B,GAAI,CACA,OAAOA,EAAI,YACd,MACS,CAET,CACD,OAAO,IACX,CACA,SAASC,IAAsC,CAC3C,IAAIlpK,EACAkS,EACAi3J,EAEJ,OAAOnpK,EAAK,CACJ,YAAa,UAAY,CAAE,OAAO4oJ,GAA0BC,EAAsB,CACrF,EACD7oJ,EAAGihK,EAA4D,EAAG,UAAY,CAAE,MAAO,EAAQ,EAC/FjhK,EAAGijK,EAAoD,EAAG,UAAY,CAAE,MAAO,KAAQ,EACvFjjK,EAAGyhK,EAA0D,EAAG,UAAY,CAAE,MAAO,OAAS,EAC9FzhK,EAAGqiK,EAAmD,EAAG,UAAY,CAAE,MAAO,EAAQ,EACtFriK,EAAGgiK,EAAiE,EAAG,UAAY,CAAE,MAAO,EAAO,EACnGhiK,EAAG+iK,EAAkD,EAAG,UAAY,CAAE,MAAO,EAAQ,EACrF/iK,EAAG4hK,EAA0D,EAAG,UAAY,CAAE,MAAO,EAAO,EAC5F5hK,EAAGmiK,EAAuC,EAAG,UAAY,CAAE,MAAO,EAAQ,EAC1EniK,EAAGoiK,EAA2D,EAAG,UAAY,CAAE,MAAO,EAAQ,EAC9FpiK,EAAG2hK,EAA4D,EAAG,UAAY,CAAE,MAAO,EAAQ,EAC/F3hK,EAAGs8H,EAAuD,EAAG,UAAY,CAAE,OAAOpqH,CAAe,EACjGlS,EAAG43J,EAAuC,EAAG,UAAY,CAAE,OAAO1lJ,CAAe,EACjFlS,EAAGw3J,EAAuD,EAAG,UAAY,CAAE,MAAO,IAAM,EACxFx3J,EAAGkiK,EAA6C,EAAG,UAAY,CAAE,OAAOiH,CAAuB,EAC/FnpK,EAAGwiK,EAAmD,EAAG,UAAY,CAAE,OAAOtwJ,CAAe,EAC7FlS,EAAG,iBAAmB,UAAY,CAAE,MAAO,IAAQ,EACnDA,CACR,CACA,IAAIopK,KAAuBppK,GAAK,CAAE,EAC9BA,GAAGqxJ,GAAM,QAAQ,EAAIgU,GACrBrlK,GAAGw1J,GAAM,QAAQ,EAAIyQ,IACrBjmK,GAAGg1J,GAAS,QAAQ,EAAI4Q,IACxB5lK,GAAGy1J,GAAoB,QAAQ,EAAIuQ,IACnChmK,GAAG8zJ,GAAU,QAAQ,EAAIyR,IACzBvlK,GAAG60J,GAAO,QAAQ,EAAI4Q,IACtBzlK,GAAGk1J,GAAqB,QAAQ,EAAIgQ,IACpCllK,IACAqpK,IAAwB,SAAUn5J,EAAQ,CAC1CtT,GAAUysK,EAAQn5J,CAAM,EACxB,SAASm5J,GAAS,CACd,IAAI5oK,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjCzP,EAAM,SAAW,KACjBA,EAAM,WAAay2J,GAInBz2J,EAAM,cAAgByoK,KAEtB,IAAII,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAoB,EACpBC,EACAC,EACAC,EACAzmB,EACJ,OAAAnpB,GAAagvC,EAAQ5oK,EAAO,SAAUurI,EAAOiV,EAAO,CAChDd,IACAnU,EAAM,MAAQ,UAAY,CACtBk+B,IACAT,EAAU,EAC1B,EACYz9B,EAAM,OAAS,UAAY,CACnBy9B,IACAA,EAAU,GACVF,EAAW,KAEPv9B,EAAM,QAAQ,KAAI,EAAKA,EAAM,cAAcy1B,EAA0B,KACrEz1B,EAAM01B,EAA4C,EAAC,GAAM,KAAM,EAAE,EAErEyI,IAEpB,EACYn+B,EAAM,MAAQ,SAAU+B,EAASgR,EAAUC,EAAY,CAEnD,GADIjR,IAAY,SAAUA,EAAU,IAChC,CAAC07B,EAAS,CAEVS,IACA,GAAI,CACAl+B,EAAM01B,EAAiB,EAA4B3zB,EAAS,KAAMiR,GAAc,EACnF,OACMhrK,GAAG,CACNu5J,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAmC,GAA0C,kDAAoD8G,GAAiBzwJ,EAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,EAAC,CAAG,EAC/O,CACJ,CACjB,EACYg4J,EAAM,cAAgB,UAAY,CAC9B,GAAI,CAACy9B,EACD,IAAKz9B,EAAM,cAAc21B,EAA0B,EAAuC,IAAK,IAAS31B,EAAM81B,EAAgD,EAACF,EAA0B,EAAqC,IAAK,KAAUv3B,GAAkB,EAC3P,GAAI,CACA2B,EAAM01B,EAA4C,EAAC,GAAM0I,EAAe,CAAC,CAC5E,OACMp2L,EAAG,CACNu5J,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAmC,GAA0D,uFAAyF8G,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EACpS,MAGDg4J,EAAM,MAAK,CAGnC,EACYA,EAAM,UAAY,SAAU3oI,EAAMzF,EAAO,CACrCisK,EAASxmK,CAAI,EAAIzF,CACjC,EACYouI,EAAM,WAAa,SAAUlsI,EAAQssI,EAAMlhD,EAAY4zD,GAAa,CAC5D9S,EAAM,iBACNuB,GAAevB,EAAMrO,EAAoC,IAAI,EAAmC,GAAmD,+BAA+B,EAEtLsjB,EAAM,WAAWnhJ,EAAQssI,EAAMlhD,EAAY4zD,EAAW,EACtD,IAAI/hE,GAAMivD,EAAM,aACZ3mD,GAAa2mD,EAAM,WACvB29B,EAAc,IAAI/B,IAAWx7B,EAAK,MAAM,EACxCk9B,EAAqB,EACrBC,EAAW,KACXC,EAAY,EACZx9B,EAAM61B,EAAmC,EAAG,KAC5C+H,EAA4B,EAC5B,IAAIS,GAAUr+B,EAAMrO,EAAa,IACjC6lB,EAAgBxN,GAAkBxF,GAAsB,QAAQ,EAAGpE,EAAK,cAAgBA,EAAK,aAAY,CAAE,EAC3G69B,EAAmB9D,IAAsB3iB,CAAa,EAEtD,IAAIltC,GAAgB4yD,KACpB3mC,GAAcjsB,GAAe,SAAUl+B,EAAOx6E,EAAO,CACjDouI,EAAM81B,EAAmB,EAA8B1pF,CAAK,EAAI,UAAY,CACxE,IAAIwsD,EAAW7nD,GAAI,UAAUsI,GAAYjN,EAAOx6E,EAAK,CAAE,EACvD,MAAI,CAACgnI,GAAYxsD,IAAU,gBAEvBwsD,EAAWhnI,EAAK,GAEbgnI,CAC/B,CACA,CAAiB,EACDoH,EAAM,QAAWA,EAAM81B,EAAmB,EAA8BE,EAA0B,EAA4C,GAAI5V,GAAyB,EACrK,IAAI6a,IAAyBoD,GAASr+B,EAAM81B,EAAgD,GAAI,IAAIkF,IAAgBqD,GAASr+B,EAAM81B,EAAgD,GACzL91B,EAAM,QAAU,IAAI28B,IAAO38B,EAAM81B,EAAmB,EAA8BtK,EAAwB,IAAsC6S,EAAO,EAClJC,EAA4BxqK,CAAM,GACnCytI,GAAe88B,GAAS,EAAmC,IAAyD,+BAAiCvqK,EAAOw8H,EAAwB,CAAkC,EAEtN,CAAC+yB,GAAsCrjB,EAAM,cAAc,YAAW,CAAE,GAAKA,EAAM,cAAc,cAAe,GAAIA,EAAM,cAAc,cAAa,EAAGxP,EAAiC,EAAG,GAC5L+G,GAAWyI,EAAM81B,EAAmB,EAA8BI,EAAgD,IAAI,SAAUqI,EAAc,CAC1I9pK,EAAM,UAAU8pK,EAAa,OAAQA,EAAa,KAAK,CAC/E,CAAqB,EAEL,IAAIC,GAAex+B,EAAM81B,IACrB2I,GAAe,KACf,CAACD,GAAarI,IAA4C,GAAI13B,GAAiB,EAC/EggC,GAAeC,EAEV,CAACF,GAAarI,IAA4C,GAAIz3B,GAAc,IACjF+/B,GAAeE,GAEf,CAACF,IAAgBngC,OACjBmgC,GAAeG,GAGnBb,EAAkBU,IAAgBE,EAC9B,CAACH,GAAa5I,IAA+D,GAAIv3B,GAAkB,IAEnGogC,GAAeI,GAEnB7+B,EAAM61B,EAAY,EAA0B4I,IAAgBE,EACxD,CAACH,GAAapI,EAA0B,EAAsC,GAAI93B,GAAiB,EAAI,EAEvG0/B,EAAoBc,EAEfzgC,GAAkB,EAEvB2/B,EAAoBa,EAEf,CAACL,GAAarI,IAA4C,GAAI13B,GAAiB,EACpFu/B,EAAoBU,EAEf,CAACF,GAAarI,IAA4C,GAAIz3B,GAAc,EACjFs/B,EAAoBW,EAGpBX,EAAoBD,CAExC,EACY/9B,EAAM,iBAAmB,SAAUmY,EAAevH,EAAS,CACvDA,EAAU5Q,EAAM,WAAW4Q,CAAO,EAClC,IAAImuB,EAAanuB,EAAQjf,EAAa,IACtC,GAAI,CAEA,GAAIqO,EAAM81B,IAAiDO,EAAsD,IAE7G,OAGJ,GAAI,CAACle,EAAe,CAChB5W,GAAew9B,EAAY,EAAmC,EAAsD,6BAA6B,EACjJ,MACH,CAED,GAAI5mB,EAAc,UAAY,CAACA,EAAcme,EAAc,EAA0B,CACjF/0B,GAAew9B,EAAY,EAAmC,GAA2C,qDAAqD,EAC9J,MACH,CAMD,GALK5mB,EAAcme,MAEfne,EAAcme,EAAsC,EAAG,aAGvD,CAACt2B,EAAM61B,IAAqC,CAC5Ct0B,GAAew9B,EAAY,EAAmC,GAAmD,4BAA4B,EAC7I,MACH,CAED,GAAKC,EAAa7mB,CAAa,EAM3BA,EAAcsE,EAAU,EAAIzc,EAAM,QAAQu2B,EAAgB,MAN5B,CAE9Bh1B,GAAew9B,EAAY,EAAkC,GAAyD,8CAA+C,CAAE,WAAY/+B,EAAM,QAAQu2B,EAAgB,CAA4B,GAC7O,MACH,CAID,IAAI0I,GAAmBj/B,EAAM81B,EAAgD,EAACU,EAAsB,EAAkC,GAAI,OAGtI0I,GAAsB/mB,EAAc,MAAQnY,EAAM81B,EAAgD,EAACxlC,EAAwB,IAC3H6uC,GAAe9B,EAAO,kBAAkBllB,EAAe+mB,GAAqBH,EAAYE,EAAgB,EAC5G,GAAI,CAACE,GAAc,CACf59B,GAAew9B,EAAY,EAAmC,GAAkD,0CAA0C,EAC1J,MACH,CACD,IAAIK,GAAkB,GAkBtB,GAhBIjnB,EAAcyc,EAA6B,GAAIzc,EAAcyc,EAAS,EAAqBlY,EAAa,IACxGnlB,GAAW4gB,EAAcyc,EAAS,EAAqBlY,EAAa,EAAG,SAAU3J,EAAU,CACvF,GAAI,CACIA,GAAYA,EAASosB,EAAY,IAAM,KACvCC,GAAkB,GAClB59B,GAAeu9B,EAAY,yCAAyC,EAE3E,OACM/2L,EAAG,CAGNu5J,GAAew9B,EAAY,EAAmC,GAAyD,0EAA4EtmC,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAAE,EAAI,CAC1P,CAC7B,CAAyB,EACD,OAAOmwK,EAAcyc,IAA8BlY,EAAa,GAEhE0iB,GACA,OAGJ,IAAIl6C,GAAUy4C,EAAY,UAAUwB,EAAY,EAE5Cx1I,GAASq2G,EAAM+1B,IACfsJ,GAAa11I,GAAO,OACnB01I,GAAan6C,GAAQsL,EAAW,EAA0BwP,EAAM81B,EAAmB,EAA8BL,EAA0B,KAC5Iz1B,EAAM01B,EAA4C,EAAC,GAAM,KAAM,EAAE,EAGrE/rI,GAAOqrI,IAAoC9vC,EAAO,EAElDi5C,GACH,OACMn2L,EAAG,CACNu5J,GAAew9B,EAAY,EAAkC,GAA4D,gFAAkFtmC,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAG,EAC5P,CAEDg4J,EAAM,YAAYmY,EAAevH,CAAO,CACxD,EAIY5Q,EAAMy2B,GAA8D,EAAG,SAAUwG,EAAK/3C,EAASo6C,EAAuB,CAC9GrC,EAAI,aAAe,GACnBsC,EAAoBtC,EAAI,OAAQ/3C,EAAS+3C,EAAI,YAAaqC,EAAuBE,EAAuBvC,CAAG,EAAGD,GAAiBC,CAAG,GAAKA,EAAI,QAAQ,CAEvK,EAMYj9B,EAAM01B,EAA4C,EAAG,SAAUn+H,EAAOkoI,EAAczsB,EAAY,CAE5F,GADIz7G,IAAU,SAAUA,EAAQ,IAC5B,CAACkmI,EACD,GAAI,CACA,IAAI9zI,GAASq2G,EAAM+1B,IAEnB,GAAK/1B,EAAM81B,IAAiDO,EAAsD,IAgB9G1sI,GAAOurI,EAAU,QAhBiG,CAClH,GAAIvrI,GAAOyzH,IAAiC,EAAG,EAAG,CAC9C,IAAIl4B,GAAUv7F,GAAO,WACrB+1I,EAAmB1sB,GAAc,EAAqCz7G,CAAK,EAEvEkoI,EACAA,EAAa,KAAKhrK,EAAOywH,GAAS3tF,CAAK,EAGvCyoG,EAAM61B,EAAY,EAAwB3wC,GAAS3tF,CAAK,CAE/D,CAEDimI,EAAY,CAAC,IAAI,IACpB,CAIDU,GACH,OACMl2L,GAAG,CAEN,IAAI23L,GAAQ7hC,MACR,CAAC6hC,IAASA,GAAQ,IAClBp+B,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAmC,GAAiD,+DAAiE8G,GAAiBzwJ,EAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,EAAC,CAAG,EAEvQ,CAErB,EACYg4J,EAAM,YAAc,SAAUoR,EAAWvB,EAAa,CAClD7P,EAAM,cAAa,EACnBi+B,EAAiB,OAAM,EACvB9pB,GAChB,EAIYnU,EAAM02B,EAAsC,EAAG,SAAUxxC,EAASzhH,EAASjC,EAAO,CAC9E+/H,GAAevB,EAAMrO,EAAoC,IAAI,EAAkC,GAAsC,4BAA6B,CAAE,QAASluH,CAAO,CAAE,EACtLu8H,EAAM,QAAQq1B,EAAwC,EAACnwC,CAAO,CAC9E,EAIY8a,EAAM22B,EAAwB,EAAoC,SAAUzxC,EAASvgH,EAAS,CAK1F,QAJIi7J,EAAS,GACTC,GAAQ,GAERvvF,GAAS3rE,EAAQ,OAAO,QAAO,EAC1B9O,GAAK,EAAGiqK,GAAWxvF,GAAQz6E,GAAKiqK,GAAS,OAAQjqK,KAAM,CAC5D,IAAIjD,GAAQktK,GAASjqK,EAAE,EACnBk8G,GAAYmT,EAAQ,OAAOtyH,GAAM,MAAO,CAAC,EAAE,CAAC,EAC5CmtK,EAAantK,GAAM,UAAU,EAC7BitK,GAAM1vC,IAA8Bpe,EAAS,EAI7C6tD,EAAOzvC,IAA8Bpe,EAAS,CAErD,CACGmT,EAAQsL,EAAiC,EAAG,GAC5CwP,EAAM42B,EAAgB,EAA2B1xC,EAASvgH,EAAQkyJ,EAAgD,GAElH+I,EAAOpvC,EAAiC,EAAG,GAC3CwP,EAAM02B,EAAc,EAAyBkJ,EAAQJ,EAAuB,KAAM,CAAC,kBAAmB76J,EAAQkyJ,EAAmB,EAA+B,KAAMlyJ,EAAQ,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,EAEvMk7J,GAAMrvC,EAAiC,EAAG,IAC1CwvC,EAAeH,EAAK,EACpBt+B,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAkC,GAAiD,+BAC5HzM,EAAQsL,EAAW,EAAyB,aAAeovC,EAAOpvC,EAAiC,EACnH,wBAA0BqvC,GAAMrvC,IAAoC,WAAa7rH,EAAQmyJ,GAAmB,EAAgC,QAAQ,EAE5K,EAIY92B,EAAM42B,EAAgB,EAA6B,SAAU1xC,EAASo6C,EAAuB,CACzFt/B,EAAM,QAAQq1B,EAAwC,EAACnwC,CAAO,CAC9E,EAIY8a,EAAM,WAAa,SAAUigC,EAAK/6C,EAAS,CACvC,IAAIg7C,EAAelD,GAAiBiD,CAAG,EACvC,GAAIA,IAAQC,EAAe,IAAO,OAASA,IAAiB,IACxD5C,EAAqB,EACrBt9B,EAAM42B,EAAgB,EAA2B1xC,EAAS,CAAC,MAE1D,CACD,IAAIvgH,GAAUw7J,EAAeD,CAAY,EACrCv7J,IAAWA,GAAQ,eAAiBA,GAAQ,cAAgBA,GAAQkyJ,EAAgD,GACjH,CAAC72B,EAAM81B,IAAiDiB,EAAqD,IAChH/2B,EAAM22B,EAAwB,EAAkCzxC,EAASvgH,EAAO,EAGhFq7H,EAAM02B,EAAc,EAAyBxxC,EAASk7C,EAAuBH,CAAG,CAAC,CAExF,CACjB,EACY,SAASjB,EAAanL,EAAU,CAC5B,OAAO7zB,EAAM,QAAQ,YAAY6zB,CAAQ,CAC5C,CACD,SAAS0L,EAAoBc,EAAQn7C,EAASo7C,EAAahB,GAAuB/pG,GAAcgrG,GAAK,CACjG,IAAIzkE,GAAW,KAOf,GANKkkC,EAAM,SACPlkC,GAAWqkE,EAAeI,EAAG,EACzBzkE,IAAYA,GAAS,QACrBkkC,EAAM,OAASlkC,GAAS,SAG3BukE,EAAS,KAAOA,GAAU,MAAQA,IAAW,EAAG,CAGjD,IAAIA,IAAW,KAAOA,IAAW,KAAOA,IAAW,MAC3C,CAACG,EAA2BF,CAAW,EAAG,CAC1CtgC,EAAM02B,EAAc,EAAyBxxC,EAAS3vD,EAAY,EAClE,MACH,CAED,CAACyqE,EAAM81B,EAAgD,EAACiB,EAAsB,KAAqCgJ,EAAaM,CAAM,GACtIL,EAAe96C,CAAO,EACtBqc,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAkC,GAAiD,mBACzH0uC,EAAS,wBAA0Bn7C,EAAQsL,EAAW,EAAyB,SAAS,GAG/GwP,EAAM02B,EAAc,EAAyBxxC,EAAS3vD,EAAY,CAEzE,SACQ0oG,GAAoB,CAACA,EAAiB,YAE3C,GAAI,CAACj+B,EAAM81B,IAAiDiB,EAAqD,IAAI,CACjH,IAAI0J,GAA2B,GAC/BT,EAAe96C,EAASu7C,EAAwB,EAChDl/B,GAAevB,EAAMrO,EAAa,IAA2B,EAAkC,GAAiD,8BAA8B,OAAO0uC,EAAQ,oBAAoB,EAAE,OAAO,CAACpC,EAAiB,SAAQ,EAAI,uBAAuB,EAAE,OAAO/4C,EAAQ,OAAQ,SAAS,CAAC,CACrT,OAKDs7C,EAA2BF,CAAW,EAClCD,IAAW,KACNvkE,KACDA,GAAWqkE,EAAeI,EAAG,GAE7BzkE,IAAY,CAACkkC,EAAM81B,EAAmB,EAA8BiB,EAAqD,IACzH/2B,EAAM22B,EAAwB,EAAkCzxC,EAASppB,EAAQ,EAGjFkkC,EAAM02B,EAAc,EAAyBxxC,EAAS3vD,EAAY,IAItE+nG,EAAqB,EACrBt9B,EAAM42B,EAAgB,EAA2B1xC,EAASo6C,EAAqB,EAG1F,CACD,SAASkB,EAA2BF,EAAa,CAE7C,OAAI1C,GAA6B,GAGtB,GAEP,CAAC7nC,GAAkBuqC,CAAW,GAAKA,IAAgB,IAC/CA,IAAgBtgC,EAAM81B,EAAmB,EAA8BG,EAA4C,KACnHj2B,EAAM81B,EAAmB,EAA8BG,EAAiB,EAA8B,UAAY,CAAE,OAAOqK,GAC3H,EAAE1C,EACK,IAGR,EACV,CACD,SAASQ,EAAcl5C,EAAS6c,EAAS,CACjCi8B,EAEAA,EAAkB94C,EAAS,EAAK,EAIhC25C,EAAc35C,CAAgB,CAErC,CACD,SAASw7C,EAAcx7C,EAAS,CAC5B,IAAIluH,EAAMimI,KACNtzG,EAASq2G,EAAM+1B,IACf5wI,GAAM66G,EAAM81B,EAAmB,EAA8BG,EAA4C,IACzG8E,GAAQ/6B,EAAM,QAAQm1B,EAAgD,EAACjwC,CAAO,EAG9Ey7C,GAAiB,IAAI,KAAK,CAAC5F,EAAK,EAAG,CAAE,KAAM,0BAA0B,CAAE,EAEvE6F,GAAS5pK,EAAI,WAAWmuB,GAAKw7I,EAAc,EAC/C,OAAIC,KACAj3I,EAAOyrI,IAA4ClwC,CAAO,EAE1D8a,EAAM,WAAW9a,EAASA,EAAQsL,EAAiC,IAEhEowC,EACV,CAQD,SAAS/B,EAAc35C,EAAS6c,EAAS,CACrC,GAAIjsH,GAAQovG,CAAO,GAAKA,EAAQsL,EAAW,EAAyB,GAE5D,CAACkwC,EAAcx7C,CAAO,EAAG,CAGzB,QADI27C,EAAiB,GACZ50C,GAAK,EAAGA,GAAK/G,EAAQsL,EAAW,EAAwBvE,KAAM,CACnE,IAAI60C,GAAa57C,EAAQ+G,EAAE,EACtBy0C,EAAc,CAACI,EAAU,CAAC,GAE3BD,EAAe1wC,IAA8B2wC,EAAU,CAE9D,CACGD,EAAerwC,EAAiC,EAAG,IACnDutC,GAAmBA,EAAgB8C,EAAgB,EAAI,EACvDt/B,GAAevB,EAAMrO,IAAsC,EAAE,EAAkC,GAAiD,yEAA8E,EAErO,CAER,CAMD,SAASgtC,EAAWz5C,EAAS6c,EAAS,CAClC,IAAIk7B,EAAM,IAAI,eACV8D,GAAc/gC,EAAM81B,EAAmB,EAA8BG,EAA4C,IACrH,GAAI,CACAgH,EAAIzgB,EAAoB,EAAI,EAC/B,MACS,CAGT,CACDygB,EAAI,KAAK,OAAQ8D,GAAah/B,CAAO,EACrCk7B,EAAIjG,EAAuB,EAAiC,eAAgB,kBAAkB,EAE1F3T,GAAsC0d,EAAW,GACjD9D,EAAIjG,EAAuB,EAAiCvX,GAAe,CAAC,EAA0CA,GAAe,CAAC,CAAoD,EAE9LloB,GAAWQ,GAAQ8lC,CAAQ,EAAG,SAAUmD,GAAY,CAChD/D,EAAIjG,EAAuB,EAAiCgK,GAAYnD,EAASmD,EAAU,CAAC,CAChH,CAAiB,EACD/D,EAAI,mBAAqB,UAAY,CAAE,OAAOj9B,EAAM,qBAAqBi9B,EAAK/3C,EAASA,EAAQsL,EAAiC,EAAE,EAClIysC,EAAI,QAAU,SAAUz7J,GAAO,CAAE,OAAOw+H,EAAM02B,IAAuCxxC,EAASs6C,EAAuBvC,CAAG,EAAGz7J,EAAK,CAAE,EAElI,IAAIu5J,GAAQ/6B,EAAM,QAAQm1B,EAAgD,EAACjwC,CAAO,EAClF+3C,EAAI,KAAKlC,EAAK,EACd/6B,EAAM,QAAQo1B,EAA2C,EAAClwC,CAAO,CACpE,CACD,SAAS45C,EAAsB55C,EAAS6c,EAAS,CAC7C,GAAIjsH,GAAQovG,CAAO,EAAG,CAElB,QADI+7C,EAAc/7C,EAAQsL,IACjBvE,GAAK,EAAGA,GAAK/G,EAAQsL,EAAW,EAAwBvE,KAC7Dg1C,GAAe/7C,EAAQ+G,EAAE,EAAEuE,EAAW,EAErCstC,EAAoBmD,GAAgBlE,IACrCmE,EAAeh8C,EAAS,EAAK,EAExBmZ,GAAkB,EAEvBwgC,EAAc35C,CAAgB,GAI9B64C,GAAmBA,EAAgB74C,EAAS,EAAI,EAChDqc,GAAevB,EAAMrO,IAAsC,EAAE,EAAkC,GAAiD,qEAA0E,EAEjO,CACJ,CAMD,SAASitC,EAAa15C,EAAS6c,EAAS,CACpCm/B,EAAeh8C,EAAS,EAAI,CAC/B,CAMD,SAASg8C,EAAeh8C,EAAS6c,EAAS,CACtC,IAAI/tI,EACA+sK,GAAc/gC,EAAM81B,EAAmB,EAA8BG,EAA4C,IACjH8E,GAAQ/6B,EAAM,QAAQm1B,EAAgD,EAACjwC,CAAO,EAC9Ey7C,GAAiB,IAAI,KAAK,CAAC5F,EAAK,EAAG,CAAE,KAAM,kBAAkB,CAAE,EAC/DoG,GAAiB,IAAI,QACrBC,GAAcrG,GAAMvqC,IACpB6wC,GAAiB,GACjBC,GAAkB,GAElBje,GAAsC0d,EAAW,GACjDI,GAAe,OAAO1hB,GAAe,CAAyC,EAAEA,GAAe,CAAC,CAAoD,EAExJloB,GAAWQ,GAAQ8lC,CAAQ,EAAG,SAAUmD,EAAY,CAChDG,GAAe,OAAOH,EAAYnD,EAASmD,CAAU,CAAC,CAC1E,CAAiB,EACD,IAAI/tF,GAAQj/E,EAAK,CACT,OAAQ,OACR,QAASmtK,GACT,KAAMR,EACT,EACD3sK,EAAGwoJ,EAAoB,EAAI,GAE3BxoJ,GACC+tI,IACD9uD,EAAK,UAAY,GAGjBouF,GAAiB,GACjBvD,GAAqBsD,IAEzB,IAAItkE,EAAU,IAAI,QAAQikE,GAAa9tF,CAAI,EAC3C,GAAI,CAEA6pB,EAAQ0/C,EAAoB,EAAI,EACnC,MACS,CAGT,CACDxc,EAAM,QAAQo1B,EAA2C,EAAClwC,CAAO,EACjE,GAAI,CACA,MAAMpoB,CAAO,EAAE,KAAK,SAAUhB,EAAU,CAC/BimC,IACD+7B,GAAqBsD,GACrBA,GAAc,GAEbE,KACDA,GAAkB,GAMbxlE,EAAS,GAIVA,EAAS,KAAI,EAAG,KAAK,SAAUptD,GAAM,CACjC6wH,EAAoBzjE,EAAS,OAAQopB,EAASppB,EAAS,IAAKopB,EAAQsL,EAAW,EAAwB10B,EAAS,WAAYptD,EAAI,CACpK,CAAiC,EALDsxF,EAAM02B,EAAsC,EAACxxC,EAASppB,EAAS,UAAU,EAQzG,CAAqB,EAAE,MAAS,SAAUlpG,EAAO,CACpBmvI,IACD+7B,GAAqBsD,GACrBA,GAAc,GAEbE,KACDA,GAAkB,GAClBthC,EAAM02B,EAAsC,EAACxxC,EAAStyH,EAAM,OAAO,EAE/F,CAAqB,CACJ,OACM5qB,EAAG,CACDs5L,IACDthC,EAAM02B,EAAc,EAAyBxxC,EAASgZ,GAAQl2J,CAAC,CAAC,CAEvE,CACGq5L,IAAkB,CAACC,KAEnBA,GAAkB,GAClBthC,EAAM,WAAW9a,EAASA,EAAQsL,EAAiC,GAE1E,CAKD,SAAS2vC,EAAerkE,EAAU,CAC9B,GAAI,CACA,GAAIA,GAAYA,IAAa,GAAI,CAC7B,IAAI5pG,EAASurI,GAAO,EAAG,MAAM3hC,CAAQ,EACrC,GAAI5pG,GAAUA,EAAO,eAAiBA,EAAO,eAAiBA,EAAO2kK,EAAgD,GACjH3kK,EAAO,cAAgBA,EAAO,gBAAkBA,EAAO,OAAOs+H,IAC9D,OAAOt+H,CAEd,CACJ,OACMlqB,EAAG,CACNu5J,GAAevB,EAAMrO,EAAa,IAA2B,EAAmC,GAAqD,8BAAgC8G,GAAiBzwJ,CAAC,EAAG,CACtM,SAAU8zH,CAClC,CAAqB,CACJ,CACD,OAAO,IACV,CAKD,SAASkkE,EAAe96C,EAASq8C,EAAc,CAE3C,GADIA,IAAiB,SAAUA,EAAe,GAC1C,GAACr8C,GAAWA,EAAQsL,EAAW,IAA2B,GAG9D,KAAI7mG,EAASq2G,EAAM+1B,IACnBpsI,EAAO0rI,IAAyCnwC,CAAO,EACvDo4C,IACA,QAASznK,GAAK,EAAG2rK,GAAYt8C,EAASrvH,GAAK2rK,GAAU,OAAQ3rK,KAAM,CAC/D,IAAIif,GAAO0sJ,GAAU3rK,EAAE,EACvB8zB,EAAOqrI,IAAoClgJ,EAAI,CAClD,CAED2sJ,EAAcF,CAAY,EAC1BpD,IACH,CAKD,SAASsD,EAAcF,EAAc,CACjC,IAAIG,EAAqB,GACrBC,EACJ,GAAIrE,GAAsB,EACtBqE,EAAiBD,MAEhB,CACD,IAAIE,IAAe,KAAK,IAAI,EAAGtE,CAAkB,EAAI,GAAK,EAEtDuE,GAAe,KAAK,MAAM,KAAK,OAAM,EAAKD,GAAcF,CAAkB,EAAI,EAClFG,GAAeN,EAAeM,GAC9BF,EAAiB,KAAK,IAAI,KAAK,IAAIE,GAAc,IAAI,EAAGH,CAAkB,CAC7E,CAED,IAAII,GAAqBvpC,GAAO,EAAMopC,EAAiB,IAEvDpE,EAAWuE,EACd,CAID,SAAS3D,GAAc,CACnB,GAAI,CAACT,GAAkB,CAACD,EAAS,CAC7B,IAAIsE,EAAgBxE,EAAW,KAAK,IAAI,EAAGA,EAAWhlC,IAAS,EAAI,EAC/DypC,EAAa,KAAK,IAAIhiC,EAAM81B,EAAmB,EAA8BmB,EAAuB,IAAoC8K,CAAa,EACzJrE,EAAiB,WAAW,UAAY,CACpCA,EAAiB,KACjB19B,EAAM01B,EAA4C,EAAC,GAAM,KAAM,CAAC,CACnE,EAAEsM,CAAU,CAChB,CACJ,CACD,SAAS9D,GAAuB,CAC5B,aAAaR,CAAc,EAC3BA,EAAiB,KACjBH,EAAW,IACd,CAKD,SAASwC,EAAakC,EAAY,CAC9B,OAAOA,IAAe,KACfA,IAAe,KACfA,IAAe,KACfA,IAAe,KACfA,IAAe,KACfA,IAAe,KACfA,IAAe,KACfA,IAAe,GACzB,CACD,SAASzC,EAAuBvC,EAAKx5J,EAAS,CAC1C,OAAIw5J,EACO,yBAA2BA,EAAI,OAAS,aAAeD,GAAiBC,CAAG,GAAKA,EAAI,UAAY,GAEpGx5J,CACV,CAWD,SAASi7J,EAAWx5C,EAAS6c,EAAS,CAClC,IAAIp4G,EAASq2G,EAAM+1B,IACfj4J,GAAUC,KACVkiK,GAAM,IAAI,eACdA,GAAI,OAAS,UAAY,CAAE,OAAOjgC,EAAM,WAAWigC,GAAK/6C,CAAO,GAC/D+6C,GAAI,QAAU,SAAUz+J,GAAO,CAAE,OAAOw+H,EAAM02B,IAAuCxxC,EAASk7C,EAAuBH,EAAG,EAAGz+J,EAAK,CAAE,EAGlI,IAAI0gK,GAAkBpkK,IAAWA,GAAQ,UAAYA,GAAQ,SAAS,UAAY,GAClF,GAAIkiI,EAAM81B,EAAgD,EAACG,EAA4C,IAAG,YAAYiM,GAAiB,CAAC,IAAM,EAAG,CAC7I3gC,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAkC,GAAiD,mGAC3C,EACrGhoG,EAAOurI,EAAU,IACjB,MACH,CACD,IAAI5R,GAActjB,EAAM81B,IAAiDG,EAA4C,IAAG,QAAQ,aAAc,EAAE,EAChJgK,GAAI,KAAK,OAAQ3c,EAAW,EAE5B,IAAIyX,GAAQpxI,EAAOwrI,EAAgD,EAACjwC,CAAO,EAC3E+6C,GAAI,KAAKlF,EAAK,EACdpxI,EAAOyrI,IAA4ClwC,CAAO,CAC7D,CACD,SAASk7C,EAAuBH,EAAKx8J,EAAS,CAC1C,OAAIw8J,EACO,2BAA6BjD,GAAiBiD,CAAG,GAAK,GAE1Dx8J,CACV,CAED,SAAS0+J,GAAgB,CACrB,IAAIxjK,EAAO,eACX,OAAIqhI,EAAM,KAAKrhI,CAAI,EACRqhI,EAAM,KAAKrhI,CAAI,IAGnBqhI,EAAM,KAAK,oBACrB,CACD,SAAS0/B,EAAmB0C,EAAargC,EAAS,CAC9C,IAAIO,EAAU6/B,IACd,GAAI7/B,GAAWA,EAAQ40B,IACnB,GAAI,CACA50B,EAAQ40B,EAAwB,EAAkCkL,EAAargC,CAAO,CACzF,OACM/5J,GAAG,CACNu5J,GAAevB,EAAMrO,EAAa,EAAyB,EAAE,EAAmC,GAAoD,qCAAuC8G,GAAiBzwJ,EAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,EAAC,CAAG,EAC5O,CAER,CAKD,SAASs2L,EAA4BxqK,EAAQ,CACzC,IAAIuuK,EAA4BtsC,GAAkBjiI,EAAOqjK,EAA6E,GAAI,GAAQrjK,EAAOqjK,IACzJ,GAAIkL,EACA,MAAO,GAEX,IAAIC,EAAa,iEACbC,GAAS,IAAI,OAAOD,CAAU,EAClC,OAAOC,GAAO,KAAKzuK,EAAOw8H,EAA0D,EACvF,CACD,SAAS6jB,GAAgB,CACrBnU,EAAM61B,EAAmC,EAAG,KAC5C71B,EAAM+1B,EAAmC,EAAG,KAC5C/1B,EAAM,OAAS,KACfA,EAAM,QAAU,KAChB69B,EAAW,GACXI,EAAmB,KACnBX,EAAqB,EACrBC,EAAW,KACXC,EAAY,KACZC,EAAU,GACVC,EAAiB,KACjBC,EAAc,KACdC,EAA4B,EAC5BE,EAAoB,EACpBC,EAAkB,KAClBC,EAAoB,KACpBxmB,EAAgB,IACnB,CACb,CAAS,EACM/iJ,CACV,CACD,OAAA4oK,EAAO,kBAAoB,SAAUmF,EAAM1X,EAAMxpB,EAAQ29B,EAAkB,CACvE,IAAIpL,EACA/I,IAAS0X,EAAK,MAAQ,CAACzsC,GAAkB+0B,CAAI,EAC7C+I,EAAW/iK,GAASA,GAAS,CAAE,EAAE0xK,CAAI,EAAG,CAAE,KAAM1X,CAAI,CAAE,EAGtD+I,EAAW2O,EAEf,IAAIC,EAAUrF,IAAoBvJ,EAAS,QAAQ,GAAKwF,GACxD,OAAOoJ,EAAQnhC,EAAQuyB,EAAUoL,CAAgB,CACzD,EAcW5B,CACX,EAAExpB,EAAmB,ECh4BV8gB,GAAe,WACf+N,GAAiB,aCCjBC,GAAmB,aACnBC,GAAY,OACZpyC,GAAc,SACd2C,GAAgB,UAChBC,GAAe,SACfC,GAAmB,aACnBwvC,GAAe,UACfC,GAAiB,UACjBC,GAAgB,SAChBjX,GAAY,OACZkX,GAA6B,4BAC7BC,GAA6B,8BAC7BC,GAAwB,iBACxBC,GAAe,UACfC,GAAuB,iBACvBC,GAAc,QACdrM,GAA0B,mBAC1BsM,GAA6B,8BAC7BC,GAA6B,yBAC7BC,GAAkB,YAClB9wC,GAAqB,cACrB+wC,GAA6B,8BAC7BC,GAA6B,4BAC7BC,GAA6B,yBAC7BC,GAA6B,sBAC7BC,GAA8B,+BAC9BC,GAA8B,yCAC9BC,GAA2B,oBAC3BC,GAA8B,sBAC9BC,GAA8B,uBAC9BC,GAAc,SACdC,GAAmB,aACnBC,GAAkB,YAClBC,GAAiB,WACjBC,GAAiB,WACjBC,GAAyB,kBACzBC,GAAkB,YAClBC,GAAoB,aACpBC,GAAuB,gBACvBtmB,GAAc,SACdumB,GAAyB,kBACzBC,GAA8B,sBAC9BC,GAAqB,eACrBC,GAA8B,uBAC9BC,GAA0B,kBAC1BC,GAAgB,WAChBC,GAA8B,wBAC9BC,GAAuB,gBACvBC,GAA8B,wBAC9BC,GAAiB,WACjBC,GAA8B,sBAC9Br1C,GAAY,OACZs1C,GAAmB,aACnBC,GAA8B,yBAC9BC,GAA2B,qBAC3BC,GAA2B,oBAC3BC,GAAuB,gBCzDlC,SAASC,GAAkBC,EAAez8I,EAAOC,EAAK,CAClD,IAAIl3B,EAAS,EACTa,EAAO6yK,EAAcz8I,CAAK,EAC1Br2B,EAAK8yK,EAAcx8I,CAAG,EAC1B,OAAIr2B,GAAQD,IACRZ,EAASuyJ,GAAsB1xJ,EAAMD,CAAE,GAEpCZ,CACX,CAEA,SAAS2zK,GAAiBjiK,EAAOvM,EAAMuuK,EAAez8I,EAAOC,EAAK,CAC9D,IAAIl3B,EAAS,EACTN,EAAQ+zK,GAAkBC,EAAez8I,EAAOC,CAAG,EACvD,OAAIx3B,IACAM,EAAS4zK,GAAcliK,EAAOvM,EAAM2nJ,GAAaptJ,CAAK,CAAC,GAEpDM,CACX,CAEA,SAAS4zK,GAAcliK,EAAOvM,EAAMzF,EAAO,CACvC,IAAIm0K,EAAU,WACV7zK,EAAS,EACb,GAAI0R,GAASvM,GAAQzF,EAAO,CACxB,IAAIo0K,EAAWpiK,EAAMmiK,CAAO,EAAKniK,EAAMmiK,CAAO,GAAK,GACnDC,EAAS3uK,CAAI,EAAIzF,EACjBM,EAAS,CACZ,CACD,OAAOA,CACX,CAEA,SAAS+zK,IAAkBC,EAAUC,EAAY,CAqB7C,IAAIP,EAAgBM,EAASZ,IACzB1hK,EAAQuiK,EAAWzD,EAAc,GAA8B,GAC/D0D,EAAW,EACXC,EAAU,OACVC,EAAW,QACXC,EAAS,MACTC,EAAkB,eAClBC,EAAa,UACbC,EAAc,WACdC,EAAa,UACbC,EAAc,WACdC,EAAe,YACfC,EAAuBN,EAAkBF,EACzCS,EAAqBP,EAAkBD,EACvCS,EAAkBP,EAAaH,EAC/BW,EAAgBR,EAAaF,EAC7BW,EAAkBP,EAAaL,EAC/Ba,EAAgBR,EAAaJ,EAC7Ba,EAAmBR,EAAcN,EACjCe,EAAiBT,EAAcL,EAC/Be,EAAmBZ,EAAcJ,EACjCiB,EAAiBb,EAAcH,EAC/BiB,EAAkB,eAClBC,EAAqB,kBACrBC,EAAqB,kBACrBC,EAAkB,eACtB,GAAI/B,EAAe,CAEfQ,GAAYP,GAAiBjiK,EAAO8iK,EAAad,EAAe0B,EAAkBC,CAAc,EAEhGnB,GAAYP,GAAiBjiK,EAAO4iK,EAAiBZ,EAAekB,EAAsBC,CAAkB,EAE5GX,GAAYP,GAAiBjiK,EAAO6iK,EAAYb,EAAeoB,EAAiBC,CAAa,EAE7Fb,GAAYP,GAAiBjiK,EAAO+iK,EAAYf,EAAesB,EAAiBC,CAAa,EAE7Ff,GAAYP,GAAiBjiK,EAAOgjK,EAAahB,EAAewB,EAAkBC,CAAc,EAEhGjB,GAAYP,GAAiBjiK,EAAO,iBAAkBgiK,EAAeiB,EAAcI,CAAa,EAEhGb,GAAYP,GAAiBjiK,EAAO,cAAegiK,EAAesB,EAAiBG,CAAc,EAEjG,IAAIjpK,EAAWwnK,EAAcjR,IACxBv2J,IACDA,EAAWunK,GAAkBC,EAAeiB,EAAcQ,CAAc,GAAK,GAEjFjB,GAAYN,GAAcliK,EAAO+wJ,GAAcv2J,CAAQ,EACvDgoK,GAAYN,GAAcliK,EAAO,YAAaxF,CAAQ,EACtD,IAAIwpK,EAAehC,EAAc+B,CAAe,EAChD,GAAIC,EAAc,CACd,IAAIC,EAAW,GACftwC,GAAWqwC,EAAc,SAAUh2K,EAAOovC,EAAK,CAC3C,IAAI3pC,EAAO8+H,GAAgBvkI,EAAMy0K,CAAO,GAAK,GAAKrlI,CAAG,EACjDvpB,EAAWowJ,EAASxwK,CAAI,GAAK,GACjCk/H,GAAc3kI,EAAO,SAAUP,EAAKoe,EAAK,EACjCpe,IAAQg1K,GAAWjwC,GAAS3mH,CAAG,GAAKsnH,GAAStnH,CAAG,KAC5CgI,EAASpmB,CAAG,IACZoe,EAAMgI,EAASpmB,CAAG,EAAI,IAAMoe,IAE5BA,GAAO,CAAC2mH,GAAS3mH,CAAG,KAEpBgI,EAASpmB,CAAG,EAAIoe,GAG5C,CAAiB,EACDo4J,EAASxwK,CAAI,EAAIogB,CACjC,CAAa,EACD2uJ,GAAYN,GAAcliK,EAAO+jK,EAAiBE,CAAQ,CAC7D,CACDzB,GAAYN,GAAcliK,EAAO4jK,EAAiB5B,EAAc4B,CAAe,CAAC,EAChFpB,GAAYN,GAAcliK,EAAO6jK,EAAoB7B,EAAc6B,CAAkB,CAAC,EACtFrB,GAAYN,GAAcliK,EAAO8jK,EAAoB9B,EAAc8B,CAAkB,CAAC,CACzF,MAEOxB,EAASd,MACTgB,GAAYN,GAAcliK,EAAO,UAAWsiK,EAAS,YAAY,GAGrEE,IACAD,EAAWzD,EAAwC,EAAG9+J,EAE9D,CACA,IAAIkkK,IAAoC,UAAY,CAChD,SAASA,GAAqB,CAC1B,IAAI1mD,EAAO,KACXA,EAAKijD,EAAsC,EAAG,GAC9CjjD,EAAK,qBAAuB,GAC5BA,EAAKkjD,EAAsC,EAAG,GAC9CljD,EAAKojD,EAAwC,EAAG,GAEhDpjD,EAAKwjD,EAA8D,EAAG,EACzE,CACD,OAAOkD,CACX,EAAC,EAEGC,GAA4B,UAAY,CACxC,SAASA,EAAW57B,EAASC,EAAQ9K,EAAQmY,EAAU,CACnD,IAAIzlJ,EACAotH,EAAO,KACPgtC,EAAU9sB,EACV0mC,EAAkB,eAGtB5mD,EAAKgkD,EAAsC,EAAG,KAC9ChkD,EAAK,UAAY,GACjBA,EAAK,mBAAqB,KAC1BA,EAAKgiD,EAAkD,EAAG,KAC1DhiD,EAAK,0BAA4B,KACjCA,EAAK,iBAAmB,KACxBA,EAAKqkD,EAAyD,EAAG,KACjErkD,EAAK,QAAU,EACfA,EAAK,QAAU,KACfA,EAAKuhD,EAA0C,EAAG,KAClDvhD,EAAK,YAAc,EACnBA,EAAKg9B,EAAiC,EAAG,KACzCh9B,EAAK8iD,EAAiC,EAAG,KACzC9iD,EAAKmjD,EAAqD,EAAG,KAC7DnjD,EAAK,oBAAsB,KAC3BA,EAAK0jD,EAA+D,EAAG,KACvE1jD,EAAK,qBAAuB,KAC5BA,EAAK,QAAU,KACfA,EAAK,mBAAqB,IAAI0mD,IAC9B1mD,EAAK,cAAgB,EACrBA,EAAK+R,EAAoC,EAAGgZ,EAC5C/qB,EAAKgS,EAAkC,EAAGgZ,EAC1ChrB,EAAKiS,EAAgB,EAA6BomB,GAAa,KAA8B,OAASA,EAAS,cAAa,EACxHA,EACAr4B,EAAKskD,KAAqD1xK,EAAK,CAAE,EAC7DA,EAAG8uK,EAAc,EAAuBrpB,EAASgrB,EAAiB,EAA4B,EAC9FzwK,EAAG+uK,EAAa,EAAsBtpB,EAAS,UAAW,EAC1DzlJ,EAAGq/H,EAAgB,EAA0BomB,EAASirB,EAAoB,EAA+B,EACzG1wK,GAGJotH,EAAKskD,EAAiD,EAAG,KAE7Dr3C,GAAa05C,EAAY3mD,EAAM,SAAUA,EAAM,CAC3CA,EAAK,eAAiB,UAAY,CAC9B,OAAOA,EAAKuhD,IAA6C/f,GAAkBxhC,EAAKuhD,EAAgB,CAA0B,EAAI,IAC9I,EACYvhD,EAAK,YAAc,UAAY,CAC3B,OAAOA,EAAKuhD,EAAgB,EAA6BthB,GAAgB+M,EAASvL,GAAkBzhC,EAAKg9B,EAAiC,EAAEh9B,EAAKuhD,EAAgB,CAA0B,CAAC,EAAI,IAChN,EACYvhD,EAAK2jD,EAAsD,EAAG,SAAUkD,EAAUC,EAA6BC,EAAa,CACxH,IAAIn0K,EAGJ,GADAotH,EAAK,kBAAoB,KAAK,MAAMqjC,GAAsBrjC,EAAK,gBAAiBA,EAAK,oBAAoB,EAAI,GAAI,EAAI,IACjHA,EAAKqkD,EAAyD,EAAG,EACjE,OAAO,KAEX,IAAIU,GAAcnyK,EAAK,CACf,GAAI,IAAMotH,EAAK+R,EAAoC,EAAG,IAAM/R,EAAKgS,EAAkC,EACnG,OAAQhS,EAAK8hD,IAAqD,CACrE,EACDlvK,EAAGg8H,EAAS,EAAoB5O,EAAK,YAAa,EAClDptH,EAAG,KAAOi0K,EACVj0K,EAAGwvK,EAAe,EAAyB,KAC3CxvK,EAAG,SAAWotH,EAAKqkD,EAAyD,EAC5EzxK,EAAG,QAAW,CAAEotH,EAAK8iD,EAAiC,GAAM,KAAQ,CAAE9iD,EAAK8iD,EAAW,EAA2B,IACjHlwK,EAAG,aAAgB,CAAEotH,EAAK8iD,EAAiC,EAC3DlwK,EAAG,OAASotH,EAAKg9B,EAAiC,EAClDpqJ,EAAG0uK,EAAc,EAAI,CAAE,WAAYthD,EAAKg9B,EAAW,CAAwB,EAC3EpqJ,GAQJ,GAPIotH,EAAKmjD,MAEL4B,EAAW3C,EAAe,EAA4B,IAAI,KAC1D2C,EAAW3C,EAAe,EAA0B,QAAQpiD,EAAKmjD,EAAqD,IAG1H0B,IAAkB7kD,EAAM+kD,CAAU,EAC9B+B,GACInwC,GAAQ3W,EAAK,cAAc,EAAEoP,EAAW,EAAyB,EAAG,CACpE,IAAI5sH,EAAQuiK,EAAWzD,EAAc,EAA6ByD,EAAWzD,EAAwC,GAAI,GACzH9+J,EAAMw/J,EAAoB,EAAiChiD,EAAKgiD,EAAoB,CACvF,CAEL,GAAI+E,EAAa,CACb,IAAIrsE,EAAWqsE,IACf,GAAIrsE,EAAU,CAEV,IAAIwtD,EAAqBxtD,EAAS0pE,IAIlC,GAHIlc,IACA6c,EAAW,mBAAuD7c,GAElExtD,EAASsoE,KACLrsC,GAAQj8B,EAAS,SAAS,EAAE00B,EAAW,EAAyB,EAAG,CACnE,IAAI5sH,EAAQuiK,EAAWzD,EAAc,EAA6ByD,EAAWzD,EAAwC,GAAI,GACzH9+J,EAAM,gBAAkBk4F,EAASsoE,GACpC,CAEL,GAAIhjD,EAAK,iBAAmBA,EAAK8iD,EAAW,GAA0B,IAAK,CACvE,IAAIkE,EAAetsE,EAAS,KACxBl4F,EAAQuiK,EAAWzD,EAAc,EAA6ByD,EAAWzD,EAAwC,GAAI,IACrH0F,IAAiB,IAAMA,IAAiB,UACxCxkK,EAAM,aAAek4F,EAAS,aAAeA,EAASqoE,EAAgB,EAA6B,MAAQroE,EAASksE,CAAe,EAAIlsE,EAASqoE,EAAgB,GAEhKiE,IAAiB,SACjBxkK,EAAM,aAAek4F,EAAS,SAAWA,EAASqoE,EAAgB,EAA6B,MAAQ,KAAK,UAAUroE,EAASkpE,EAAqC,GAAIlpE,EAASqoE,IAExL,CACJ,CACJ,CACD,OAAOgC,CACvB,EACY/kD,EAAK8jD,EAAoB,EAAgC,UAAY,CACjE,IAAIlxK,EACAq0K,EAAQ,KACR5uB,EAAWr4B,EAAKskD,IACpB,GAAIjsB,IAAaA,EAASqpB,EAAqC,GAAIrpB,EAASspB,EAAa,GAAyB,CAC9GsF,EAAQ,GACR,IAAIC,EAAWD,EAAMtd,GAAW,QAAQ,GAAK/2J,EAAK,CAAE,EAChDA,EAAGm/H,EAAa,EAAuBsmB,EAASqpB,EAAqC,EACrF9uK,EAAG,SAAWylJ,EAASspB,EAAmC,EAC1D/uK,GACC+hI,GAAkB0jB,EAASpmB,EAA0C,KACtEi1C,EAASj1C,EAAgB,EAA6BomB,EAASpmB,EAAgB,EAEtF,CACD,OAAOg1C,CACvB,CACA,CAAS,CACJ,CAQD,OAAAN,EAAW,QAAQ,EAEZA,CACX,IC1RIQ,GAAsB,YACtBC,GAAa,UACbC,GAAc,WACdC,GAAW,QACXC,GAAe,mCACfC,GAAe,wCACfC,GAAgBD,GAAe,oBAC/BE,GAAiBF,GAAe,iBAChCG,GAA2B,gHAC3BC,GAA+B,iGAC/BC,GAAqC,2CAErCC,GAAa,EAEjB,SAASC,KAAiB,CACtB,IAAIx1K,EAAU07H,KACd,MAAI,CAAC17H,GACDoiI,GAAkBpiI,EAAQ,OAAO,GACjCoiI,GAAkBpiI,EAAQ,QAAQy1K,EAAY,CAAC,GAC/CrzC,GAAkBpiI,EAAQ+0K,EAAQ,CAAC,EAC5B,KAEJ/0K,EAAQ+0K,EAAQ,CAC3B,CAMA,SAASW,IAAwBC,EAAqB,CAClD,IAAIp3K,EAAS,GACb,GAAIwsI,GAAc,EAAI,CAClB,IAAIviD,EAAQ,eAAeitF,EAAY,EACvCl3K,EAAS,CAAC6jI,GAAkB55C,CAAK,GAC7B,CAAC45C,GAAkB55C,EAAM,IAAI,GAC7B,CAAC45C,GAAkB55C,EAAM,IAAI,GAC7B,CAAC45C,GAAkB55C,EAAM,KAAK,CACrC,CACD,IAAIwjF,EAAQ7hC,KAIZ,GAHI6hC,GAASA,EAAQ,IACjBztK,EAAS,IAETA,EAEA,GAAI,CACA,IAAI+qK,EAAM,IAAI,eACdA,EAAIwL,EAAW,EAAI,GAEnB,IAAIc,EAAU,eAAeH,EAAY,EAAE,KAC3C,eAAeA,EAAY,EAAE,KAAOG,CACvC,OACMvhM,EAAG,CAENkqB,EAAS,GACTs3K,GAAuBF,EAAqB,GAAoD,yEAA0E,CACtK,UAAWprC,GAAQl2J,CAAC,CACpC,CAAa,CACJ,CAEL,OAAOkqB,CACX,CAEA,SAASu3K,GAAiCxM,EAAK,CAC3C,IAAI/qK,EAAS,GACb,GAAI,CACI+qK,GAAOA,EAAIwL,EAAW,GAAKxL,EAAIwL,EAAW,EAAE9F,MAC5CzwK,GAAU,UAAY+qK,EAAIwL,EAAW,EAAE9F,EAA0C,EAAG,KAE3F,MACS,CAET,CACD,OAAOzwK,CACX,CAEA,SAASs3K,GAAuBF,EAAqBzpC,EAAOp8H,EAAS0N,EAAY4uH,EAAW,CACxFwB,GAAe+nC,EAAoBd,EAAU,IAAK,EAAmC3oC,EAAOp8H,EAAS0N,EAAY4uH,CAAS,CAC9H,CAEA,SAAS2pC,GAAsBJ,EAAqBzpC,EAAOp8H,EAAS0N,EAAY4uH,EAAW,CACvFwB,GAAe+nC,EAAoBd,EAAU,IAAK,EAAkC3oC,EAAOp8H,EAAS0N,EAAY4uH,CAAS,CAC7H,CAEA,SAAS4pC,GAAyBL,EAAqBM,EAAiBnmK,EAAS,CAE7E,OAAO,SAAU3O,EAAM,CACnB00K,GAAuBF,EAAqBM,EAAiBnmK,EAAS,CAClE,uBAAwBgmK,GAAiC30K,EAAK8tK,GAA6B,EAC3F,UAAW1kC,GAAQppI,EAAK,GAAG,CACvC,CAAS,CACT,CACA,CACA,SAAS+0K,GAASj4K,EAAOuH,EAAO,CAC5B,OAAIvH,GAASuH,EACFvH,EAAM,QAAQuH,CAAK,EAEvB,EACX,CACA,SAASu6I,GAAYxoF,EAAW72E,EAAI04I,EAAS,CACzC,IAAI+8C,EAAa,CACb,GAAIz1L,EACJ,GAAI04I,CACZ,EACI,OAAA7hE,EAAU,KAAK4+G,CAAU,EAClB,CACH,OAAQ,UAAY,CAChBvyC,GAAWrsE,EAAW,SAAUkqF,EAAap0G,EAAK,CAC9C,GAAIo0G,EAAY,KAAO00B,EAAW,GAC9B,OAAA5+G,EAAU,OAAOlqB,EAAK,CAAC,EAChB,EAE3B,CAAa,CACJ,CACT,CACA,CACA,SAAS+oI,GAA4B3pC,EAAMl1E,EAAW03E,EAASn/H,EAAS,CACpE,IAAIvR,EAAS,GACb,OAAAqlI,GAAWrsE,EAAW,SAAU6hE,EAAS/rF,EAAK,CAC1C,GAAI,CACI+rF,EAAQ,GAAG,KAAK,KAAM6V,CAAO,IAAM,KACnC1wI,EAAS,GAEhB,OACMlqB,EAAG,CACNu5J,GAAenB,GAAQA,EAAK,OAAQ,EAAmC,GAAyD,cAAgB38H,EAAU,MAAQu9B,EAAM,aAAey3F,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,GAAK,EAAI,CAC9O,CACT,CAAK,EACMkqB,CACX,CACA,SAAS83K,IAA4B/4D,EAAWmvB,EAAM8lC,EAAUjJ,EAAK5uJ,EAAO4kE,EAAM,CAC9E,IAAIj/E,EACAi2K,EAAoBh5D,EAAUuf,IAClC,GAAIy5C,EAAoB,EAAG,CACvB,IAAIrnC,GAAW5uI,EAAK,CAAE,EAClBA,EAAG83J,EAAS,EAAoB1rB,EAChCpsI,EAAG,IAAMipK,EACTjpK,EAAG,MAAQqa,EACXra,EAAG,KAAOi/E,EACVj/E,EAAG,QAAUkyK,EAAS/yC,EAAoC,EAC1Dn/H,EAAG,OAASkyK,EAAS9yC,EAAkC,EACvDp/H,EAAG,WAAakyK,EAAS7yC,EAA0C,EACnEr/H,EAAG,QAAUkyK,EAASrD,EAAmC,GAAI,CAAE,EAC/D7uK,GACJ+1K,GAA4B3pC,EAAMnvB,EAAW2xB,EAAS,UAAU,EAChEsjC,EAAS/yC,EAAa,EAA0ByP,EAAQkgC,EAAc,EACtEoD,EAAS9yC,EAAY,EAAyBwP,EAAQmgC,EAAa,EACnEmD,EAAS7yC,EAAgB,EAA6BuP,EAAQvP,EAAgB,EAC9E6yC,EAASrD,EAAY,EAA0BjgC,EAAQigC,EAAY,CACtE,CACL,CACA,IAAIqH,GAAY,eACLC,IAAqClyE,GAAW,CACvDiyE,GAAY,cACZA,GAAY,mBACZA,GAAY,cACZA,GAAY,mBAChB,CAAC,EACGE,IAA4B,CAC5B,qHACJ,EACA,SAAS9Y,IAAoB,CACzB,IAAIt9J,EACAF,GAAUE,EAAK,CAAE,EACjBA,EAAG4vK,EAA0B,EAAmC,IAChE5vK,EAAGgwK,EAA2B,EAAmC,GACjEhwK,EAAGiwK,EAA2B,EAAoC,GAClEjwK,EAAG8vK,EAA2B,EAAsD,OACpF9vK,EAAG,0BAA4B,GAC/BA,EAAG,uBAAyB,EAC5BA,EAAG,iCAAmCm2K,IACtCn2K,EAAG,yBAA2B,OAC9BA,EAAG,iCAAmC,OACtCA,EAAGqvK,EAAW,EAAqB,OACnCrvK,EAAG,sBAAwB,GAC3BA,EAAGyvK,EAA0B,EAA2C,GACxEzvK,EAAG6vK,EAA2B,EAA4C,GAC1E7vK,EAAG0vK,EAA0B,EAAyC,GACtE1vK,EAAG2vK,EAA0B,EAAsC,GACnE3vK,EAAG,0BAA4B,EAC/BA,EAAGqxK,EAA2B,EAAmC,GACjErxK,EAAG,cAAgB,CACf,gBACA,YACA,kBACH,EACDA,EAAG+vK,EAAwB,EAAiC,OAC5D/vK,EAAG,gBAAkB,GACrBA,GACJ,OAAOF,CACX,CACA,SAASu2K,IAAkB,CACvB,IAAIC,EAAchZ,KAClB,OAAA/6B,GAAc+zC,EAAa,SAAU14K,EAAO,CACxC04K,EAAY14K,CAAK,EAAI,MAC7B,CAAK,EACM04K,CACX,CACA,IAAIC,IAA6B,SAAUrmK,EAAQ,CAC/CtT,GAAU25K,EAAarmK,CAAM,EAC7B,SAASqmK,GAAc,CACnB,IAAI91K,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjCzP,EAAM,WAAa81K,EAAY,WAC/B91K,EAAM,SAAW,IACjB,IAAI+1K,EACAC,EACAC,EACAl0B,EACAm0B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAj0B,EACAk0B,EACAC,EACAC,EACJ,OAAAv9C,GAAak8C,EAAa91K,EAAO,SAAUurI,EAAOiV,EAAO,CACrD,IAAIwd,EAAWxd,EAAM,SACrBd,IACAnU,EAAM,WAAa,SAAUlsI,EAAQssI,EAAMlhD,EAAY4zD,GAAa,CAC3D9S,EAAM,kBACPiV,EAAM,WAAWnhJ,EAAQssI,EAAMlhD,EAAY4zD,EAAW,EACtD0E,EAAgBxN,GAAkBxF,GAAsB,MAAM,EAAGpE,GAAQA,EAAK,cAAgBA,EAAK,aAAY,CAAE,EACjH+yB,EAAkBr/J,CAAM,EACxB+3K,IACAC,IACAC,IAEpB,EACY/rC,EAAM,YAAc,UAAY,CAC5BmU,GAChB,EACYnU,EAAM,oBAAsB,SAAUmmC,EAAYh1J,EAAY,CAC1D66J,GAA0BJ,EAAyB5rC,EAAM8rB,EAA6B,EAAE,KAAMqa,EAAYh1J,CAAU,CACpI,EACY6uH,EAAMgjC,EAA0B,EAA4C,SAAUkD,EAAU73J,EAAO4kE,EAAMgqF,GAAK,CAE9G,IAAIgP,GAAoBjsC,EAAM,oBAAyB0qC,EAEvD,GADAV,IAA4B2B,EAAsB3rC,EAAM8rB,EAAS,EAAsBoa,EAAUjJ,GAAK5uJ,EAAO4kE,CAAI,EAC7G5kE,EAAO,CACP,GAAIk1I,GAAoB0f,EAA0B,EAA4CzsB,EAAS0vB,EAAShD,EAAmD,IAAI+I,EAAiB,EAAG,CAClLh5F,IACDA,EAAO,IAKX,IAAI6sB,GAAU,IAAI,QAAQ7sB,EAAKkwF,EAAY,IAA4B90J,aAAiB,QAAWA,EAAM80J,EAAY,GAA2B,GAAM,GAAG,EACzJ,GAAI6H,EAAmB,CACnB,IAAI32L,GAAK,IAAM6xL,EAAS/yC,EAAoC,EAAG,IAAM+yC,EAAS9yC,IAC9EtzB,GAAQ,IAAI2/C,GAAe,CAAwC,EAAEprK,EAAE,EACnEs2L,IACAzE,EAAS9C,EAAoB,EAA+B3jB,GAAe,CAAwC,GAAIprK,GAE9H,CACD,IAAI63L,GAAQ11B,EAAQ6sB,EAAgC,GAAKyH,GAAYA,EAASzH,EAAgC,IAO9G,GANI6I,KACApsE,GAAQ,IAAI2/C,GAAe,CAAC,EAA8CA,GAAe,CAAC,EAAoDysB,EAAK,EAC/IvB,IACAzE,EAAS9C,EAAkD,EAAC3jB,GAAe,CAA6C,GAAIA,GAAe,CAAkD,EAAGysB,KAGpMnB,EAAoB,CACpB,IAAIoB,GAAajG,EAAS7yC,IACtB0C,GAAkBo2C,EAAU,IAC5BA,GAAa,GAEjB,IAAIC,GAAc5/B,GAAkBN,GAAkBg6B,EAAS/yC,IAAsC+yC,EAAS9yC,EAAY,EAAwB+4C,EAAU,CAAC,EAC7JrsE,GAAQ,IAAI2/C,GAAe,CAA0C,EAAE2sB,EAAW,EAC9EzB,IACAzE,EAAS9C,EAAoB,EAA+B3jB,GAAe,CAA0C,GAAI2sB,GAEhI,CACDn5F,EAAKkwF,EAAmC,EAAGrjE,EAC9C,CACD,OAAO7sB,CACV,SACQgqF,GAAK,CACV,GAAI1Z,GAAoB0f,EAA0B,EAA4CzsB,EAAS0vB,EAAShD,EAAmD,IAAI+I,EAAiB,EAAG,CACvL,GAAIjB,EAAmB,CACnB,IAAI32L,GAAK,IAAM6xL,EAAS/yC,EAAoC,EAAG,IAAM+yC,EAAS9yC,IAC9E6pC,GAAIjG,EAAuB,EAAiCvX,GAAe,CAAwC,EAAEprK,EAAE,EACnHs2L,IACAzE,EAAS9C,EAAoB,EAA+B3jB,GAAe,CAAwC,GAAIprK,GAE9H,CACD,IAAI63L,GAAQ11B,EAAQ6sB,EAAgC,GAAKyH,GAAYA,EAASzH,EAAgC,IAO9G,GANI6I,KACAjP,GAAIjG,EAAuD,EAACvX,GAAe,CAA6C,EAAEA,GAAe,GAAqDysB,EAAK,EAC/LvB,IACAzE,EAAS9C,EAAkD,EAAC3jB,GAAe,CAA6C,GAAIA,GAAe,CAAkD,EAAGysB,KAGpMnB,EAAoB,CACpB,IAAIoB,GAAajG,EAAS7yC,IACtB0C,GAAkBo2C,EAAU,IAC5BA,GAAa,GAEjB,IAAIC,GAAc5/B,GAAkBN,GAAkBg6B,EAAS/yC,IAAsC+yC,EAAS9yC,EAAY,EAAwB+4C,EAAU,CAAC,EAC7JlP,GAAIjG,EAAuB,EAAiCvX,GAAe,CAA0C,EAAE2sB,EAAW,EAC9HzB,IACAzE,EAAS9C,EAAoB,EAA+B3jB,GAAe,CAA0C,GAAI2sB,GAEhI,CACJ,CACD,OAAOnP,EACV,CAEjB,EACYj9B,EAAMsjC,EAAqE,EAAG,SAAU6C,EAAYh1J,EAAY05I,EAAkB,CAC9H,GAAIsgB,IAAyB,IAAMN,EAAqBM,EAAsB,EAIrE30B,EAAQ+sB,EAA0B,IAA2C,GAC3E/sB,EAAQ+sB,EAA0B,IAA2C,IAC7E,OAAO4C,EAAW,IAAO,UAAYA,EAAW,GAAGA,EAAW,GAAG31C,EAAW,EAAyB,CAAC,IAAM,MAC/G21C,EAAW,IAAM,KAEjBpwC,GAAkBowC,EAAW3C,EAAe,CAAyB,IACrE2C,EAAW3C,EAAe,EAA4B,IAAI,MAE9D,IAAI1uJ,GAAO41I,GAAoByb,EAAYjd,GAAqB,SAAUA,GAAqB,aAAclpB,EAAMwoC,EAAU,EAAG,EAAEr3J,EAAY05I,CAAgB,EAC9J7qB,EAAM8rB,EAAS,EAAqB,MAAMh3I,EAAI,CACjD,MACQ+1J,IAAuBM,GAC5B3B,GAAuBxpC,EAAO,GAAmD,0LAA2L,EAAI,EAEpR,EAAE6qC,CAClB,EACY7qC,EAAM,sBAAwB,SAAUqsC,EAAoB,CACxD,OAAO34B,GAAYi4B,EAAsBD,IAAwBW,CAAkB,CACnG,EACYrsC,EAAM,yBAA2B,SAAUssC,EAAuB,CAC9D,OAAO54B,GAAYk4B,EAAyBF,IAAwBY,CAAqB,CACzG,EACY,SAASn4B,GAAgB,CACrB,IAAIttE,EAAWM,KACfqjG,EAAoB,GACpBC,EAAkB,GAClBC,EAAqB7jG,GAAYA,EAAS,MAAQA,EAAS,KAAK6rD,EAAkB,IAClF8jB,EAAU+zB,EAAY,iBACtBI,EAA+B,GAC/BC,EAA6B,GAC7BC,EAAqB,EACrBC,EAAW,KACXC,EAAqB,GACrBC,EAAoB,GACpBC,EAAc,KACdC,EAA0B,GAC1BC,EAAuB,EACvBC,EAAgC,GAChCC,EAAgB,GAChBC,EAAuB,GACvBC,EAAwB,GACxBC,EAA0C,KAC1CC,EAAqB,KACrBj0B,EAAgB,KAChBk0B,EAAuB,EACvBC,EAAuB,GACvBC,EAA0B,EAC7B,CACD,SAASzY,EAAkBr/J,EAAQ,CAC/B,IAAIi9E,EAAMw+D,GAA8B,KAAMz7I,EAAQksI,EAAM8rB,EAAS,CAAoB,EAEzFtV,EAAU6zB,GAAe,EACzB,IAAI//D,EAAgBgnD,KACpB/6B,GAAcjsB,EAAe,SAAUl+B,GAAOx6E,GAAO,CACjD4kJ,EAAQpqE,EAAK,EAAI2E,EAAI,UAAUw5F,EAAY,WAAYn+F,GAAOx6E,EAAK,CACvF,CAAiB,EACD,IAAI26K,GAAyB/1B,EAAQ+sB,IAUrC,GATAoH,EAA+Bn0B,EAAQitB,IACvCmH,EAA6Bp0B,EAAQktB,IACrCwH,EAA0B10B,EAAQmtB,IAClCwH,EAAuB30B,EAAQotB,IAC/BwH,EAAgC50B,EAAQqtB,IACxC2H,EAA0C,CAAE,EAAC,OAAOh1B,EAAQstB,EAAiF,GAAI,GAAIttB,EAAQ,kBAAoB,GAAQ4zB,IAA4B,CAAE,GACvNqB,EAAqBj1B,EAAQutB,IAC7BiH,EAAoBuB,KAA2B,GAAuCA,KAA2B,EACjHxB,EAAqBwB,KAA2B,GAA+CA,KAA2B,EACtHrB,EAAyB,CACzB,IAAIpgB,GAAOh3J,EAAO,oBAAsB,QACpCg3J,GAAKt6B,EAAiC,EAAG,EACzCy6C,EAAc1C,GAAsBzd,GAAK,UAAUA,GAAKt6B,EAAiC,EAAG,CAAC,EAAI,IAGjGy6C,EAAc1C,GAAsBzd,GAAO,GAElD,CACDwgB,EAAuB,CAAC,CAAC90B,EAAQwtB,IACjCuH,EAAwB,CAAC,CAAC/0B,EAAQytB,GACrC,CACD,SAAS8H,GAAmB,CACxB,IAAIS,EAAUxsC,EAAM8rB,EAA6B,EAAC,UAAUb,EAA0B,EAClFuhB,IACA1B,EAAW0B,EAAQ,OAAO3J,IAEjC,CAED,SAAS4J,EAAmBC,EAAQ,CAChC,IAAIC,EAAM,GACV,OAAID,GAAUl2B,EAAQ,gBAClBjf,GAAWif,EAAQ,cAAgB,SAAUnlJ,EAAK,CAC9C,GAAIA,EAAIqhI,EAA6C,MAAOg6C,EAAOh6C,EAA6C,IAC5G,OAAAi6C,EAAM,GACC,EAEnC,GAEuBA,CACV,CAED,SAASb,GAAmB,CACxB,IAAIc,EAAQzD,MACZ,GAAKyD,EAGL,KAAI9vF,EAASuyC,KACTw9C,EAAaD,EAAM,SACnB,CAACrB,GAAyB,CAACf,GAC3B/X,EAAStW,GAAer/D,EAAQ4rF,GAAU,CACtC,GAAIlxB,EAEJ,IAAK,SAAUyD,GAAa5sI,GAAO4kE,GAAM,CACrC,IAAI65F,GACJ,GAAI,CAACvB,GAAyBf,GAC1B,CAACuC,EAAmB,KAAM1+J,GAAO4kE,EAAI,GAErC,EAAE45F,GAAcpC,GAAkB,CAClC,IAAI15F,GAAMkqE,GAAY,MACtB6xB,GAAYE,GAAmB3+J,GAAO4kE,EAAI,EAC1C,IAAIg6F,GAAUjtC,EAAMgjC,EAA0B,EAA0C8J,GAAWz+J,GAAO4kE,EAAI,EAC1Gg6F,KAAYh6F,IACZgoE,GAAY,IAAI,EAAGgyB,EAAO,EAE9Bl8F,GAAI,KAAO+7F,EACd,CACJ,EACD,IAAK,SAAU7xB,GAAa5sI,GAAO,CAC/B,GAAI,CAACk9J,EAAuB,CACxB,IAAI2B,GAAcjyB,GAAY,IAAG,EAAG,KAChCiyB,KAEAjyB,GAAY,KAAOA,GAAY,KAAK,KAAK,SAAUn/C,GAAU,CACzD,OAAAqxE,GAAoBlyB,IAAcn/C,IAAY,CAAE,GAAEooE,EAAW,EAAwB71J,GAAOytF,GAAUoxE,GAAa,UAAY,CAC3H,IAAIl5K,GACAo5K,IAAgBp5K,GAAK,CACjB,WAAY8nG,GAASqoE,EAA0C,CAClE,EACDnwK,GAAGowK,EAAe,EAAyB,KAC3CpwK,GAAGwxK,EAAwB,EAAkC6H,GAA4BvxE,EAAQ,EACjG9nG,IACJ,GAAIo3K,EAA+B,CAC/B,IAAIkC,GAAsB,GAC1BxxE,GAAS,QAAQ,QAAQ,SAAUlqG,GAAOyF,GAAM,CACxCo1K,EAAmBp1K,EAAI,IACvBi2K,GAAoBj2K,EAAI,EAAIzF,GAEpF,CAAiD,EACDw7K,GAAahJ,EAAwC,EAAGkJ,EAC3D,CACD,OAAOF,EACnD,CAAyC,EACMtxE,EAC/C,CAAqC,EAAE,MAAS,SAAU3B,GAAQ,CAC1B,MAAAgzE,GAAoBlyB,GAAa,EAAG5sI,GAAO,KAAM6+J,GAAa,KAAM,CAAE,MAAO/yE,GAAO,OAAS,GACvFA,EAC9C,CAAqC,EAER,CACJ,EAED,MAAOwvE,GAAyB3pC,EAAO,GAAoD,iCAAmC6oC,EAAa,CAC9I,EAAC,EACF2B,EAAoB,IAEfqC,GAOLpa,EAAStW,GAAer/D,EAAQ4rF,GAAU,CACtC,GAAIlxB,EACJ,IAAK,SAAUyD,GAAa5sI,GAAO4kE,GAAM,CAErC85F,EAAmB,KAAM1+J,GAAO4kE,EAAI,CACvC,CACJ,EAAC,EAEF45F,IAGA/vF,EAAO4rF,EAAQ,EAAE,SAAWmE,GAEnC,CACD,SAASU,EAAWn8K,EAAQ+6H,EAAU9lH,EAAW,CAC7CosJ,EAASvW,GAAgB9qJ,EAAQ+6H,EAAU9lH,CAAS,CAAC,CACxD,CACD,SAASwlK,GAAiB,CAClBxC,IAAwBrpC,CAAK,GAAK,CAACsrC,GAAwB,CAACb,IAE5D8C,EAAW,eAAgB,OAAQ,CAC/B,GAAI/1B,EACJ,IAAK,SAAU1iJ,EAAM0nF,EAAQr3D,EAAKoS,GAAO,CACrC,GAAI,CAAC+zI,EAAsB,CACvB,IAAIrO,GAAMnoK,EAAK8tK,IACXsD,GAAWjJ,GAAIwL,EAAW,EAC1B,CAACsE,EAAmB9P,GAAK93I,CAAG,GAAKqoJ,EAAwBvQ,GAAK,EAAI,KAC9D,CAACiJ,IAAY,CAACA,GAAS,mBAAmB7B,EAAc,IAExDoJ,EAAaxQ,GAAKzgF,EAAQr3D,EAAKoS,EAAK,EAGxCm2I,EAA4BzQ,EAAG,EAEtC,CACJ,EACD,MAAO0M,GAAyB3pC,EAAO,GAAoD2oC,GAAe,QAAUE,EAAa,CACzJ,CAAqB,EAED0E,EAAW,eAAgB,OAAQ,CAC/B,GAAI/1B,EACJ,IAAK,SAAU1iJ,EAAMsP,EAAS,CAC1B,GAAI,CAACknK,EAAsB,CACvB,IAAIrO,EAAMnoK,EAAK8tK,IACXsD,GAAWjJ,EAAIwL,EAAW,EAC1B+E,EAAwBvQ,CAAG,GAAK,CAACiJ,GAAS,mBAAmB5B,MAC7DqJ,GAAc,MAAOzH,EAAQ,EAC7BA,GAAS3B,IAAwDhgB,KACjEvkB,EAAMgjC,EAA0B,EAA0CkD,GAAU,OAAW,OAAWjJ,CAAG,EAC7GiJ,GAAS,mBAAmB5B,EAAsC,EAAG,GAE5E,CACJ,EACD,MAAOqF,GAAyB3pC,EAAO,GAAoD2oC,GAAeE,EAAa,CAC/I,CAAqB,EAED0E,EAAW,eAAgB,QAAS,CAChC,GAAI/1B,EACJ,IAAK,SAAU1iJ,EAAM,CACjB,GAAI,CAACw2K,EAAsB,CACvB,IAAIrO,EAAMnoK,EAAK8tK,IACXsD,EAAWjJ,EAAIwL,EAAW,EAC1B+E,EAAwBvQ,CAAG,GAAK,CAACiJ,EAAS,mBAAmB1B,MAC7D0B,EAAS,QAAU,EACnBA,EAAS,mBAAmB1B,EAAwC,EAAG,GAE9E,CACJ,EACD,MAAOmF,GAAyB3pC,EAAO,GAAqD2oC,GAAe,SAAWE,EAAa,CAC3J,CAAqB,EAED0E,EAAW,eAAgB,mBAAoB,CAC3C,GAAI/1B,EACJ,IAAK,SAAU1iJ,EAAM43K,EAAQ96K,EAAO,CAChC,GAAI,CAAC05K,GAAwBX,EAA8B,CACvD,IAAI1N,GAAMnoK,EAAK8tK,IACX4K,EAAwBvQ,EAAG,GAAKwP,EAAmBC,CAAM,IACzDzP,GAAIwL,EAAW,EAAErF,EAAkD,EAACsJ,CAAM,EAAI96K,EAErF,CACJ,EACD,MAAO+3K,GAAyB3pC,EAAO,GAAgE2oC,GAAe,oBAAsBE,EAAa,CACjL,CAAqB,EACD4B,EAAkB,GAEzB,CACD,SAASsC,EAAmB9P,EAAKngE,EAAS7pB,EAAM,CAC5C,IAAI26F,GAAa,GACbC,KAAYz3C,GAASt5B,CAAO,EAAgCA,GAA3BA,GAAW,IAAI,KAAO,KAAiB,IAAI41B,EAA6C,IAY7H,GAVA6E,GAAWi0C,EAAyC,SAAU3nB,GAAO,CACjE,IAAIiqB,GAAWjqB,GACXztB,GAASytB,EAAK,IACdiqB,GAAW,IAAI,OAAOjqB,EAAK,GAE1B+pB,KACDA,GAAaE,GAAS,KAAKD,EAAM,EAEzD,CAAiB,EAEGD,GACA,OAAOA,GAEX,IAAI5sI,GAAM6oI,GAASgE,GAAQ,GAAG,EAC1BE,GAAOlE,GAASgE,GAAQ,GAAG,EAC/B,OAAI7sI,KAAQ,IAAO+sI,KAAS,IAAMA,GAAO/sI,MACrCA,GAAM+sI,IAEN/sI,KAAQ,KAER6sI,GAASA,GAAO,UAAU,EAAG7sI,EAAG,GAG/B+0F,GAAkBknC,CAAG,EAIhBlnC,GAAkBj5B,CAAO,IAE/B8wE,IAAc,OAAO9wE,GAAY,SAAWA,EAAQ0/C,EAAoB,IAAM,GAAO,MAChFvpE,EAAOA,EAAKupE,EAAoB,IAAM,GAAO,KALlDoxB,GAAa3Q,EAAIzgB,EAAoB,IAAM,IAAQqxB,GAAOrxB,EAAoB,IAAM,GAQpF,CAACoxB,IAAcC,IAAUxqB,GAAsCwqB,EAAM,IACrED,GAAa,IAEbA,GAEKvC,EAAcwC,EAAM,IACrBxC,EAAcwC,EAAM,EAAI,GAKxBxC,EAAcwC,EAAM,IACpBD,GAAa,IAGdA,EACV,CAID,SAASJ,EAAwBvQ,EAAK+Q,EAA2B,CAC7D,IAAIC,EAAiB,GACjBC,GAAczD,EAClB,OAAK10C,GAAkBknC,CAAG,IACtBgR,EAAiBD,IAA8B,IAAQ,CAACj4C,GAAkBknC,EAAIwL,EAAW,CAAC,GAGvFyF,IAEAD,CACV,CACD,SAAS7Z,GAA0B,CAC/B,IAAIC,EAAsB,KAC1B,OAAIr0B,EAAM8rB,EAA6B,GAAI9rB,EAAM8rB,EAAS,EAAqB,cAC3EuI,EAAsBr0B,EAAM8rB,EAA6B,EAAC,YAAY,EAAK,GAG3E,CAACuI,GAAuByW,GAAYA,EAAS,iBAC7CzW,EAAsB3P,GAAuComB,EAAS,cAAc,GAEjFzW,CACV,CACD,SAASoZ,EAAaxQ,EAAKzgF,EAAQr3D,EAAKoS,GAAO,CAC3C,IAAIvjC,GACAqgK,GAAsBD,IACtB+Z,GAAW9Z,IAAuBA,GAAoBoQ,EAA2C,KAAOn5B,KACxG8iC,GAAS9iC,GAAe,EAAC,OAAO,EAAG,EAAE,EACrC46B,GAAW,IAAI6B,GAAWoG,GAASC,GAAQpuC,EAAMwoC,EAAU,EAAG,GAAGx0K,GAAKgsI,EAAM,QAAU,MAAQhsI,KAAO,OAAS,OAASA,GAAG,YAAW,CAAE,EAC3IkyK,GAAS7yC,EAAgB,EAA6BghC,IAAuBA,GAAoBqQ,EAAiD,IAClJwB,GAAS9nB,EAAiC,EAAG5hE,EAC7C0pF,GAASvD,EAA0C,EAAGx9I,EACtD+gJ,GAAS,mBAAmB7B,EAAsC,EAAG,GACrE6B,GAAS9C,EAAkD,EAAG,GAC9D8C,GAAS,MAAQ3uI,GACjB2uI,GAASvB,EAAqD,EAAGiG,EACjE3N,EAAIwL,EAAW,EAAIvC,EACtB,CACD,SAASwH,EAA4BzQ,EAAK,CACtCA,EAAIwL,EAAW,EAAE,mBAAmB7D,EAA8D,EAAGx6B,GAAQ6yB,EAAK,mBAAoB,UAAY,CAC9I,IAAIjpK,EACJ,GAAI,CACIipK,GAAOA,EAAI,aAAe,GAAKuQ,EAAwBvQ,CAAG,GAC1DoR,EAAgBpR,CAAG,CAE1B,OACMj1L,GAAG,CACN,IAAIsmM,EAAgBpwC,GAAQl2J,EAAC,GAEzB,CAACsmM,GAAiBzE,GAASyE,EAAc57C,EAAkB,IAA+B,UAAU,IAAM,KAC1G82C,GAAuBxpC,EAAO,GAAmD2oC,GAAe,oCAAsCE,IAAgB70K,EAAK,CAAE,EACzJA,EAAGuxK,EAA2B,EAAsCkE,GAAiCxM,CAAG,EACxGjpK,EAAG,UAAYs6K,EACft6K,GAEX,CACJ,EAAEwjJ,CAAa,CACnB,CACD,SAASwlB,EAAiBC,EAAK,CAC3B,GAAI,CACA,IAAImL,EAAenL,EAAI,aACvB,GAAImL,IAAiB,IAAMA,IAAiB,OAExC,OAAOnL,EAAI4H,GAElB,MACS,CAET,CACD,OAAO,IACV,CACD,SAASwJ,EAAgBpR,EAAK,CAC1B,IAAIiJ,EAAWjJ,EAAIwL,EAAW,EAC9BvC,EAASpB,IAAkEvgB,KAC3E2hB,EAAShC,EAAW,EAAyBjH,EAAIiH,EAAW,EAC5D,SAASqK,EAAgBvmM,GAAGwmM,GAAa,CACrC,IAAIC,GAAaD,IAAe,GAChCC,GAAW,uBAA4BhF,GAAiCxM,CAAG,EACvEj1L,KACAymM,GAAW,UAAevwC,GAAQl2J,EAAC,GAEvC0hM,GAAsB1pC,EAAO,GAAmDipC,GAAqC,YAAcH,GAAgB2F,EAAU,CAChK,CACDC,GAAuB,iBAAkBxI,EAAU,UAAY,CAC3D,GAAI,CACA,IAAIC,GAAaD,EAASnB,EAAsD,EAAC,OAAQ4F,EAA8B,UAAY,CAC/H,IAAI32K,GACAo5K,IAAgBp5K,GAAK,CACjB,WAAYipK,EAAIkH,EAA0C,CAC7D,EACDnwK,GAAGowK,EAAe,EAAyB,KAC3CpwK,GAAGwxK,EAAwB,EAAkCmJ,EAA2B1R,CAAG,EAC3FjpK,GAAG,KAAOipK,EAAI,aACdjpK,GAAG6wK,EAAkB,EAA4B7H,EAAiBC,CAAG,EACrEjpK,GAAG,SAAWipK,EAAI+H,EAAqC,EACvDhxK,IACJ,GAAIo3K,EAA+B,CAC/B,IAAItrE,GAAUm9D,EAAIgI,EAA2B,IAC7C,GAAInlE,GAAS,CAGT,IAAI/L,GAAM6jC,GAAQ93B,EAAO,EAAE,MAAM,SAAS,EACtC8uE,GAAsB,GAC1Br3C,GAAWxjC,GAAK,SAAU5b,GAAM,CAC5B,IAAI7/E,GAAQ6/E,GAAK,MAAM,IAAI,EACvBu0F,GAASp0K,GAAM,QACf1G,GAAQ0G,GAAM,KAAK,IAAI,EACvBm0K,EAAmBC,EAAM,IACzBkC,GAAoBlC,EAAM,EAAI96K,GAE1E,CAAqC,EACDw7K,GAAahJ,EAAwC,EAAGwK,EAC3D,CACJ,CACD,OAAOxB,EACnC,CAAyB,EACGj8J,GAAa,OACjB,GAAI,CACMs6J,IACFt6J,GAAas6J,EAAmB,CAAE,OAAQxO,EAAIiH,IAAmC,IAAKjH,CAAG,CAAE,EAElG,MACS,CACNyM,GAAsB1pC,EAAO,IAAuEgpC,EAA4B,CACnI,CACD,GAAI7C,GAAY,CACRh1J,KAAe,SACfg1J,GAAWzD,IAA2C5xK,GAASA,GAAS,CAAE,EAAEq1K,GAAW,UAAU,EAAGh1J,EAAU,GAElH,IAAI09J,GAAgB3I,EAAShB,EAAoB,IACjD8G,GAA0BJ,EAAyB5rC,EAAM8rB,EAAS,EAAsBoa,EAAUC,GAAY,KAAM0I,EAAa,CACpI,MAEGN,EAAgB,KAAM,CAClB,gBAAiBrI,EAAS3B,EAAqD,EAC/E,qBAAsB2B,EAASpB,EAA+D,CAC9H,CAA6B,CAER,QACO,CAEJ,GAAI,CACA7H,EAAIwL,EAAW,EAAI,IACtB,MACS,CAET,CACJ,CACJ,EAAE,SAAUzgM,GAAG,CACZumM,EAAgBvmM,GAAG,IAAI,CAC3C,CAAiB,CACJ,CACD,SAAS2mM,EAA2B1R,EAAK,CACrC,IAAIjpK,EACJ,GAAI,CACA,IAAI86K,EAAwB7R,EAAIgI,EAA2B,IAC3D,GAAI6J,IAA0B,KAAM,CAChC,IAAIl4K,GAAQizK,GAASiF,EAAsBp8C,EAA6C,IAAI+sB,GAAe,CAAC,CAAqD,EACjK,GAAI7oJ,KAAU,GAAI,CACd,IAAImtJ,GAAiBkZ,EAAI,kBAAkBxd,GAAe,CAA6C,GACvG,OAAO8D,GAAoB4hB,IAAiEphB,EAAc,CAC7G,CACJ,CACJ,OACM/7K,GAAG,CACN0hM,GAAsB1pC,EAAO,GAAoE+oC,IAA2B/0K,EAAK,CAAE,EAC/HA,EAAGuxK,EAA2B,EAAsCkE,GAAiCxM,CAAG,EACxGjpK,EAAG,UAAYkqI,GAAQl2J,EAAC,EACxBgsB,GACP,CACJ,CACD,SAAS25K,GAAcz4G,EAAMgxG,EAAU,CACnC,GAAIA,EAASvD,KAA8CsI,GAAeC,EAAyB,CAC/F,IAAI6D,EAAgBxxC,KACpB,GAAIwxC,GAAiB74C,GAAW64C,EAAc,IAAI,EAAG,CACjD7F,KACA,IAAI8F,GAAS/D,EAAc/1G,EAAO,IAAMg0G,GACxC6F,EAAc,KAAKC,EAAM,EACzB,IAAIrqF,GAAUoqF,EAAc,iBAAiBC,EAAM,EAC/CrqF,IAAWA,GAAQ6rC,EAAW,IAA2B,IACzD01C,EAASd,EAAc,EAA2BzgF,GAAQ,CAAC,EAElE,CACJ,CACJ,CACD,SAAS+pF,GAAuBO,EAAe/I,EAAUgJ,EAAeC,GAAa,CACjF,IAAIC,GAAWlJ,EAASd,IACpBiK,GAAc9xC,KACd+xC,GAAc94B,EAAQ,0BACtB+4B,GAAa/4B,EAAQ6uB,IACrB7hB,GAAa0iB,EAASvD,IACtB6M,GAAU,GACb,SAASC,IAAuB,CAC7B,GAAI,CACA,GAAIJ,IAAeD,GAAU,CACzBI,KAGA,QAFIE,GAAa,KACb/qF,GAAU0qF,GAAY,aACjBpjD,GAAKtnC,GAAQ6rC,EAAW,EAAyB,EAAGvE,IAAM,EAAGA,KAAM,CACxE,IAAIj3H,GAAQ2vF,GAAQsnC,EAAE,EACtB,GAAIj3H,GAAO,CACP,GAAIA,GAAM,YAAc,WAChBA,GAAM,gBAAkBi6K,IACvBpF,GAAS70K,GAAMg7H,EAA6B,EAAEwzB,EAAU,IAAM,IAAMqmB,GAASrmB,GAAYxuJ,GAAMg7H,EAA6B,KAAM,MACnI0/C,GAAa16K,YAGZA,GAAM,YAAc,QAAUA,GAAMg7H,MAAkCo/C,GAASp/C,IAA+B,CAEnHk2C,EAASZ,EAA0C,EAAGoK,GACtD,KACH,CACD,GAAI16K,GAAMwuK,EAAwC,EAAG4L,GAAS5L,EAAe,EAA4B,IAErG,KAEP,CACJ,CACJ,CACG,CAAC4L,IACDlJ,EAASZ,EAA0C,GACnDkK,IAAWF,IACXpJ,EAAS,QAAU,IACfkJ,IAAYl5C,GAAWm5C,GAAY,UAAU,GAE7CA,GAAY,WAAWD,GAASp/C,EAA6B,GAEjEk2C,EAAS,aAAesJ,GAExBN,KAMA,WAAWO,GAAsBF,EAAU,CAElD,OACMvnM,GAAG,CACNmnM,GAAYnnM,EAAC,CAChB,CACrB,IACa,CACD,SAASglM,GAAmB3+J,EAAO4kE,EAAM,CACrC,IAAIj/E,EACAqgK,GAAsBD,IACtB+Z,GAAW9Z,IAAuBA,GAAoBoQ,EAA2C,KAAOn5B,KACxG8iC,GAAS9iC,GAAe,EAAC,OAAO,EAAG,EAAE,EACrC46B,GAAW,IAAI6B,GAAWoG,GAASC,GAAQpuC,EAAMwoC,EAAU,EAAG,GAAGx0K,EAAKgsI,EAAM,QAAU,MAAQhsI,IAAO,OAAS,OAASA,EAAG,YAAW,CAAE,EAC3IkyK,GAAS7yC,EAAgB,EAA6BghC,IAAuBA,GAAoBqQ,EAAiD,IAClJwB,GAAS3B,IAAwDhgB,KACjE2hB,GAASvB,EAAqD,EAAGiG,EAC7Dv8J,aAAiB,QACjB63J,GAASvD,EAAgB,EAA6Bt0J,EAAQA,EAAM,IAAM,GAG1E63J,GAASvD,EAA0C,EAAGt0J,EAE1D,IAAImuE,GAAS,MACTvJ,GAAQA,EAAKmrE,IACb5hE,GAASvJ,EAAKmrE,IAET/vI,GAASA,aAAiB,UAC/BmuE,GAASnuE,EAAM+vI,KAEnB8nB,GAAS9nB,EAAiC,EAAG5hE,GAC7C,IAAI2kF,GAAiB,GACrB,GAAIwJ,EAA8B,CAC9B,IAAI7qE,GAAU,IAAI,SAAS7sB,EAAOA,EAAKkwF,IAAsC,KAAO90J,aAAiB,QAAWA,EAAM80J,EAAmC,GAAI,CAAE,EAAI,CAAE,EAAC,EACtKrjE,GAAQ,QAAQ,SAAUluG,GAAOP,GAAK,CAC9Bo7K,EAAmBp7K,EAAG,IACtB8vK,GAAe9vK,EAAG,EAAIO,GAElD,CAAqB,CACJ,CACD,OAAAs0K,GAAS9C,EAAkD,EAAGjC,GAC9DwM,GAAc,QAASzH,EAAQ,EACxBA,EACV,CACD,SAASyJ,GAAkCthK,EAAO,CAC9C,IAAInc,EAAS,GACb,GAAI,CACK6jI,GAAkB1nH,CAAK,IACpB,OAAQA,GAAW,SACnBnc,GAAU,UAAU,OAAOmc,EAAO,IAAI,EAGtCnc,GAAU,UAAU,OAAOmc,EAAM,IAAK,IAAI,EAGrD,OACMrmC,EAAG,CACNwhM,GAAuBxpC,EAAO,GAAoD,kDAAmD,CAAE,UAAW9B,GAAQl2J,CAAC,CAAC,CAAE,CACjK,CACD,OAAOkqB,CACV,CACD,SAASi7K,GAAoBlyB,EAAaolB,EAAQhyJ,EAAOytF,GAAUoqE,GAAUiC,GAAah3J,GAAY,CAClG,GAAI,CAAC+0J,GACD,OAEJ,SAAS0J,GAAkB/vC,GAAO73J,GAAGwmM,GAAa,CAC9C,IAAIC,GAAaD,IAAe,GAChCC,GAAW,wBAA6BkB,GAAkCthK,CAAK,EAC3ErmC,KACAymM,GAAW,UAAevwC,GAAQl2J,EAAC,GAEvC0hM,GAAsB1pC,EAAOH,GAAOopC,GAAqC,aAAeH,GAAgB2F,EAAU,CACrH,CACDvI,GAASpB,IAAkEvgB,KAC3E2hB,GAAShC,EAAiC,EAAG7D,EAC7CqO,GAAuB,QAASxI,GAAU,UAAY,CAClD,IAAIC,GAAaD,GAASnB,EAAuB,EAAgC,QAAS4F,EAA8BxC,EAAW,EAC/Hh3J,GACJ,GAAI,CACMs6J,IACFt6J,GAAas6J,EAAmB,CAAE,OAAQpL,EAAQ,QAAShyJ,EAAO,SAAUytF,EAAQ,CAAE,EAE7F,MACS,CACN4tE,GAAsB1pC,EAAO,IAAuEgpC,EAA4B,CACnI,CACD,GAAI7C,GAAY,CACRh1J,KAAe,SACfg1J,GAAWzD,IAA2C5xK,GAASA,GAAS,CAAE,EAAEq1K,GAAW,UAAU,EAAGh1J,EAAU,GAElH,IAAI09J,GAAgB3I,GAAShB,EAAoB,IACjD8G,GAA0BJ,EAAyB5rC,EAAM8rB,EAAS,EAAsBoa,GAAUC,GAAY,KAAM0I,EAAa,CACpI,MAEGe,GAAkB,GAAmD,KAAM,CACvE,gBAAiB1J,GAAS3B,EAAqD,EAC/E,qBAAsB2B,GAASpB,EAA+D,CAC1H,CAAyB,CAER,EAAE,SAAU98L,GAAG,CACZ4nM,GAAkB,GAAoE5nM,GAAG,IAAI,CACjH,CAAiB,CACJ,CACD,SAASqlM,GAA4BvxE,EAAU,CAC3C,GAAIA,GAAYA,EAASqnE,IACrB,GAAI,CACA,IAAIpf,EAAiBjoD,EAASqnE,EAAY,EAAwB,IAAI1jB,GAAe,CAAC,CAA4C,EAClI,OAAO8D,GAAoB4hB,IAAiEphB,CAAc,CAC7G,OACM/7K,EAAG,CACN0hM,GAAsB1pC,EAAO,GAAoE+oC,GAA0B,CACvH,wBAAyB4G,GAAkC7zE,CAAQ,EACnE,UAAWoiC,GAAQl2J,CAAC,CAChD,CAAyB,CACJ,CAER,CACD,SAASgkM,GAA0B6D,EAAczvC,EAAM8lC,EAAUC,GAAYh1J,GAAY05I,GAAkB,CACvG,IAAI72J,GACA9B,GAAS,GACT+3K,GAAoB4F,EAAar/C,IACrC,GAAIy5C,GAAoB,EAAG,CACvB,IAAIrnC,IAAW5uI,GAAK,CACZ,KAAMmyK,EACT,EACDnyK,GAAG0uK,EAAc,EAA0BvxJ,GAC3Cnd,GAAG,cAAgB62J,GACnB72J,GAAG,QAAUkyK,EAAWA,EAASrD,EAAmC,EAAG,KACvE7uK,IACJ9B,GAAS63K,GAA4B3pC,EAAMyvC,EAAcjtC,GAAS,aAAa,CAClF,CACG1wI,IACA8tI,EAAMsjC,EAAqE,EAAC6C,GAAYh1J,GAAY05I,EAAgB,CAE3H,CACb,CAAS,EACMp2J,CACV,CAED,OAAA81K,EAAY,UAAU,iBAAmB,SAAUz1J,EAAM87H,EAAS,CAC9D,KAAK,YAAY97H,EAAM87H,CAAO,CACtC,EAYI25B,EAAY,UAAU,yBAA2B,SAAU+B,EAAuB,CAC9E,OAAO,IACf,EAEI/B,EAAY,WAAa,uBACzBA,EAAY,iBAAmBjZ,GAC/BiZ,EAAY,eAAiBF,GACtBE,CACX,EAAE12B,EAAmB,EC9gCjBi8B,IAA6B,UAAY,CACzC,SAASA,GAAc,CACtB,CACD,OAAOA,CACX,ICJIC,IAAwB,UAAY,CAIpC,SAASA,GAAS,CAEd,KAAK,GAAK,UAGV,KAAK,YAAc,SACtB,CACD,OAAOA,CACX,ICLWC,GAAuB,iBACvBv+C,GAAc,SACdw+C,GAA0B,kBAC1BC,GAAmB,YACnBC,GAAqB,cACrBC,GAAuB,iBACvBC,GAA6B,sBAC7BC,GAA6B,0BAC7BC,GAA4B,qBAC5BC,GAA6B,wBAC7BC,GAA0B,mBAC1BC,GAA6B,6BAC7BC,GAA6B,uBAC7BC,GAA6B,uBAC7BC,GAAkB,YAClBC,GAAqB,eACrBC,GAAsB,eACtBnlB,GAAmB,aACnBolB,GAA6B,uBAC7BC,GAA2B,oBAC3BC,GAAiB,WACjBC,GAAkB,WAClB3gD,GAAc,SACd4gD,GAAyB,mBACzBC,GAAwB,kBACxBC,GAA6B,sBAC7BC,GAA0B,mBAC1BlhD,GAAc,SACdmhD,GAAwB,kBACxBC,GAAoB,cACpBC,GAAqB,eACrBC,GAAY,OACZC,GAAwB,kBACxBC,GAA6B,qBCvCpCC,IAAU,QACVC,IAA0B,UAAY,CAItC,SAASA,EAASj+K,EAAQ,CACtB,KAAK,YAAcA,EAAOg9K,EAA8C,GAAIh9K,EAAOg9K,EAAkB,EAA8B,EAAGh9K,EAAOg9K,EAAkB,EAA8B,EAAG,IAAM,IAAM,cAAgBgB,GAC/N,CACD,OAAOC,CACX,ICVIlrF,IAA0B,UAAY,CACtC,SAASA,GAAW,CACnB,CACD,OAAOA,CACX,ICAImrF,IAAkB,aAClBC,GAAyB,UAAY,CACrC,SAASA,GAAU,CAClB,CACD,OAAOA,CACX,EAAC,EAEGC,IAAiC,UAAY,CAC7C,SAASA,EAAgBp+K,EAAQssI,EAAM,CACnC,IAAIhf,EAAO,KACP+wD,EACAC,EACAhkB,EAAUjuB,GAAcC,CAAI,EAC5B0W,EAAiB1Q,GAAiBhG,CAAI,EAC1C/R,GAAa6jD,EAAiB9wD,EAAM,SAAU4e,EAAO,CAC5ClsI,IACDA,EAAS,IAERoiI,GAAWpiI,EAAOw9K,EAA6D,KAChFx9K,EAAOw9K,EAA0B,EAAsC,UAAY,CAAE,OAAOY,EAAgB,kBAE3Gh8C,GAAWpiI,EAAOy9K,EAAuD,KAC1Ez9K,EAAOy9K,EAAuB,EAAmC,UAAY,CAAE,OAAOW,EAAgB,cAE1GlyC,EAAM3P,EAAiC,EAAGv8H,EAE1C,IAAIu+K,EAAwBryC,EAAM,OAAOgxC,EAA8D,GAAIhxC,EAAM3P,IAAkC2gD,IAAgE,EAC/MhxC,EAAM,OAAOgxC,IAAgE,EAC3EhxC,EAAM,OAAO4rB,EAA0C,GAAI5rB,EAAM3P,EAAW,EAAuBu7B,EAA0C,IAAM5rB,EAAM3P,EAAiC,EAACu7B,EAAgB,EAA4B,EAAG,GAChPumB,EAAqB,UAAY,CAAE,OAAOH,IAAkBK,CAAqB,EACjFryC,EAAMoxC,EAAsB,EAAmC,IAAIa,GACnEjyC,EAAMvO,EAAW,EAAyB,UAAY,CAGlD,IAAIsV,EAAQxO,KACR+5C,EAAY,GACZC,EAAUvyC,EAAMoxC,IACfmB,EAAQ,KACTD,EAAY,CAACE,EAA4BD,CAAc,GAE3D,IAAIE,EAAsBzyC,EAAM,OAAOsxC,EAA6D,IACpG,GAAI,CAACgB,GAAaG,EAAsB,EAAG,CACvC,IAAIC,EAAmB1yC,EAAM,OAAOuxC,EAAuD,IACvFoB,EAAiB5rC,EAAQwrC,EAAQf,EAAqB,EACtDoB,EAAqB7rC,EAAQwrC,EAAQd,EAAiB,EAC1Da,EAAYK,EAAiB,GAAKC,EAAqB,EACvDN,EAAYA,GAAaK,EAAiBF,EAC1CH,EAAYA,GAAaM,EAAqBF,CACjD,CAEGJ,EAEAO,EAAO9rC,CAAK,GAIR,CAACqrC,GAA2BrrC,EAAQqrC,EAA0BF,EAAgB,uBAC9EY,EAAWP,EAASxrC,CAAK,CAGjD,EAMY/G,EAAM,OAAS,UAAY,CACvB,IAAIuyC,EAAUvyC,EAAMoxC,IACpB2B,EAAYR,EAAQ,GAAIA,EAAQf,EAAqB,EAAiCe,EAAQd,EAAiB,CAA2B,CAC1J,EAMY,SAASe,EAA4BD,EAASnzK,EAAK,CAC/C,IAAI4zK,EAAU,GACVprC,EAAckP,EAAe,IAAIq7B,EAAoB,GACzD,GAAIvqC,GAAe1R,GAAW0R,EAAY,KAAK,EAC3CorC,EAAUC,EAAoCV,EAAS3qC,CAAW,MAEjE,CAKD,IAAIsrC,EAAe3yB,GAAmB6N,EAAS+jB,EAAoB,GAC/De,IACAF,EAAUC,EAAoCV,EAASW,CAAY,EAE1E,CACD,OAAOF,GAAW,CAAC,CAACT,EAAQ,EAC/B,CAQD,SAASU,EAAoCV,EAASY,EAAa,CAC/D,IAAIH,EAAU,GACVI,EAAe,0BACfC,EAASF,EAAY,MAAM,GAAG,EAClC,GAAIE,EAAO7iD,EAAiC,GAAI,EAC5C,GAAI,CACA,IAAI8iD,EAAQ,CAACD,EAAO,CAAC,GAAK,EACtBE,EAAY,CAACF,EAAO,CAAC,GAAK,EAC1B,MAAMC,CAAK,GAAKA,GAAS,EACzB/xC,GAAe6sB,EAAS,EAAkC,GAAuD,mCAAqCglB,CAAY,EAE7J,MAAMG,CAAS,GAAKA,GAAa,EACtChyC,GAAe6sB,EAAS,EAAkC,GAAuD,+BAAiCglB,CAAY,EAEzJC,EAAO,CAAC,IAEbd,EAAQ,GAAKc,EAAO,CAAC,EACrBd,EAAQf,EAAoD,EAAG8B,EAC/Df,EAAQd,EAA4C,EAAG8B,EACvDP,EAAU,GAEjB,OACMhrM,EAAG,CACNu5J,GAAe6sB,EAAS,EAAmC,EAAyD,oCAAsC+kB,GAAe,IAAM,IAAMC,EAAe,MAAQ36C,GAAiBzwJ,CAAC,EAAG,CAAE,UAAWk2J,GAAQl2J,CAAC,CAAC,CAAE,CAC7P,CAEL,OAAOgrM,CACV,CACD,SAASH,EAAO9rC,EAAO,CACnB,IAAIoI,EAAanP,EAAM3P,EAAiC,GAAI,CAAE,EAC1DmjD,GAAYrkC,EAAUgiC,EAAuC,EAAGhiC,EAAUgiC,EAAuC,IAAK,OAASttC,GACnI7D,EAAM,iBAAiB,GAAKwzC,EAASrkC,EAAU+hC,EAAsC,EAAG/hC,EAAU+hC,IAAwC,EAAG,EAAE,EAC/IlxC,EAAMoxC,EAAsB,EAAiCI,EAAqB,EAAkCzqC,EACpH+rC,EAAW9yC,EAAMoxC,EAAsD,EAAErqC,CAAK,EAEzE+Y,GAAqB,GACtBve,GAAe6sB,EAAS,EAAkC,EAA+D,+EAA+E,CAE/M,CACD,SAAS0kB,EAAWP,EAASxrC,EAAO,CAChC,IAAI0sC,EAAMlB,EAAQf,IAClBe,EAAQd,EAA4C,EAAG1qC,EACvD,IAAIjzI,EAASksI,EAAM3P,IACfqjD,EAAkB5/K,EAAOy9K,EAAuB,IAGhDoC,EAAiBF,EAAM3/K,EAAOw9K,EAA0B,EAAqC,EAAIvqC,EACjG6sC,EAAS,CAACrB,EAAQ,GAAIkB,EAAK1sC,CAAK,EAChCJ,EAAY,EACZgtC,EAAgBD,EAChB/sC,EAAYgtC,EAAgB,IAG5BhtC,EAAY+sC,EAAkB,IAElC,IAAIG,EAAe//K,EAAO49K,EAAkB,EAA+B59K,EAAO49K,EAAkB,EAA8B,EAAG,KAIrI56B,EAAe,IAAIq7B,EAAkB,EAAIyB,EAAO,KAAK,GAAG,EAAG9/K,EAAOw9K,EAA0B,EAAqC,EAAG,EAAI3qC,EAAY,KAAMktC,CAAY,EACtKzB,EAA0BrrC,CAC7B,CACD,SAASgsC,EAAYe,EAAML,EAAKM,EAAS,CAIrCvzB,GAAmB4N,EAAS+jB,EAAoB,EAAE,CAAC2B,EAAML,EAAKM,CAAO,EAAEpC,IAA8B,GAAG,CAAC,CAC5G,CACb,CAAS,CACJ,CAGD,OAAAO,EAAgB,gBAAkB,MAClCA,EAAgB,YAAc,KAC9BA,EAAgB,qBAAuB,IAChCA,CACX,IClLI8B,IAAgC,UAAY,CAC5C,SAASA,EAAe3/L,EAAI4/L,EAAU58K,EAAMiqI,EAAQ,CAChD,IAAItB,EAAQ,KACZA,EAAM,QAAU3rJ,GAAMi3J,KACtBtL,EAAM,SAAWi0C,EACjB,IAAIptG,EAAWM,KACX,CAAC9vE,GAAQwvE,GAAYA,EAAS,WAC9BxvE,EAAOwvE,EAAS,UAEpBm5D,EAAM,KAAOmhB,GAAmB7f,EAAQjqI,CAAI,CAC/C,CACD,OAAO28K,CACX,ICVA,SAASE,GAAmB7/L,EAAI,CAI5B,MAAI,SAAOA,GAAO,UACd,CAACA,GACDA,EAAG,MAAM,YAAY,EAI7B,CACA,IAAI8/L,IAAsB,UAAY,CAClC,SAASA,EAAKrgL,EAAQssI,EAAM,CAIxB,KAAK,UAAY,GAIjB,KAAK,gBAAkB,GACvB,IAAIguB,EAAUjuB,GAAcC,CAAI,EAC5B0W,EAAiB1Q,GAAiBhG,CAAI,EACtC+xC,EACJ9jD,GAAa8lD,EAAM,KAAM,SAAUn0C,EAAO,CACtCA,EAAM3P,EAAiC,EAAGv8H,EAC1C,IAAIsgL,EAAqBp0C,EAAM,OAAOixC,EAAwB,GAAqCjxC,EAAM3P,EAAW,EAAuB4gD,EAAyD,IAAMjxC,EAAM3P,EAAiC,EAAC4gD,EAAwB,EAAmC,EAAG,GAChTkB,EAAqB,UAAY,CAAE,OAAOgC,EAAK,eAAiBC,CAAkB,EAElF,IAAIR,EAAS98B,EAAe,IAAIq7B,EAAoB,GACpD,GAAIyB,EAAQ,CACR5zC,EAAMkwC,EAAyC,EAAG,GAClD,IAAImE,EAAST,EAAO,MAAMO,EAAKvC,EAAoD,GAC/EyC,EAAO7jD,EAAiC,EAAG,IAC3CwP,EAAM,GAAKq0C,EAAO,CAAC,EAEnBr0C,EAAMiwC,EAAsD,EAAG,CAAC,CAACjwC,EAAM,GAE9E,CACD,SAASs0C,GAAiB,CACtB,IAAInlC,EAAar7I,GAAU,GACvB0/K,GAAYrkC,EAAUgiC,EAAuC,EAAGhiC,EAAUgiC,EAAuC,IAAK,OAASttC,GAC/HxvJ,EAAKm/L,EAASrkC,EAAU+hC,EAAc,EAA2Bp9K,EAAOo9K,EAAc,IAA6B,EAAE,EACzH,OAAO78L,CACV,CACD,SAASkgM,EAAmBC,EAAQ,CAChC,IAAIC,EAASv9C,GAAY,IAAI,IAAM,EACnC8I,EAAM,uBAAyBy0C,EAC/Bz0C,EAAMkwC,EAAyC,EAAG,GAClD,IAAIwE,EAAY,CAACF,EAAQC,CAAM,EAC/B,OAAOC,CACV,CACD,SAASC,EAAef,EAAQ,CAI5B,IAAIgB,EAAU,QACd50C,EAAMiwC,EAAsD,EAAGn5B,EAAe,IAAIq7B,IAAsByB,EAAQgB,CAAO,CAC1H,CACD,GAAI,CAAC50C,EAAM,GAAI,CACXA,EAAM,GAAKs0C,IACX,IAAII,EAAYH,EAAmBv0C,EAAM,EAAE,EAC3C20C,EAAeD,EAAU/C,EAAS,EAAqBwC,EAAKvC,EAAoD,EAAC,EAGjH,IAAI15K,EAASpE,EAAO83J,EAAgB,GAA8B93J,EAAO83J,IAA4C,EAAG93J,EAAO83J,EAAgB,IAA+B,aAAe,aAC7LnL,GAAiB2N,EAASl2J,CAAM,CACnC,CAGD8nI,EAAM6wC,EAAwC,EAAG/8K,EAAO+8K,EAAwC,EAAG/8K,EAAO+8K,IAA0C,EAAG,OAGvJ,IAAIgE,EAAa/9B,EAAe,IAAIq9B,EAAKtC,EAA4D,GACrG,GAAIgD,EAAY,CACZA,EAAa,UAAUA,CAAU,EACjC,IAAIC,EAAmBD,EAAW,MAAMV,EAAKvC,EAAoD,GAC7FkD,EAAiB,CAAC,IAClB90C,EAAMqxC,EAAqB,EAAkCyD,EAAiB,CAAC,GAE/EA,EAAiBtkD,EAAiC,EAAG,GAAKskD,EAAiB,CAAC,IAC5E90C,EAAM6wC,EAAe,EAA4BiE,EAAiB,CAAC,EAE1E,CACD90C,EAAM,4BAA8B,SAAU+0C,EAAqBC,EAAWC,EAAe,CACrFA,IAAkB,SAAUA,EAAgB,IAEhD,IAAIC,EAAiB,CAAChB,GAAmBa,CAAmB,GAAMC,GAAa,CAACd,GAAmBc,CAAS,EAC5G,GAAIE,EAAgB,CAChB3zC,GAAe6sB,EAAS,EAAkC,GAA8D,+JACU,EAAI,EACtI,MACH,CAEDpuB,EAAMqxC,EAAoD,EAAG0D,EAC7D,IAAIF,EAAa70C,EAAMqxC,IACnB2D,IACAh1C,EAAM6wC,EAAwC,EAAGmE,EACjDH,EAAa,CAAC70C,EAAMqxC,EAAqB,EAAiCrxC,EAAM,SAAS,EAAE2xC,EAA6B,EAACwC,EAAKvC,EAAoD,IAElLqD,GAGAn+B,EAAe,IAAIq9B,EAAKtC,EAA4D,EAAE,UAAUgD,CAAU,CAAC,CAE/H,EAKY70C,EAAM,8BAAgC,UAAY,CAC9CA,EAAMqxC,EAAoD,EAAG,KAC7DrxC,EAAM6wC,EAAwC,EAAG,KACjD/5B,EAAe,IAAIq9B,EAAKtC,EAA4D,EACpG,EACY7xC,EAAMvO,IAAoC,SAAU+iD,EAAQ,CAExD,GAAIx0C,EAAM,KAAOw0C,GAAU,CAACx0C,EAAMiwC,EAAuB,EAAiC,CACtF,IAAIkF,EAAUX,GAAkBF,EAAc,EAC1Cc,EAAcb,EAAmBY,CAAO,EAC5CR,EAAeS,EAAYzD,EAAS,EAAqBwC,EAAKvC,EAAoD,EAAC,CACtH,CACjB,CACA,CAAS,CACJ,CAID,OAAAuC,EAAK,gBAAkB,IACvBA,EAAK,eAAiB,UACtBA,EAAK,mBAAqB,cACnBA,CACX,IC3HIkB,GAAS,MACTC,GAAU,OACd,SAASC,GAAankL,EAAQiG,EAAM,CAC5BjG,GAAUA,EAAOiG,CAAI,GAAK0gI,GAAQ3mI,EAAOiG,CAAI,CAAC,EAAEm5H,EAAiC,IAAK,GACtF,OAAOp/H,EAAOiG,CAAI,CAE1B,CACA,IAAIm+K,IAAkC,UAAY,CAC9C,SAASA,EAAiBp1C,EAAM91B,EAAemrE,EAAkB,CAC7D,IAAIhhL,EAAQ,KACR6sI,EAASlB,EAAK,OAClB,KAAK,MAAQ,UAAY,CAAE,OAAO,IAAK,EACvC,KAAK2wC,EAA+C,EAAG,UAAY,CAAE,OAAO,IAAK,EACjF1iD,GAAamnD,EAAkB,KAAM,SAAUx1C,EAAO,CAGlD,GAFAA,EAAM,YAAc,IAAI8vC,IACxB9vC,EAAM,SAAW,IAAI+xC,IAASznE,CAAa,EACvCwyB,GAAS,EAAI,CACbkD,EAAMgwC,EAAoB,EAAiC,IAAIkC,IAAgB5nE,EAAe81B,CAAI,EAClGJ,EAAM,OAAS,IAAI+vC,IACnB/vC,EAAM,SAAW,IAAIn5C,IACrBm5C,EAAM,KAAO,IAAIm0C,IAAK7pE,EAAe81B,CAAI,EACzC,IAAI+L,EAAU,OACV8nC,EAAW,OACX/7K,EACAu9K,IACAtpC,EAAUspC,EAAiB,aAC3BxB,EAAWwB,EAAiB,YAC5Bv9K,EAASu9K,EAAiB,WAE9Bz1C,EAAMowC,EAAkD,EAAG,IAAI4D,IAAe7nC,EAAS8nC,EAAU/7K,EAAQopI,CAAM,EAC/GtB,EAAM,QAAU,IAAIiyC,EACvB,CACDjyC,EAAM+wC,EAAmB,EAA+B,UAAY,CAChE,IAAIwB,EAAUvyC,EAAM,QAChB01C,EAAQ,KAEZ,GAAInD,GAAWn8C,GAASm8C,EAAQ,EAAE,EAC9BmD,EAAQnD,EAAQ,OAEf,CAED,IAAIoD,GAAe31C,EAAMgwC,EAAoB,GAAkC,IAAIoB,IACnFsE,EAAQC,GAAev/C,GAASu/C,EAAY,EAAE,EAAIA,EAAY,GAAK,IACtE,CACD,OAAOD,CACvB,EACY11C,EAAMqwC,EAA0B,EAAsC,SAAU9/G,EAAKqgF,EAAS,CAC1Fz8H,GAAS0kH,GAAYtoE,EAAI,IAAKw6F,GAAW,MAAM,EAAG,QAAS/qB,EAAM+wC,IAAiD,EAAE36C,EAAQ,CAC5I,EACY4J,EAAM0wC,EAA0B,EAA6C,SAAUngH,EAAKqgF,EAAS,CACjGz8H,GAASo8C,EAAI,IAAKw6F,GAAW,MAAO/qB,EAAM,EAAE,CAC5D,EACYA,EAAMswC,EAA0B,EAA0C,SAAU//G,EAAKqgF,EAAS,CAC9F,IAAIglC,EAAc51C,EAAM,YACxB,GAAI41C,EAAa,CAEb,IAAIC,EAAOh9C,GAAYtoE,EAAK+kH,EAAO,EACnCnhK,GAAS0hK,EAAM7qB,GAAW,mBAAoB4qB,EAAY,IAAKx/C,EAAQ,EACvEjiH,GAAS0hK,EAAM7qB,GAAW,iBAAkB4qB,EAAY,MAAOx/C,EAAQ,CAC1E,CACjB,EACY4J,EAAMuwC,EAAyB,EAAqC,SAAUhgH,EAAKqgF,EAAS,CACxF,IAAIklC,EAAS91C,EAAM,OACnB,GAAI81C,EAAQ,CAER,IAAI7d,EAAYp/B,GAAYA,GAAYtoE,EAAK8kH,EAAM,EAAGtqB,GAAW,SAAS,EAC1E52I,GAAS8jJ,EAAW,UAAW6d,EAAO,GAAI1/C,EAAQ,EAClDjiH,GAAS8jJ,EAAW,KAAM6d,EAAO,GAAI1/C,EAAQ,EAC7CjiH,GAAS8jJ,EAAW,QAAS6d,EAAO,MAAO1/C,EAAQ,EACnDjiH,GAAS8jJ,EAAW,cAAe6d,EAAO,YAAa1/C,EAAQ,CAClE,CACjB,EACY4J,EAAM4wC,EAA0B,EAAuC,SAAUrgH,EAAKqgF,EAAS,CAC3F,IAAImlC,EAAW/1C,EAAM,SACrB,GAAI+1C,EAAU,CACV,IAAIF,EAAOh9C,GAAYtoE,EAAK+kH,EAAO,EACnCnhK,GAAS0hK,EAAM7qB,GAAW,qBAAsB+qB,EAAS,aAAc3/C,EAAQ,EAC/EjiH,GAAS0hK,EAAM7qB,GAAW,mBAAoB+qB,EAAS,WAAY3/C,EAAQ,GACvE7lE,EAAI,WAAaqvE,GAAoB,UAAYrvE,EAAI,WAAay4F,GAAS,YAC3E70I,GAAS0hK,EAAM7qB,GAAW,gBAAiB+qB,EAAS,WAAY3/C,EAAQ,EACxEjiH,GAAS0hK,EAAM7qB,GAAW,eAAgB+qB,EAAS,OAAQ3/C,EAAQ,EAE1E,CACjB,EACY4J,EAAM2wC,EAA0B,EAAuC,SAAUpgH,EAAKqgF,EAAS,CAC3F,IAAI/pE,EAAWpyE,EAAM,SACjBoyE,GACA1yD,GAAS0kH,GAAYtoE,EAAK+kH,GAAS,CAAE,GAAGtqB,GAAW,WAAYnkF,EAAS,GAAIuvD,EAAQ,CAExG,EACY4J,EAAMwwC,EAA0B,EAAwC,SAAUjgH,EAAKqgF,EAAS,CAC5F,IAAI+T,EAAiB3kB,EAAMowC,IAC3B,GAAIzrB,EAAgB,CAChB,IAAI4T,EAAW1/B,GAAYA,GAAYtoE,EAAK8kH,EAAM,EAAGtqB,GAAW,SAAU,CAAE,QAAS,OAAW,SAAU,MAAW,GACrH52I,GAASokJ,EAAU,UAAW5T,EAAe,QAASvuB,GAAUL,EAAiB,EACjF5hH,GAASokJ,EAAU,OAAQ5T,EAAe,KAAMvuB,GAAUL,EAAiB,EAC3E5hH,GAASokJ,EAAU,WAAY5T,EAAe,SAAUvuB,GAAUL,EAAiB,CACtF,CACjB,EACYiK,EAAM,gBAAkB,SAAUzvE,EAAKqgF,EAAS,CAC5C,IAAIsnB,EAAMzjK,EAAM,IACZyjK,GACA/jJ,GAAS0kH,GAAYtoE,EAAK8kH,EAAM,EAAGtqB,GAAW,OAAQmN,CAAG,CAE7E,EACYl4B,EAAMywC,EAAuB,EAAmC,SAAUlgH,EAAKqgF,EAAS,CACpF,IAAIolC,EAAOh2C,EAAM,KACjB,GAAIg2C,EAAM,CACN,IAAIH,EAAOh9C,GAAYtoE,EAAK+kH,GAAS,CAAE,GAEvCnhK,GAAS0hK,EAAM7qB,GAAW,cAAegrB,EAAKnF,EAAe,EAA2Bz6C,EAAQ,EAEhG,IAAI2hC,EAAUl/B,GAAYA,GAAYtoE,EAAK8kH,EAAM,EAAGtqB,GAAW,OAAO,EACtE52I,GAAS4jJ,EAAS,KAAMie,EAAK,GAAI5/C,EAAQ,EACzCjiH,GAAS4jJ,EAAS,SAAUie,EAAK3E,EAAqB,EAAiCj7C,EAAQ,CAClG,CACjB,EACY4J,EAAM,QAAU,SAAUzvE,EAAKqgF,EAAS,CACpC,IAAIgC,EAAMriF,EAAI,IACVqiF,IACA2iC,GAAa3iC,EAAKmY,GAAW,SAAS,EACtCwqB,GAAa3iC,EAAKmY,GAAW,OAAO,EACpCwqB,GAAa3iC,EAAKmY,GAAW,MAAM,EACnCwqB,GAAa3iC,EAAKmY,GAAW,KAAK,EAClCwqB,GAAa3iC,EAAKmY,GAAW,MAAM,EACnCwqB,GAAa3iC,EAAKmY,GAAW,QAAQ,EAEzD,CACA,CAAS,CACJ,CAcD,OAAAyqB,EAAiB,QAAQ,EAElBA,CACX,ICvJIS,IAAkC,SAAU/xK,EAAQ,CACpDtT,GAAUqlL,EAAkB/xK,CAAM,EAClC,SAAS+xK,GAAmB,CACxB,IAAIxhL,EAAQyP,EAAO,KAAK,IAAI,GAAK,KACjCzP,EAAM,SAAW,IACjBA,EAAM,WAAaw2J,GACnB,IAAIirB,EACAC,EACAC,EACJ,OAAA/nD,GAAa4nD,EAAkBxhL,EAAO,SAAUurI,EAAOiV,EAAO,CAC1Dd,IACAnU,EAAM,WAAa,SAAUlsI,EAAQssI,EAAMlhD,EAAY4zD,EAAa,CAChEmC,EAAM,WAAWnhJ,EAAQssI,EAAMlhD,EAAY4zD,CAAW,EACtDqgB,EAAkBr/J,CAAM,CACxC,EAKYksI,EAAM,iBAAmB,SAAUx+H,EAAOovI,EAAS,CAC/C,GAAI,CAAA7a,GAAkBv0H,CAAK,EAGtB,CACDovI,EAAU5Q,EAAM,WAAW4Q,CAAO,EAE9BpvI,EAAM,OAASwnJ,GAAS,cACxBpY,EAAQ,UAAU,4BAEtB,IAAIylC,EAAcr2C,EAAM,SAAW,CAAE,EACjCq2C,EAAW,SAEP,OAAOr2C,EAAM,QAAQ,QAAQ,IAAO,UAAYq2C,EAAWrG,KAC3DqG,EAAWrG,EAAoB,EAA+Bv+C,EAAW,IAGjF,IAAI6kD,EAAUD,EAAW,KAKzB,GAJIC,GAAW,CAACA,EAAQrG,KACpBqG,EAAQ7kD,EAAiC,EAAC4kD,EAAW,KAAK,EAAE,EAEhEE,EAA0B/0K,EAAOovI,CAAO,EACpC0lC,GAAWA,EAAQpG,IAA2C,CAC9DoG,EAAQpG,EAAyC,EAAG,GACpD,IAAIzsK,EAAU,IAAIm8H,GAAoB,IAA0D3C,GAAY,GAAM,CAAE,GAAE,WAAa,IACnI+D,GAAoB4P,EAAQ,QAAS,EAAE,EAAmCntI,CAAO,CACpF,CACDu8H,EAAM,YAAYx+H,EAAOovI,CAAO,CACnC,CACjB,EACY5Q,EAAM,YAAc,SAAUoR,EAAWvB,EAAa,CAClD,IAAIzP,GAAQgR,GAAa,CAAE,GAAE,KAAI,EACjC,GAAIhR,GAAQA,EAAK+vC,IAA+C,CAC5D,IAAI12B,EAAWrZ,EAAK+vC,EAA6C,EAAC,EAAK,EACnE12B,IAAa08B,GACb/1C,EAAK,YAAYg2C,CAAiB,CAEzC,CACDjiC,GAChB,EACY,SAASA,GAAgB,CACrB+hC,EAAmB,KACnBC,EAAuB,KACvBC,EAAoB,IACvB,CACD,SAASjjB,EAAkBr/J,EAAQ,CAC/B,IAAIulF,EAAa2mD,EAAM,WACnBI,EAAOJ,EAAM,KACbjvD,EAAMw+D,GAA8B,KAAMz7I,EAAQssI,CAAI,EACtD91B,EAAgB2rE,EAAiB,mBACrCC,EAAmBA,GAAoB,GACvC3/C,GAAcjsB,EAAe,SAAUl+B,EAAOx6E,EAAO,CACjDskL,EAAiB9pG,CAAK,EAAI,UAAY,CAAE,OAAO2E,EAAI,UAAUsI,EAAYjN,EAAOx6E,EAAO,EAAE,CAC7G,CAAiB,EACDwkL,EAAoBh2C,EAAK+vC,EAA6C,EAAC,EAAK,EAC5EnwC,EAAM,QAAU,IAAIw1C,IAAiBp1C,EAAM81C,EAAkBE,CAAiB,EAC9ED,EAAuBzxB,GAAuC1kB,EAAM,QAAQowC,EAAoB,EAAgCgG,CAAiB,EACjJh2C,EAAK,YAAY+1C,CAAoB,EACrCn2C,EAAM,QAAQ,MAAQ,UAAY,CAC9B,IAAIw2C,EAAgBp2C,EAAK,UAAU8qB,EAAuB,EAC1D,OAAOsrB,EAAgBA,EAAc,OAAO,OAAY,IAC5E,EAEgBx2C,EAAM,WAAgBk2C,CACzB,CACD,SAASK,EAA0BhmH,EAAKqgF,EAAS,CAE7C/X,GAAYtoE,EAAK,OAAQ,EAAE,EAC3BsoE,GAAYtoE,EAAK,MAAO,EAAE,EAC1B,IAAIwgB,EAAMivD,EAAM,QAChBjvD,EAAIs/F,EAA0B,EAAoC9/G,EAAKqgF,CAAO,EAC9E7/D,EAAIu/F,EAA0B,EAAwC//G,EAAKqgF,CAAO,EAClF7/D,EAAIw/F,EAAyB,EAAmChgH,EAAKqgF,CAAO,EAC5E7/D,EAAIy/F,EAA0B,EAAsCjgH,EAAKqgF,CAAO,EAChF7/D,EAAI0/F,EAAuB,EAAiClgH,EAAKqgF,CAAO,EACxE7/D,EAAI2/F,EAA0B,EAA2CngH,EAAKqgF,CAAO,EACrF7/D,EAAI,gBAAgBxgB,EAAKqgF,CAAO,EAChC7/D,EAAI4/F,EAA0B,EAAqCpgH,EAAKqgF,CAAO,EAC/E7/D,EAAI6/F,EAA0B,EAAqCrgH,EAAKqgF,CAAO,EAC/E7/D,EAAI,QAAQxgB,EAAKqgF,CAAO,CAC3B,CACb,CAAS,EACMn8I,CACV,CACD,OAAAwhL,EAAiB,iBAAmB,UAAY,CAC5C,IAAIjiL,EACAkS,EACAuwK,EAAY,KACZnsE,GAAiBt2G,EAAK,CAClB,mBAAoB,UAAY,CAAE,OAAOkS,CAAe,CAC3D,EACDlS,EAAG68K,EAAqC,EAAG,UAAY,CAAE,OAAO4F,CAAY,EAC5EziL,EAAG,iBAAmB,UAAY,CAAE,MAAO,IAAK,GAAK,GAAO,EAC5DA,EAAG,mBAAqB,UAAY,CAAE,MAAO,IAAM,EACnDA,EAAG,oBAAsB,UAAY,CAAE,MAAO,IAAK,GAAK,GAAK,GAAO,EACpEA,EAAG09K,EAA2C,EAAG,UAAY,CAAE,OAAO+E,CAAY,EAClFziL,EAAG88K,EAA2C,EAAG,UAAY,CAAE,OAAO2F,CAAY,EAClFziL,EAAG,6BAA+B,UAAY,CAAE,MAAO,EAAQ,EAC/DA,EAAG,MAAQ,UAAY,CAAE,OAAOyiL,CAAY,EAC5CziL,EAAG+8K,EAA4C,EAAG,UAAY,CAAE,OAAO0F,CAAY,EACnFziL,EAAG43J,EAAuC,EAAG,UAAY,CAAE,OAAO1lJ,CAAe,EACjFlS,EAAGg9K,EAA2D,EAAG,UAAY,CAAE,OAAO9qK,CAAe,EACrGlS,EAAGi9K,EAAsD,EAAG,UAAY,CAAE,OAAO/qK,CAAe,EAChGlS,EAAGk9K,EAAmC,EAAG,UAAY,CAAE,MAAO,GAAK,EACnEl9K,EAAGm9K,EAAoC,EAAG,UAAY,CAAE,OAAOsF,CAAY,EAC3EziL,GACJ,OAAOs2G,CACf,EAGW2rE,CACX,EAAEpiC,EAAmB,EACrB,MAAA6iC,IAAeT,ICtIf,IAAIU,GAA8B,2BAC9BC,GAAS,QAEFC,GAAc,UACdC,IAAqB,eACrBC,IAAuB,iBACvBC,IAAsB,gBACtBC,GAAY,QACZC,IAAwB,kBACxBC,IAAuB,iBACvBC,IAAgC,0BAEhCC,GAAyB,mBACzBC,GAAiB,YACjBC,GAAoB,eACpBC,IAAkBZ,GAAS,QAC3Ba,IAAkBb,GAAS,QAC3Bc,IAAmBd,GAAS,SAC5Be,IAAsBf,GAAS,WAC/BgB,IAAsBhB,GAAS,YAC/BiB,IAA4BjB,GAAS,iBACrCkB,IAAqC,MAAQnB,GAC7CoB,IAAuC,QAAUpB,GCpBjDqB,IAA6B,2BAC7BC,IAAyB,kBACzBhiB,GAAoB,cAMpBiiB,GAA6B,wBAQ7BC,IAA8B,6BAC9BC,IAA8B,uBAM9B/nD,GAAc,SACdwyC,GAAe,UACf1yC,GAAY,OACZmD,GAAe,UACf+kD,GAAa,QACbC,GAAyB,mBACzBhoD,GAA2B,qBAC3BioD,GAAoB,cACpBC,GAA8B,gCAC9BC,GAA8B,0BAC9BC,GAAsB,gBACtBC,GAA8B,8BAC9B5mD,GAAgB,UChCvB6mD,GAGAC,GAAiC,CACjChC,GAAa,eAAgB,aAAc,kBAAmB,iBAAkB,gBACpF,EAsDIiC,IAAgC,UAAY,CAC5C,SAASA,EAAeC,EAAS,CAC7B,IAAItkL,EAAQ,KAERukL,EACA7nK,EACA8nK,EACAC,EACA1hC,EACA2hC,EACAC,EACJ/qD,GAAayqD,EAAgB,KAAM,SAAU94C,EAAO,CAChDmU,IAEA+kC,EAAkB,IAAMH,EAAQ,IAAMA,EAAQzlD,EAAY,GAA2B,IACrFylD,EAAQV,EAA+B,EAAGU,EAAQV,EAAU,GAAyB,GACrFU,EAAQzlD,EAAmC,EAAGylD,EAAQzlD,EAAY,GAA2B,EAC7F,IAAIx/H,EAASilL,EAAQ1oD,EAAW,GAA0B,GAC1D,GAAIv8H,EAAOwkL,IAAwD,CAC/D,IAAIe,EAAKv0B,GAAsBhxJ,EAAOwkL,EAAsD,GACxFgB,EAASD,EAAG,kBAChBvlL,EAAOmiK,EAAiB,EAA8BqjB,EAAUA,EAASz8B,GAAuB/oJ,EAAOmiK,IACvGniK,EAAOw8H,EAAwB,EAAqC+oD,EAAG,oBAAsBvlL,EAAOw8H,GACvG,CACD0P,EAAMu4C,EAAiB,EAA8B,IAAI/mB,IACzDrgJ,EAAa,IAAI8kK,IACjB+C,EAAe,IAAIO,IACnBN,EAAU,IAAI5b,IACd+b,EAAQ,IAAI1+B,GACZ1a,EAAM,KAAOo5C,EACb,IAAII,EAAuBzjD,GAAkBjiI,EAAO0kL,EAAwE,GAAI,GAAO1kL,EAAO0kL,IAC1I,CAAC1kL,EAAOwkL,EAAsD,GAAI,CAACkB,GACnEj4C,GAAe63C,EAAM,OAAQ,EAAmC,IAA6D,mEAAmE,EAEpMp5C,EAAM62C,EAAkC,EAAGkC,EAC3C/4C,EAAM3P,EAAiC,EAAGv8H,EAC1C2lL,IACAz5C,EAAMi3C,IAAiC,SAAU1/I,EAAO,CAChDA,IAAU,SAAUA,EAAQ,IAChCkrG,GAAO22C,EAAO,UAAY,CAAE,MAAO,aAAgB,EAAE,UAAY,CAC7D7hD,GAAW6hD,EAAMX,IAAoE,EAAE,SAAUtmC,EAAU,CACvG5a,GAAW4a,EAAU,SAAUiI,EAAS,CACpCA,EAAQ68B,IAA+B1/I,CAAK,CACxE,CAAyB,CACzB,CAAqB,CACrB,EAAmB,KAAMA,CAAK,CAC9B,EACYyoG,EAAM04C,IAAmD,SAAUnhJ,EAAO,CAClEA,IAAU,SAAUA,EAAQ,IAChCggG,GAAW6hD,EAAMX,IAAoE,EAAE,SAAUtmC,EAAU,CACvG5a,GAAW4a,EAAU,SAAUiI,EAAS,CAChCA,EAAQs+B,IACRt+B,EAAQs+B,EAAmB,IAG3Bt+B,EAAQ68B,IAA+B1/I,CAAK,CAExE,CAAqB,CACrB,CAAiB,CACjB,EACYyoG,EAAMi4C,GAAqD,EAAG,SAAUyB,EAAYp4C,EAAQsW,EAAqB,CACzG8hC,IAAe,SAAUA,EAAa,IAC1C,SAASC,EAAyBZ,EAAS,CACvC,GAAIA,EAAS,CACT,IAAIa,EAAa,GACZ7jD,GAAkBmjD,CAAe,IAClCU,GAAcV,GAEdQ,IACAE,GAAc,OAEd55C,EAAM6iC,EAAmC,GAAI7iC,EAAM6iC,EAAY,EAAwB,WACvF7iC,EAAM6iC,EAAY,EAAwB,SAAS,WAAa+W,GAAc,KAGlFrjD,GAAcyJ,EAAO,SAAU5zD,EAAOx6E,EAAO,CACrCwkI,GAAShqD,CAAK,GACd,CAAC8pD,GAAWtkI,CAAK,GACjBw6E,GAASA,EAAM,CAAC,IAAM,KACtBorD,GAAWqhD,GAAgCzsG,CAAK,IAAM,KACtD2sG,EAAQ3sG,CAAK,EAAIx6E,EAEjD,CAAyB,CACJ,CACJ,CAED,OAAI8nL,GAAc15C,EAAM3P,EAAW,EAAuB,YAAc2P,EAAM3P,IAAkC,WAAW,OAAS,GAChI4I,GAAW,uCAAuC,EAEtDwJ,GAAOzC,EAAM,KAAM,UAAY,CAAE,MAAO,uBAAwB,EAAI,UAAY,CAC5E,IAAI9gD,EAAa,GACjBA,EAAWixC,IAA8B8oD,CAAO,EAChD/5F,EAAWixC,IAA8Bh/G,CAAU,EACnD+tE,EAAWixC,IAA8B6oD,CAAY,EACrD95F,EAAWixC,EAA6B,EAAC6P,EAAMu4C,EAA4C,GAE3Fa,EAAM,WAAWp5C,EAAM3P,EAAiC,EAAEnxC,EAAYoiD,EAAQsW,CAAmB,EACjG5X,EAAM6iC,EAAY,EAA0B1xJ,EAAW0xJ,EAAY,EAC/D+V,IAAmB54C,EAAM6iC,MACzB7iC,EAAM6iC,EAAmC,EAAC,SAAS,OAAS+V,IAEhEe,EAAyB35C,EAAM62C,EAAW,CAAuB,EAEjE72C,EAAM,WAAU,EAChBA,EAAMq3C,EAAsB,IAC5Br3C,EAAM24C,IAAuElkL,CAAK,CACtG,CAAiB,EACMurI,CACvB,EACYA,EAAMg4C,KAAqE,SAAUe,EAAS,CAG1F1/C,GAAY0/C,EAAS/4C,EAAO,SAAU3oI,EAAM,CAExC,OAAOA,GAAQmgI,GAAWqhD,GAAgCxhL,CAAI,IAAM,EACxF,CAAiB,CACjB,EACY2oI,EAAM,WAAa,UAAY,CAE3B,GAAI,CACA,GAAIlqH,GAAQkqH,EAAM,QAAQq4C,EAA+B,GAAG,CAGxD,QADIwB,EAAW75C,EAAM,QAAQq4C,EAAU,EAAsB,OACpDrnL,EAAI,EAAGA,EAAI6oL,EAAU7oL,IAAK,CAC/B,IAAI8oL,EAAO95C,EAAM,QAAQq4C,EAA+B,EAACrnL,CAAC,EAC1D8oL,GACH,CACD95C,EAAM,QAAQq4C,EAA+B,EAAG,OAChD,OAAOr4C,EAAM,QAAQq4C,GACxB,CACJ,OACM32B,EAAW,CACd,IAAInwI,EAAe,GACfmwI,GAAaxrB,GAAWwrB,EAAU,QAAQ,IAC1CnwI,EAAa,UAAYmwI,EAAU,WAQ1C,CACjB,EACY1hB,EAAM24C,IAAyE,SAAUoB,EAAqB,CAE1G,GAAIj9C,GAAS,GAAMC,KAAe,CAC9B,IAAIi9C,EAAsB,UAAY,CAWlC,GAHAD,EAAoBrB,IAAiD,EAAK,EAGtExiD,GAAWzhI,EAAM,KAAK6iL,EAAuC,GAAG,CAChE,IAAI2C,EAAexlL,EAAM,KAAK6iL,EAAuC,EAACrsB,EAA0B,EAChG,GAAIgvB,EAAc,CACd,IAAIC,EAAmBD,EAAa,OAChCC,GAAoBA,EAAiBrX,EAAY,GAA2BqX,EAAiBrX,EAAmC,EAAC,iBACjIqX,EAAiBrX,EAAY,EAAwB,gBAAgB,OAAM,CAElF,CACJ,CACzB,EACwBh4B,EAAQ,GACRsvC,EAA0BJ,EAAoB,YAAY1pD,EAAW,EAAuB,wBAC3F8oD,IACDA,EAAyBnvC,GAAkBwN,EAAe4hC,EAAM7B,EAAiB,GAAgC6B,EAAM7B,EAA6C,GAAE,GAErKwC,EAAoB,YAAY,OAAO5B,GAA2B,IAG/DntC,GAA2BgvC,EAAqBG,EAAyBhB,CAAsB,IAC/FtuC,EAAQ,IAGRK,GAAyB8uC,EAAqBG,EAAyBhB,CAAsB,IAC7FtuC,EAAQ,IAIR,CAACA,GAAS,CAACjN,MACX2D,GAAew4C,EAAoBxB,IAA6C,KAAK,OAAQ,EAAmC,GAAkE,qDAAqD,GAG3P,CAAC1tC,GAAS,CAACkvC,EAAoB,YAAY,OAAO3B,MAElDltC,GAAyB8uC,EAAqBG,EAAyBhB,CAAsB,CAEpG,CACjB,EACYn5C,EAAM,UAAY,UAAY,CAC1B,OAAOi5C,CACvB,EACYj5C,EAAM,OAAS,SAAU+B,EAAS0W,EAAgBxF,EAAW,CACzDjT,EAAM04C,IAAiD32C,CAAO,EAE1Do3C,IACAluC,GAA8B,KAAMkuC,CAAsB,EAC1D9tC,GAA4B,KAAM8tC,CAAsB,GAE5DC,EAAM,QAAUA,EAAM,OAAOr3C,EAAS0W,EAAgBxF,CAAS,CAC/E,EACYxZ,GAAeuG,EAAOA,EAAMu4C,IAA8C,CACtEzB,IACAU,IACAG,IACA,2BACAC,IACA,WACAH,IACAC,IACAX,IACAC,IACAE,IACAC,GAChB,CAAa,EACD19C,GAAeuG,EAAOo6C,EAAyB,CAC3CvC,IACA,wBACA,0BAChB,CAAa,EACDp+C,GAAeuG,EAAOo5C,EAAO,CACzBhC,IACAC,GACA,0BACAC,GACA,YACAC,GACA,cACA,aAChB,CAAa,EACD99C,GAAeuG,EAAO,UAAY,CAC9B,IAAI57H,EAAU+M,EAAW0xJ,IACzB,OAAOz+J,EAAUA,EAAQ,KAAO,IAChD,EAAe,CACC0zK,IACAC,GAChB,CAAa,EACD,SAAS0B,GAAkB,CACvBz5C,EAAM,OAAOk4C,EAA+D,EACxEl4C,EAAM,OAAOk4C,EAA+D,GAAIl4C,EAAM3P,EAAW,EAAuB6nD,IAAkE,EAAIl4C,EAAM3P,EAAiC,EAAC6nD,EAA0B,EAAwC,GAC/S,CAED,SAASkC,GAA0B,CAC/B,OAAOpB,CACV,CACD,SAAS7kC,GAAgB,CACrBqD,EAAgBhT,GAAsB,OAAO,EAC7C20C,EAAyB,KACzBH,EAAe,KACf7nK,EAAa,KACb8nK,EAAU,KACVC,EAAkB,IACrB,CACb,CAAS,CACJ,CA4CD,OAAAJ,EAAe,UAAU,yBAA2B,SAAUxM,EAAuB,CACjF,OAAO,IACf,EAEWwM,CACX,EAAC,GAGA,UAAY,CACT,IAAIuB,EAAS,KACTC,EAAW,GACXC,EAAO,CACP,2BACA,4BACR,EACI,GAAI,CAGA,IAAIC,GAAS,UAAY,IAAI,cACzBA,IACAH,EAASG,EAAM,IAQtB,MACS,CAET,CACD,GAAIH,EACA,GAAI,CACA,IAAIl1J,EAAMk1J,EAAO,cACjB,GAAIl1J,GAEA,QADIuiB,EAAM,GACD1G,EAAM,EAAGA,EAAMu5I,EAAK,OAAQv5I,IACjC,GAAI7b,EAAI4sG,IAAqCwoD,EAAKv5I,CAAG,CAAC,IAAM,GAAI,CAC5D0G,EAAM,OAAS1G,EAAM,GACjB7b,EAAI4sG,EAAa,EAAwB,WAAW,IAAM,KACtD5sG,EAAI4sG,EAAa,EAAwB,QAAQ,IAAM,GACvDrqF,GAAO,QAEFviB,EAAI4sG,EAAa,EAAwB,QAAQ,IAAM,KAC5DrqF,GAAO,UAGfkxI,GAAkBlxI,GAAO4yI,EAAW,OAAS,IAC7C,KACH,EAGZ,MACS,CAET,CAET,GAAI,ECrbG,MAAM5qC,GAAM,CAElB,YAAa,uCAEb,YAAa,uCAEb,qBAAsB,uCAEtB,SAAU,OAEV,sBAAuB,6BAEvB,kBAAmB,kCAEnB,kBAAmB,kDAEnB,oBAAqB,yCAIrB,sBAAuB,0CAEvB,qBAAsB,8BAEtB,mBAAoB,wCAEpB,yBAA0B,sDAE1B,SAAU,SAAS,MAA+B,EAElD,gBAAiB,wCAClB,EC5Baoe,GAAc,IAAI2sB,IAAoB,CAClD,OAAQ,CACP,mBAAoB/qC,GAAI,qBACxB,sBAAuB,GACvB,wCAAyC,EAC1C,CACD,CAAC,EACDoe,GAAY,gBAAgB,EAO5BA,GAAY,wBAAyB+F,GAAa,CAC5CA,EAAS,OACbA,EAAS,KAAO,IAGRA,EAAA,KAAK,eAAe,EAAI,iBAClC,CAAC,ECvBD,6CAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAgBA,IAAIljK,GAAgB,SAASloB,EAAGV,EAAG,CAC/B4oB,UAAgB,OAAO,gBAClB,CAAE,UAAW,cAAgB,OAAS,SAAUloB,EAAGV,EAAG,CAAEU,EAAE,UAAYV,CAAE,GACzE,SAAUU,EAAGV,EAAG,CAAE,QAAShB,KAAKgB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhB,CAAC,IAAG0B,EAAE1B,CAAC,EAAIgB,EAAEhB,CAAC,IAC1F4pB,GAAcloB,EAAGV,CAAC,CAC7B,EAEA,SAAS6oB,GAAUnoB,EAAGV,EAAG,CACrB4oB,GAAcloB,EAAGV,CAAC,EAClB,SAAS8oB,GAAK,CAAE,KAAK,YAAcpoB,CAAI,CACvCA,EAAE,UAAYV,IAAM,KAAO,OAAO,OAAOA,CAAC,GAAK8oB,EAAG,UAAY9oB,EAAE,UAAW,IAAI8oB,EACnF,CAEA,IAAIC,GAAW,UAAW,CACtBA,UAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,QAASC,EAAGC,EAAI,EAAGlqB,EAAI,UAAU,OAAQkqB,EAAIlqB,EAAGkqB,IAAK,CACjDD,EAAI,UAAUC,CAAC,EACf,QAASjqB,KAAKgqB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhqB,CAAC,IAAG,EAAEA,CAAC,EAAIgqB,EAAEhqB,CAAC,EAC9E,CACD,OAAO,CACf,EACW+pB,GAAS,MAAM,KAAM,SAAS,CACzC,EAEA,SAASG,GAAOF,EAAG/oB,EAAG,CAClB,IAAId,EAAI,GACR,QAASH,KAAKgqB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhqB,CAAC,GAAKiB,EAAE,QAAQjB,CAAC,EAAI,IAC9EG,EAAEH,CAAC,EAAIgqB,EAAEhqB,CAAC,GACd,GAAIgqB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAS,EAAI,EAAGhqB,EAAI,OAAO,sBAAsBgqB,CAAC,EAAG,EAAIhqB,EAAE,OAAQ,IAC3DiB,EAAE,QAAQjB,EAAE,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKgqB,EAAGhqB,EAAE,CAAC,CAAC,IACzEG,EAAEH,EAAE,CAAC,CAAC,EAAIgqB,EAAEhqB,EAAE,CAAC,CAAC,GAE5B,OAAOG,CACX,CAEA,SAASqqB,EAAUC,EAASC,EAAYtoB,EAAGuoB,EAAW,CAClD,SAASC,EAAMC,EAAO,CAAE,OAAOA,aAAiBzoB,EAAIyoB,EAAQ,IAAIzoB,EAAE,SAAU0oB,EAAS,CAAEA,EAAQD,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAKzoB,IAAMA,EAAI,UAAU,SAAU0oB,EAASC,EAAQ,CACvD,SAASC,EAAUH,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,KAAKE,CAAK,CAAC,CAAE,OAAU5pB,EAAG,CAAE8pB,EAAO9pB,CAAC,EAAM,CAC3F,SAASiqB,EAASL,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,MAASE,CAAK,CAAC,CAAI,OAAQ5pB,EAAG,CAAE8pB,EAAO9pB,CAAC,EAAM,CAC9F,SAASgqB,EAAKE,EAAQ,CAAEA,EAAO,KAAOL,EAAQK,EAAO,KAAK,EAAIP,EAAMO,EAAO,KAAK,EAAE,KAAKH,EAAWE,CAAQ,CAAI,CAC9GD,GAAMN,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAE,IAAG,KAAI,CAAE,CAC5E,CAAK,CACL,CAEA,SAASU,GAAYX,EAASY,EAAM,CAChC,IAAIC,EAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAInrB,EAAE,CAAC,EAAI,EAAG,MAAMA,EAAE,CAAC,EAAG,OAAOA,EAAE,CAAC,CAAI,EAAE,KAAM,CAAE,EAAE,IAAK,EAAI,EAAE4B,EAAGvB,EAAGL,EAAG2B,EAC/G,OAAOA,EAAI,CAAE,KAAMypB,EAAK,CAAC,EAAG,MAASA,EAAK,CAAC,EAAG,OAAUA,EAAK,CAAC,CAAG,EAAE,OAAO,QAAW,aAAezpB,EAAE,OAAO,QAAQ,EAAI,UAAW,CAAE,OAAO,IAAO,GAAGA,EACvJ,SAASypB,EAAKxrB,EAAG,CAAE,OAAO,SAAUM,EAAG,CAAE,OAAO4qB,EAAK,CAAClrB,EAAGM,CAAC,CAAC,CAAI,CAAG,CAClE,SAAS4qB,EAAKO,EAAI,CACd,GAAIzpB,EAAG,MAAM,IAAI,UAAU,iCAAiC,EAC5D,KAAOupB,GAAG,GAAI,CACV,GAAIvpB,EAAI,EAAGvB,IAAML,EAAIqrB,EAAG,CAAC,EAAI,EAAIhrB,EAAE,OAAYgrB,EAAG,CAAC,EAAIhrB,EAAE,SAAcL,EAAIK,EAAE,SAAcL,EAAE,KAAKK,CAAC,EAAG,GAAKA,EAAE,OAAS,EAAEL,EAAIA,EAAE,KAAKK,EAAGgrB,EAAG,CAAC,CAAC,GAAG,KAAM,OAAOrrB,EAE3J,OADIK,EAAI,EAAGL,IAAGqrB,EAAK,CAACA,EAAG,CAAC,EAAI,EAAGrrB,EAAE,KAAK,GAC9BqrB,EAAG,CAAC,EAAC,CACT,IAAK,GAAG,IAAK,GAAGrrB,EAAIqrB,EAAI,MACxB,IAAK,GAAG,OAAAF,EAAE,QAAgB,CAAE,MAAOE,EAAG,CAAC,EAAG,KAAM,EAAK,EACrD,IAAK,GAAGF,EAAE,QAAS9qB,EAAIgrB,EAAG,CAAC,EAAGA,EAAK,CAAC,CAAC,EAAG,SACxC,IAAK,GAAGA,EAAKF,EAAE,IAAI,MAAOA,EAAE,KAAK,IAAG,EAAI,SACxC,QACI,GAAMnrB,EAAImrB,EAAE,KAAM,EAAAnrB,EAAIA,EAAE,OAAS,GAAKA,EAAEA,EAAE,OAAS,CAAC,KAAOqrB,EAAG,CAAC,IAAM,GAAKA,EAAG,CAAC,IAAM,GAAI,CAAEF,EAAI,EAAG,QAAW,CAC5G,GAAIE,EAAG,CAAC,IAAM,IAAM,CAACrrB,GAAMqrB,EAAG,CAAC,EAAIrrB,EAAE,CAAC,GAAKqrB,EAAG,CAAC,EAAIrrB,EAAE,CAAC,GAAK,CAAEmrB,EAAE,MAAQE,EAAG,CAAC,EAAG,KAAQ,CACtF,GAAIA,EAAG,CAAC,IAAM,GAAKF,EAAE,MAAQnrB,EAAE,CAAC,EAAG,CAAEmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAGA,EAAIqrB,EAAI,KAAQ,CACrE,GAAIrrB,GAAKmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAG,CAAEmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAGmrB,EAAE,IAAI,KAAKE,CAAE,EAAG,KAAQ,CAC/DrrB,EAAE,CAAC,GAAGmrB,EAAE,IAAI,IAAG,EACnBA,EAAE,KAAK,IAAK,EAAE,QACrB,CACDE,EAAKH,EAAK,KAAKZ,EAASa,CAAC,CAC5B,OAAQrqB,EAAG,CAAEuqB,EAAK,CAAC,EAAGvqB,CAAC,EAAGT,EAAI,CAAE,QAAW,CAAEuB,EAAI5B,EAAI,CAAI,CAC1D,GAAIqrB,EAAG,CAAC,EAAI,EAAG,MAAMA,EAAG,CAAC,EAAG,MAAO,CAAE,MAAOA,EAAG,CAAC,EAAIA,EAAG,CAAC,EAAI,OAAQ,KAAM,GAC7E,CACL,CAEA,SAASG,IAAOD,EAAG3rB,EAAG,CAClB,IAAIiC,EAAI,OAAO,QAAW,YAAc0pB,EAAE,OAAO,QAAQ,EACzD,GAAI,CAAC1pB,EAAG,OAAO0pB,EACf,IAAIzB,EAAIjoB,EAAE,KAAK0pB,CAAC,EAAGxrB,EAAG0rB,EAAK,CAAE,EAAE3qB,EAC/B,GAAI,CACA,MAAQlB,IAAM,QAAUA,KAAM,IAAM,EAAEG,EAAI+pB,EAAE,KAAM,GAAE,MAAM2B,EAAG,KAAK1rB,EAAE,KAAK,CAC5E,OACM2rB,EAAO,CAAE5qB,EAAI,CAAE,MAAO4qB,CAAO,CAAG,QAC/B,CACJ,GAAI,CACI3rB,GAAK,CAACA,EAAE,OAAS8B,EAAIioB,EAAE,SAAYjoB,EAAE,KAAKioB,CAAC,CAClD,QACO,CAAE,GAAIhpB,EAAG,MAAMA,EAAE,KAAQ,CACpC,CACD,OAAO2qB,CACX,CAEA,SAAS+nL,IAAW,CAChB,QAAS/nL,EAAK,GAAI3B,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAC3C2B,EAAKA,EAAG,OAAOD,IAAO,UAAU1B,CAAC,CAAC,CAAC,EACvC,OAAO2B,CACX,CCjHA,4CAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAgBA,IAAIhC,GAAgB,SAASloB,EAAGV,EAAG,CAC/B,OAAA4oB,GAAgB,OAAO,gBAClB,CAAE,UAAW,cAAgB,OAAS,SAAUloB,EAAGV,EAAG,CAAEU,EAAE,UAAYV,CAAE,GACzE,SAAUU,EAAGV,EAAG,CAAE,QAAShB,KAAKgB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhB,CAAC,IAAG0B,EAAE1B,CAAC,EAAIgB,EAAEhB,CAAC,IAC1F4pB,GAAcloB,EAAGV,CAAC,CAC7B,EAEA,SAAS6oB,GAAUnoB,EAAGV,EAAG,CACrB4oB,GAAcloB,EAAGV,CAAC,EAClB,SAAS8oB,GAAK,CAAE,KAAK,YAAcpoB,CAAI,CACvCA,EAAE,UAAYV,IAAM,KAAO,OAAO,OAAOA,CAAC,GAAK8oB,EAAG,UAAY9oB,EAAE,UAAW,IAAI8oB,EACnF,CAEA,IAAIC,GAAW,UAAW,CACtB,OAAAA,GAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,QAASC,EAAGC,EAAI,EAAGlqB,EAAI,UAAU,OAAQkqB,EAAIlqB,EAAGkqB,IAAK,CACjDD,EAAI,UAAUC,CAAC,EACf,QAASjqB,KAAKgqB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGhqB,CAAC,IAAG,EAAEA,CAAC,EAAIgqB,EAAEhqB,CAAC,EAC9E,CACD,OAAO,CACf,EACW+pB,GAAS,MAAM,KAAM,SAAS,CACzC,EAEA,SAASS,GAAUC,EAASC,EAAYtoB,EAAGuoB,EAAW,CAClD,SAASC,EAAMC,EAAO,CAAE,OAAOA,aAAiBzoB,EAAIyoB,EAAQ,IAAIzoB,EAAE,SAAU0oB,EAAS,CAAEA,EAAQD,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAKzoB,IAAMA,EAAI,UAAU,SAAU0oB,EAASC,EAAQ,CACvD,SAASC,EAAUH,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,KAAKE,CAAK,CAAC,CAAE,OAAU5pB,EAAG,CAAE8pB,EAAO9pB,CAAC,EAAM,CAC3F,SAASiqB,EAASL,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,MAASE,CAAK,CAAC,CAAI,OAAQ5pB,EAAG,CAAE8pB,EAAO9pB,CAAC,EAAM,CAC9F,SAASgqB,EAAKE,EAAQ,CAAEA,EAAO,KAAOL,EAAQK,EAAO,KAAK,EAAIP,EAAMO,EAAO,KAAK,EAAE,KAAKH,EAAWE,CAAQ,CAAI,CAC9GD,GAAMN,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAE,IAAG,KAAI,CAAE,CAC5E,CAAK,CACL,CAEA,SAASU,GAAYX,EAASY,EAAM,CAChC,IAAIC,EAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAInrB,EAAE,CAAC,EAAI,EAAG,MAAMA,EAAE,CAAC,EAAG,OAAOA,EAAE,CAAC,CAAI,EAAE,KAAM,CAAE,EAAE,IAAK,EAAI,EAAE4B,EAAGvB,EAAGL,EAAG2B,EAC/G,OAAOA,EAAI,CAAE,KAAMypB,EAAK,CAAC,EAAG,MAASA,EAAK,CAAC,EAAG,OAAUA,EAAK,CAAC,CAAG,EAAE,OAAO,QAAW,aAAezpB,EAAE,OAAO,QAAQ,EAAI,UAAW,CAAE,OAAO,IAAO,GAAGA,EACvJ,SAASypB,EAAKxrB,EAAG,CAAE,OAAO,SAAUM,EAAG,CAAE,OAAO4qB,EAAK,CAAClrB,EAAGM,CAAC,CAAC,CAAI,CAAG,CAClE,SAAS4qB,EAAKO,EAAI,CACd,GAAIzpB,EAAG,MAAM,IAAI,UAAU,iCAAiC,EAC5D,KAAOupB,GAAG,GAAI,CACV,GAAIvpB,EAAI,EAAGvB,IAAML,EAAIqrB,EAAG,CAAC,EAAI,EAAIhrB,EAAE,OAAYgrB,EAAG,CAAC,EAAIhrB,EAAE,SAAcL,EAAIK,EAAE,SAAcL,EAAE,KAAKK,CAAC,EAAG,GAAKA,EAAE,OAAS,EAAEL,EAAIA,EAAE,KAAKK,EAAGgrB,EAAG,CAAC,CAAC,GAAG,KAAM,OAAOrrB,EAE3J,OADIK,EAAI,EAAGL,IAAGqrB,EAAK,CAACA,EAAG,CAAC,EAAI,EAAGrrB,EAAE,KAAK,GAC9BqrB,EAAG,CAAC,EAAC,CACT,IAAK,GAAG,IAAK,GAAGrrB,EAAIqrB,EAAI,MACxB,IAAK,GAAG,OAAAF,EAAE,QAAgB,CAAE,MAAOE,EAAG,CAAC,EAAG,KAAM,EAAK,EACrD,IAAK,GAAGF,EAAE,QAAS9qB,EAAIgrB,EAAG,CAAC,EAAGA,EAAK,CAAC,CAAC,EAAG,SACxC,IAAK,GAAGA,EAAKF,EAAE,IAAI,MAAOA,EAAE,KAAK,IAAG,EAAI,SACxC,QACI,GAAMnrB,EAAImrB,EAAE,KAAM,EAAAnrB,EAAIA,EAAE,OAAS,GAAKA,EAAEA,EAAE,OAAS,CAAC,KAAOqrB,EAAG,CAAC,IAAM,GAAKA,EAAG,CAAC,IAAM,GAAI,CAAEF,EAAI,EAAG,QAAW,CAC5G,GAAIE,EAAG,CAAC,IAAM,IAAM,CAACrrB,GAAMqrB,EAAG,CAAC,EAAIrrB,EAAE,CAAC,GAAKqrB,EAAG,CAAC,EAAIrrB,EAAE,CAAC,GAAK,CAAEmrB,EAAE,MAAQE,EAAG,CAAC,EAAG,KAAQ,CACtF,GAAIA,EAAG,CAAC,IAAM,GAAKF,EAAE,MAAQnrB,EAAE,CAAC,EAAG,CAAEmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAGA,EAAIqrB,EAAI,KAAQ,CACrE,GAAIrrB,GAAKmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAG,CAAEmrB,EAAE,MAAQnrB,EAAE,CAAC,EAAGmrB,EAAE,IAAI,KAAKE,CAAE,EAAG,KAAQ,CAC/DrrB,EAAE,CAAC,GAAGmrB,EAAE,IAAI,IAAG,EACnBA,EAAE,KAAK,IAAK,EAAE,QACrB,CACDE,EAAKH,EAAK,KAAKZ,EAASa,CAAC,CAC5B,OAAQrqB,EAAG,CAAEuqB,EAAK,CAAC,EAAGvqB,CAAC,EAAGT,EAAI,CAAE,QAAW,CAAEuB,EAAI5B,EAAI,CAAI,CAC1D,GAAIqrB,EAAG,CAAC,EAAI,EAAG,MAAMA,EAAG,CAAC,EAAG,MAAO,CAAE,MAAOA,EAAG,CAAC,EAAIA,EAAG,CAAC,EAAI,OAAQ,KAAM,GAC7E,CACL,CAEA,SAASooL,IAAiB,CACtB,QAAS5pL,EAAI,EAAGC,EAAI,EAAG/B,EAAK,UAAU,OAAQ+B,EAAI/B,EAAI+B,IAAKD,GAAK,UAAUC,CAAC,EAAE,OAC7E,QAAS/pB,EAAI,MAAM8pB,CAAC,EAAGpoB,EAAI,EAAGqoB,EAAI,EAAGA,EAAI/B,EAAI+B,IACzC,QAAStpB,EAAI,UAAUspB,CAAC,EAAGupF,EAAI,EAAGrrF,EAAKxnB,EAAE,OAAQ6yG,EAAIrrF,EAAIqrF,IAAK5xG,IAC1D1B,EAAE0B,CAAC,EAAIjB,EAAE6yG,CAAC,EAClB,OAAOtzG,CACX,CCtFA,4CAQA,IAAI2zM,EAAY,CACZ,aAAc,UACd,IAAK,iBAEL,aAAc,OAEd,kBAAmB,4CACnB,uBAAwB,4BACxB,sBAAuB,SAEvB,KAAM,OACN,KAAM,SAEN,6BAA8B,sGAE9B,eAAgB,IAEhB,WAAY,aAEZ,OAAQ,SAER,cAAe,uCAEf,aAAc,SACd,cAAe,UACf,qBAAsB,iBACtB,YAAa,QAEb,mBAAoB,OACpB,gBAAiB,qBACjB,cAAe,gBACf,uBAAwB,WACxB,2BAA4B,OAC5B,sBAAuB,kDACvB,sBAAuB,wBACvB,YAAa,cACb,aAAc,GACd,eAAgB,MAChB,cAAe,IACf,cAAe,4DACf,aAAc,aACd,aAAc,IACd,gCAAiC,gBACjC,kCAAmC,sBACnC,mCAAoC,wBACpC,oBAAqB,CAAC,4BAA6B,oBAAqB,sBAAuB,iBAAiB,EAChH,oBAAqB,QACrB,uBAAwB,WACxB,mBAAoB,IACpB,iBAAkB,kBACtB,EACIC,GAAsB,CACtBD,EAAU,aACVA,EAAU,cACVA,EAAU,oBACd,EACIE,GAAcH,GAAeE,GAAqB,CAClDD,EAAU,WACd,CAAC,EAIGG,IACH,SAAUA,EAAa,CACpBA,EAAY,aAAkB,eAC9BA,EAAY,YAAiB,cAC7BA,EAAY,WAAgB,kBAC5BA,EAAY,gBAAqB,mBACjCA,EAAY,mBAAwB,sBACpCA,EAAY,gBAAqB,kBACjCA,EAAY,kBAAuB,cACvC,GAAGA,KAAgBA,GAAc,CAAE,EAAC,EAIpC,IAAIC,IACH,SAAUA,EAAqB,CAC5BA,EAAoB,SAAc,UAClCA,EAAoB,YAAiB,cACrCA,EAAoB,cAAmB,eACvCA,EAAoB,MAAW,QAC/BA,EAAoB,WAAgB,oBACpCA,EAAoB,eAAoB,iBACxCA,EAAoB,uBAA4B,wBACpD,GAAGA,KAAwBA,GAAsB,CAAE,EAAC,EAIpD,IAAIC,IACH,SAAUA,EAAuB,CAC9BA,EAAsB,OAAY,SAClCA,EAAsB,cAAmB,gBACzCA,EAAsB,UAAe,WACzC,GAAGA,KAA0BA,GAAwB,CAAE,EAAC,EAIxD,IAAIC,IACH,SAAUA,EAAoB,CAC3BA,EAAmB,UAAe,YAClCA,EAAmB,aAAkB,eACrCA,EAAmB,cAAmB,gBACtCA,EAAmB,cAAmB,gBACtCA,EAAmB,WAAgB,aACnCA,EAAmB,OAAY,SAC/BA,EAAmB,MAAW,QAC9BA,EAAmB,MAAW,QAC9BA,EAAmB,kBAAuB,oBAC1CA,EAAmB,aAAkB,eACrCA,EAAmB,SAAc,WACjCA,EAAmB,cAAmB,gBACtCA,EAAmB,WAAgB,aACnCA,EAAmB,MAAW,QAC9BA,EAAmB,MAAW,QAC9BA,EAAmB,OAAY,SAC/BA,EAAmB,cAAmB,gBACtCA,EAAmB,YAAiB,cACpCA,EAAmB,KAAU,OAC7BA,EAAmB,eAAoB,iBACvCA,EAAmB,sBAA2B,wBAC9CA,EAAmB,cAAmB,gBACtCA,EAAmB,kBAAuB,oBAC1CA,EAAmB,aAAkB,eACrCA,EAAmB,aAAkB,eACrCA,EAAmB,YAAiB,cACpCA,EAAmB,aAAkB,eACrCA,EAAmB,oBAAyB,6BAC5CA,EAAmB,oBAAyB,0BAC5CA,EAAmB,oBAAyB,sBAC5CA,EAAmB,WAAgB,aACnCA,EAAmB,UAAe,YAClCA,EAAmB,gBAAqB,2BACxCA,EAAmB,cAAmB,gBACtCA,EAAmB,YAAiB,cACpCA,EAAmB,cAAmB,gBACtCA,EAAmB,iBAAsB,mBACzCA,EAAmB,sBAA2B,wBAC9CA,EAAmB,WAAgB,aACnCA,EAAmB,QAAa,UAChCA,EAAmB,cAAmB,YACtCA,EAAmB,oBAAyB,sBAC5CA,EAAmB,aAAkB,eACrCA,EAAmB,KAAU,OAC7BA,EAAmB,WAAgB,kBACnCA,EAAmB,gBAAqB,kBACxCA,EAAmB,cAAmB,eACtCA,EAAmB,YAAiB,aACxC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAIlD,IAAIC,IACH,SAAUA,EAAmB,CAC1BA,EAAkB,aAAkB,eACpCA,EAAkB,OAAY,QAClC,GAAGA,KAAsBA,GAAoB,CAAE,EAAC,EAMhD,IAAIC,GAAc,CACd,MAAO,QACP,eAAgB,iBAChB,QAAS,UACT,KAAM,OACN,OAAQ,SACR,WAAY,YAChB,EAIIC,IACH,SAAUA,EAAU,CACjBA,EAAS,QAAa,UACtBA,EAAS,IAAS,MAClBA,EAAS,WAAgB,aACzBA,EAAS,SAAc,WACvBA,EAAS,YAAiB,cAC1BA,EAAS,cAAmB,gBAC5BA,EAAS,UAAe,YACxBA,EAAS,WAAgB,oBACzBA,EAAS,eAAoB,uBACjC,GAAGA,KAAaA,GAAW,CAAE,EAAC,EAI9B,IAAIC,GAA4B,CAC5B,MAAO,QACP,KAAM,MACV,EAIIC,IACH,SAAUA,EAAc,CACrBA,EAAa,MAAW,QACxBA,EAAa,SAAc,WAC3BA,EAAa,UAAe,WAChC,GAAGA,KAAiBA,GAAe,CAAE,EAAC,EAItC,IAAIC,IACH,SAAUA,EAAW,CAClBA,EAAU,eAAoB,WAC9BA,EAAU,yBAA8B,qBACxCA,EAAU,yBAA8B,qBACxCA,EAAU,8BAAmC,WAC7CA,EAAU,oBAAyB,gBACnCA,EAAU,kBAAuB,cACjCA,EAAU,WAAgB,6CAC9B,GAAGA,KAAcA,GAAY,CAAE,EAAC,EAIhC,IAAIC,IACH,SAAUA,EAAkB,CACzBA,EAAiB,mBAAwB,QACzCA,EAAiB,kBAAuB,OACxCA,EAAiB,mBAAwB,MACzCA,EAAiB,qBAA0B,SAC/C,GAAGA,KAAqBA,GAAmB,CAAE,EAAC,EAI9C,IAAIC,IACH,SAAUA,EAAY,CACnBA,EAAW,oBAAyB,IACpCA,EAAW,sBAA2B,GAC1C,GAAGA,KAAeA,GAAa,CAAE,EAAC,EAIlC,IAAIC,IACH,SAAUA,EAAgB,CACvBA,EAAe,SAAc,UAC7BA,EAAe,aAAkB,cACjCA,EAAe,8BAAmC,8BAClDA,EAAe,cAAmB,cACtC,GAAGA,KAAmBA,GAAiB,CAAE,EAAC,EAI1C,IAAIC,IACH,SAAUA,EAAiB,CACxBA,EAAgB,QAAa,UAC7BA,EAAgB,WAAgB,aAChCA,EAAgB,SAAc,UAC9BA,EAAgB,aAAkB,cAClCA,EAAgB,cAAmB,eACnCA,EAAgB,aAAkB,cAClCA,EAAgB,UAAe,YAC/BA,EAAgB,UAAe,YAC/BA,EAAgB,UAAe,YAC/BA,EAAgB,WAAgB,YACpC,GAAGA,KAAoBA,GAAkB,CAAE,EAAC,EAI5C,IAAIC,IACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,KAAU,IAAI,EAAI,OACtCA,EAAUA,EAAU,IAAS,IAAI,EAAI,MACrCA,EAAUA,EAAU,MAAW,IAAI,EAAI,QACvCA,EAAUA,EAAU,QAAa,IAAI,EAAI,UACzCA,EAAUA,EAAU,aAAkB,IAAI,EAAI,eAC9CA,EAAUA,EAAU,cAAmB,IAAI,EAAI,gBAC/CA,EAAUA,EAAU,SAAc,IAAI,EAAI,WAC1CA,EAAUA,EAAU,aAAkB,IAAI,EAAI,eAC9CA,EAAUA,EAAU,UAAe,IAAI,EAAI,WAC/C,GAAGA,KAAcA,GAAY,CAAE,EAAC,EAIhC,IAAIC,GAAe,cACfC,IAAc,cACdC,GAAgB,IAChBC,GAA+B,CAC/B,UAAW,qBACX,qBAAsB,KAAO,EACjC,EACIC,IACH,SAAUA,EAAyB,CAChCA,EAAwB,OAAY,SACpCA,EAAwB,MAAW,QACnCA,EAAwB,QAAa,UACrCA,EAAwB,iBAAsB,kBAClD,GAAGA,KAA4BA,GAA0B,CAAE,EAAC,EAC5D,IAAIC,GAAyB,CACzB,eAAgB,EAChB,qBAAsB,GACtB,sBAAuB,IACvB,kBAAmB,GACnB,UAAW,mBACX,mBAAoB,IACpB,gBAAiB,IACjB,cAAe,IACf,eAAgB,IAChB,cAAe,eACnB,EAIIC,IACH,SAAUA,EAAsB,CAC7BA,EAAqB,OAAY,SACjCA,EAAqB,IAAS,MAC9BA,EAAqB,IAAS,UAClC,GAAGA,KAAyBA,GAAuB,CAAE,EAAC,EAItD,IAAIC,GAAsB,CAEtB,8BAA+B,GAE/B,kCAAmC,KAEnC,kBAAmB,aAEnB,0BAA2B,mBAC/B,EACIC,GAAS,CACT,oBAAqB,gBACrB,sBAAuB,iBAC3B,EAIIC,IACH,SAAUA,EAAwB,CAC/BA,EAAuB,SAAc,WACrCA,EAAuB,SAAc,UACzC,GAAGA,KAA2BA,GAAyB,CAAE,EAAC,EAI1D,IAAIC,IACH,SAAUA,EAAe,CACtBA,EAAcA,EAAc,YAAiB,GAAG,EAAI,cACpDA,EAAcA,EAAc,eAAoB,GAAG,EAAI,gBAC3D,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EAIxC,IAAIC,IACH,SAAUA,EAAwB,CAC/BA,EAAuB,sBAA2B,IAClDA,EAAuB,eAAoB,IAC3CA,EAAuB,qBAA0B,IACjDA,EAAuB,KAAU,GACrC,GAAGA,KAA2BA,GAAyB,CAAE,EAAC,EAI1D,IAAIC,IACH,SAAUA,EAAyB,CAChCA,EAAwB,4BAAiC,IACzDA,EAAwB,6BAAkC,IAC1DA,EAAwB,wBAA6B,IACrDA,EAAwB,oCAAyC,IACjEA,EAAwB,gCAAqC,GACjE,GAAGA,KAA4BA,GAA0B,CAAE,EAAC,EAC5D,IAAIC,IACH,SAAUA,EAAc,CACrBA,EAAa,aAAkB,IAC/BA,EAAa,cAAmB,IAChCA,EAAa,uBAA4B,IACzCA,EAAa,4BAAiC,IAC9CA,EAAa,4BAAiC,GAClD,GAAGA,KAAiBA,GAAe,CAAE,EAAC,EACtC,IAAIC,IACH,SAAUA,EAAW,CAClBA,EAAU,IAAS,MACnBA,EAAU,IAAS,KACvB,GAAGA,KAAcA,GAAY,GAAG,EChYhC,4CAYA,IAAIC,GAAmB,CACnB,gBAAiB,CACb,KAAM,mBACN,KAAM,qCACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,sIACT,CACL,EAIIC,GAA2B,SAAU54K,EAAQ,CAC7CtT,GAAUksL,EAAW54K,CAAM,EAC3B,SAAS44K,EAAUC,EAAWxnH,EAAcynH,EAAU,CAClD,IAAIvoL,EAAQ,KACRy+J,EAAc39F,EAAewnH,EAAY,KAAOxnH,EAAewnH,EACnE,OAAAtoL,EAAQyP,EAAO,KAAK,KAAMgvJ,CAAW,GAAK,KAC1C,OAAO,eAAez+J,EAAOqoL,EAAU,SAAS,EAChDroL,EAAM,UAAYsoL,GAAanC,EAAU,aACzCnmL,EAAM,aAAe8gE,GAAgBqlH,EAAU,aAC/CnmL,EAAM,SAAWuoL,GAAYpC,EAAU,aACvCnmL,EAAM,KAAO,YACNA,CACV,CACD,OAAAqoL,EAAU,UAAU,iBAAmB,SAAU94B,EAAe,CAC5D,KAAK,cAAgBA,CAC7B,EAKI84B,EAAU,sBAAwB,SAAUG,EAAS,CACjD,OAAO,IAAIH,EAAUD,GAAiB,gBAAgB,KAAMA,GAAiB,gBAAgB,KAAO,KAAOI,CAAO,CAC1H,EAMIH,EAAU,wBAA0B,SAAUG,EAAS,CACnD,OAAO,IAAIH,EAAUD,GAAiB,kBAAkB,KAAMA,GAAiB,kBAAkB,KAAO,KAAOI,CAAO,CAC9H,EACWH,CACX,EAAE,KAAK,ECzDP,4CASA,IAAII,GAAgC,CAChC,cAAe,UAAY,CACvB,IAAIC,EAAa,8DACjB,MAAML,GAAU,sBAAsBK,CAAU,CACnD,EACD,aAAc,UAAY,CACtB,IAAIA,EAAa,6DACjB,MAAML,GAAU,sBAAsBK,CAAU,CACnD,EACD,aAAc,UAAY,CACtB,IAAIA,EAAa,6DACjB,MAAML,GAAU,sBAAsBK,CAAU,CACnD,EACD,kBAAmB,UAAY,CAC3B,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,kEACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,EACD,uBAAwB,UAAY,CAChC,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,uEACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,EACD,sBAAuB,UAAY,CAC/B,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,sEACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,EACD,cAAe,UAAY,CACvB,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,8DACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,EACD,QAAS,UAAY,CACjB,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,wDACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,EACD,WAAY,UAAY,CACpB,OAAO5rL,GAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAI4rL,EACJ,OAAOhrL,GAAY,KAAM,SAAU6B,EAAI,CACnC,MAAAmpL,EAAa,2DACPL,GAAU,sBAAsBK,CAAU,CAChE,CAAa,CACb,CAAS,CACJ,CACL,EC5EA,4CAYA,IAAIC,GAAyB,CACzB,wBAAyB,CACrB,KAAM,6BACN,KAAM,6GACT,EACD,qBAAsB,CAClB,KAAM,0BACN,KAAM,iFACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,4EACT,EACD,iBAAkB,CACd,KAAM,sBACN,KAAM,kFACT,EACD,wBAAyB,CACrB,KAAM,6BACN,KAAM,yEACT,EACD,aAAc,CACV,KAAM,gBACN,KAAM,6EACT,EACD,6BAA8B,CAC1B,KAAM,sBACN,KAAM,6IACT,EACD,oBAAqB,CACjB,KAAM,wBACN,KAAM,qGACT,EACD,mBAAoB,CAChB,KAAM,uBACN,KAAM,oFACT,EACD,kBAAmB,CACf,KAAM,gBACN,KAAM,2IACT,EACD,mBAAoB,CAChB,KAAM,iBACN,KAAM,+FACT,EACD,mBAAoB,CAChB,KAAM,kBACN,KAAM,iBACT,EACD,mBAAoB,CAChB,KAAM,iBACN,KAAM,sFACT,EACD,mBAAoB,CAChB,KAAM,kBACN,KAAM,iBACT,EACD,sBAAuB,CACnB,KAAM,sBACN,KAAM,8NAGT,EACD,sBAAuB,CACnB,KAAM,qBACN,KAAM,2FACT,EACD,mBAAoB,CAChB,KAAM,kBACN,KAAM,kLACT,EACD,uBAAwB,CACpB,KAAM,2BACN,KAAM,mJAET,EACD,yBAA0B,CACtB,KAAM,6BACN,KAAM,2HACT,EACD,4BAA6B,CACzB,KAAM,gCACN,KAAM,kIACT,EACD,yBAA0B,CACtB,KAAM,yBACN,KAAM,2EACT,EACD,sBAAuB,CACnB,KAAM,4BACN,KAAM,4FACT,EACD,sBAAuB,CACnB,KAAM,4BACN,KAAM,8FACT,EACD,oBAAqB,CACjB,KAAM,yBACN,KAAM,sCACT,EACD,wBAAyB,CACrB,KAAM,uBACN,KAAM,2CACT,EACD,2BAA4B,CACxB,KAAM,gCACN,KAAM,iHACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,yBACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,kDACT,EACD,yBAA0B,CACtB,KAAM,+BACN,KAAM,yFACT,EACD,mBAAoB,CAChB,KAAM,uBACN,KAAM,4CACT,EACD,wBAAyB,CACrB,KAAM,4BACN,KAAM,2DACT,EACD,eAAgB,CACZ,KAAM,mBACN,KAAM,0CACT,EACD,iBAAkB,CACd,KAAM,sCACN,KAAM,+EACT,EACD,YAAa,CACT,KAAM,mBACN,KAAM,2EACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,oBACT,EACD,sBAAuB,CACnB,KAAM,0BACN,KAAM,0BACT,EACD,yBAA0B,CACtB,KAAM,6BACN,KAAM,6BACT,EACD,iBAAkB,CACd,KAAM,oBACN,KAAM,0FACT,EACD,wBAAyB,CACrB,KAAM,4BACN,KAAM,gKACT,E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N,KAAM,qJACT,EACD,wBAAyB,CACrB,KAAM,wBACN,KAAM,6EACT,EACD,kCAAmC,CAC/B,KAAM,kCACN,KAAM,yEACT,EACD,sBAAuB,CACnB,KAAM,0BACN,KAAM,gLACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,0GACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,uDACT,EACD,mBAAoB,CAChB,KAAM,iBACN,KAAM,0BACT,EACD,yBAA0B,CACtB,KAAM,yBACN,KAAM,iGACT,EACD,0BAA2B,CACvB,KAAM,yBACN,KAAM,kGACT,EACD,sBAAuB,CACnB,KAAM,qBACN,KAAM,uLACT,EACD,sCAAuC,CACnC,KAAM,sBACN,KAAM,qIACT,EACD,+BAAgC,CAC5B,KAAM,sBACN,KAAM,qFACT,EACD,6BAA8B,CAC1B,KAAM,4BACN,KAAM,oDACT,EACD,6BAA8B,CAC1B,KAAM,4BACN,KAAM,iFACT,EACD,eAAgB,CACZ,KAAM,mBACN,KAAM,yJACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,gHACT,EACD,yBAA0B,CACtB,KAAM,+BACN,KAAM,kCACT,EACD,oCAAqC,CACjC,KAAM,4CACN,KAAM,+CACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,4BACT,EACD,kBAAmB,CACf,KAAM,6BACN,KAAM,gGACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,oBACT,EACD,wBAAyB,CACrB,KAAM,0BACN,KAAM,yEACT,EACD,gBAAiB,CACb,KAAM,oBACN,KAAM,uBACT,EACD,sBAAuB,CACnB,KAAM,0BACN,KAAM,0DACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,2IACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,iFACT,EACD,6BAA8B,CAC1B,KAAM,2BACN,KAAM,wDACT,EACD,uBAAwB,CACpB,KAAM,uBACN,KAAM,+BACT,EACD,4BAA6B,CACzB,KAAM,uBACN,KAAM,4DACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,8FACT,EACD,gCAAiC,CAC7B,KAAM,wCACN,KAAM,yEA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Y,MACZ,CACC,SAAU,QACV,YAAa,QACb,kBAAmB,UACnB,SAAUD,GAAU,MACpB,kBAAmB,OACpB,CACD,EACA,CACCC,GAAY,QACZ,CACC,SAAU,UACV,YAAa,UACb,kBAAmB,WACnB,SAAUD,GAAU,QACpB,kBAAmB,SACpB,CACD,EACA,CACCC,GAAY,OACZ,CACC,SAAU,SACV,YAAa,SACb,kBAAmB,UACnB,SAAUD,GAAU,OACpB,kBAAmB,QACpB,CACD,EACA,CACCC,GAAY,SACZ,CACC,SAAU,aACV,YAAa,aACb,kBAAmB,cACnB,SAAUD,GAAU,UACrB,CACD,EACA,CACCC,GAAY,eACZ,CACC,SAAU,iBACV,YAAa,iBACb,kBAAmB,kBACnB,SAAUD,GAAU,eACpB,UAAW5xC,GAAO,OAAO,OACzB,kBAAmB,gBACpB,CACD,EACA,CACC6xC,GAAY,WACZ,CACC,SAAU,UACV,YAAa,UACb,kBAAmB,WACnB,SAAUD,GAAU,OACrB,CACD,EACA,CACCC,GAAY,WACZ,CACC,SAAU,aACV,YAAa,aACb,kBAAmB,cACnB,SAAUD,GAAU,WACpB,kBAAmB,YACpB,CACD,EACA,CACCC,GAAY,SACZ,CACC,SAAU,WACV,YAAa,WACb,kBAAmB,YACnB,SAAUD,GAAU,SACpB,kBAAmB,UACpB,CACD,EACA,CACCC,GAAY,MACZ,CACC,SAAU,QACV,YAAa,QACb,kBAAmB,SACnB,SAAUD,GAAU,MACpB,kBAAmB,OACpB,CACD,EACA,CAACC,GAAY,kBAAmB,EAAE,EAClC,CACCA,GAAY,cACZ,CACC,SAAU,QACV,YAAa,QACb,kBAAmB,SACnB,SAAUD,GAAU,cACpB,kBAAmB,eACpB,CACD,EACA,CACCC,GAAY,KACZ,CACC,SAAU,SACV,YAAa,SACb,kBAAmB,SACnB,SAAUD,GAAU,KACpB,kBAAmB,YACpB,CACD,EACA,CACCC,GAAY,WACZ,CACC,YAAa,MACb,kBAAmB,OACnB,SAAUD,GAAU,IACpB,kBAAmB,YACpB,CACD,EACA,CACCC,GAAY,KACZ,CACC,SAAU,OACV,YAAa,gBACb,kBAAmB,iBACnB,SA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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","nh","lh","mh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","X","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","wl","reactDom_production_min","checkDCE","err","reactDomModule","packagesCache","_win","setVersion","packageName","packageVersion","packages","versions","extendStatics","__extends","__","__assign","s","i","__rest","__decorate","decorators","target","key","desc","__awaiter","thisArg","_arguments","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","verb","op","__values","o","__read","ar","error","__spreadArray","to","from","pack","__await","__asyncGenerator","resume","settle","fulfill","__asyncDelegator","__asyncValues","InjectionMode","STYLESHEET_SETTING","REUSE_STYLE_NODE","_global","_stylesheet","Stylesheet","config","serializedStylesheet","_a","_b","_c","_d","_e","_f","fabricConfig","stylesheet","callback","_this","displayName","namespace","prefix","className","args","rules","entry","rule","preserve","injectionMode","element","sheet","includePreservedRules","head","styleElement","nodeToInsertBefore","cspSettings","placeholderStyleTag","extractStyleParts","_i","classes","objects","_processArgs","argsList","argsList_1","arg","translatedArgs","setRTL","isRTL","_rtl","getRTL","getStyleOptions","kebabRules","rulePairs","index","_vendorSettings","getVendorSettings","doc","nav","userAgent","autoPrefixNames","prefixRules","vendorSettings","name","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","unit","LEFT","RIGHT","NO_FLIP","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","options","name_1","flipQuad","negateNum","partIndex","parts","numberVal","tokenizeWithParentheses","partStart","parens","DISPLAY_NAME","getDisplayName","rootStyle","globalSelectorRegExp","expandCommaSeparatedGlobals","selectorWithGlobals","replacementInfo","findGlobal","match","selector","matchIndex","matchEndIndex","replacement","suffix","expandSelector","newSelector","currentSelector","extractSelector","extractRules","separatedSelector","currentRules","args_1","expandedRules","prop","propValue","selectors","expandQuads","getKeyForRules","serialized","hasProps","rulesForSelector","propName","repeatString","count","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","registration","rulesToInsert","applyRegistration","specificityMultiplier","processedRule","styleToClassName","mergeStyles","mergeCss","styleArgs","concatStyleSets","styleSets","mergedSet","workingSubcomponentStyles","styleSets_1","currentSet","currentComponentStyles","subCompProp","mergedValue","currentValue","mergedSubStyles","_loop_1","workingSet_1","styleProps","styleFunctionOrObject","mergeStyleSets","mergeCssSets","classNameSet","styleSet","concatenatedStyleSet","registrations","styleSetArea","styles","registrations_1","concatStyleSetsWithProps","allStyles","allStyles_1","fontFace","font","keyframes","timeline","rulesArray","buildClassMap","styleName","className_1","canUseDOM","_window","getWindow","rootElement","Async","parent","onError","duration","timeoutId","targetElement","immediateId","win","setImmediateCallback","intervalId","func","wait","waitMS","leading","trailing","lastExecuteTime","lastResult","lastArgs","userCall","now","delta","waitLength","resultFunction","noOpFunction","maxWait","lastCallTime","markExecuted","time","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","pending","cancel","flush","animationFrameId","animationFrameCallback","shallowCompare","assign","filteredAssign","isAllowed","sourceObject","EventGroup","eventName","eventArgs","bubbleEvent","retVal","ev","evObj","events","eventRecords","eventRecordList","listIndex","record","declaredEvents","event","useCapture","parent_1","eventRecord","processElementEvent","processObjectEvent","targetArrayLookup","targetArray","getDocument","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","_saveClientY","_preventOverscrolling","clientY","scrollableParent","findScrollableParent","allowOverscrollOnElement","_allowElementScroll","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","startingElement","computedStyles","overflowY","_warningCallback","warn","message","warnConditionallyRequiredProps","componentName","props","requiredProps","conditionalPropName","condition","requiredProps_1","requiredPropName","_super","BaseComponent","context","_makeAllSafe","prevProps","prevState","len","disposable","funcNameRegex","results","refName","ref","currentProps","newProps","deprecationMap","mutuallyExclusiveMap","React.Component","obj","prototype","methodNames","_makeSafe","methodName","classMethod","prototypeMethod","nullRender","DelayedRender","delay","React.Children","GLOBAL_SETTINGS_PROP_NAME","CALLBACK_STATE_PROP_NAME","_counter","GlobalSettings","defaultValue","globalSettings","_getGlobalSettings","callbacks","oldValue","changeDescription","_getCallbacks","globalObj","KeyCodes","Rectangle","left","right","top","bottom","rect","appendFunction","functions","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","findIndex","array","fromIndex","find","addElementAtIndex","itemToAdd","copy","arraysEqual","array1","array2","getItem","setItem","data","RTL_LOCAL_STORAGE_KEY","_isRTL","theme","savedRTL","mergeStylesSetRTL","persistSetting","getRTLSafeKeyCode","isVirtualElement","getVirtualParent","child","getParent","allowVirtualParents","elementContains","isContained","nextParent","findElementRecursive","matchFunction","elementContainsAttribute","attribute","elementMatch","testElement","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","portalContainsElement","setVirtualParent","virtualChild","virtualParent","oldParent","IS_FOCUSABLE_ATTRIBUTE","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","currentElement","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","bypassHiddenElements","focusAsync","suppressParentTraversal","traverseChildren","allowFocusRoot","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","isElementTabbable","childMatchSiblingMatch","childMatchParent","childMatchParentMatch","siblingMatch","suppressChildTraversal","checkElementVisibility","isElementVisibleAndNotHidden","visibilityAttribute","checkTabIndex","tabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","doesElementContainFocus","document","currentActiveElement","shouldWrapFocus","noWrapDataAttribute","targetToFocusOnNextRepaint","getFocusableByIndexPath","path","path_1","nextChild","getElementIndexPath","fromElement","toElement","on","MAX_CACHE_COUNT","DEFAULT_SPECIFICITY_MULTIPLIER","_memoizedClassNames","classNamesFunction","map","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","getClassNames","current","rtl","disableCaching","_traverseMap","_traverseEdge","_normalizeValue","inputs","cachedInputsFromStyled","input","_initializedStylesheetResets","_resetCounter","_emptyObject","_dictionary","_weakMap","resetMemoizations","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","cacheSize","localResetCounter","currentNode","_createNode","_normalizeArg","createMemoizer","getValue","cache","memoizedGetValue","val","createComposedComponent","outer","Outer","outerMemoizer","inner","Inner","innerMemoizer","defaultRender","InnerWithDefaultRender","innerProps","React.createElement","OuterWithDefaultRender","outerProps","componentAsMemoizer","composeComponentAs","isControlled","valueProp","css","CustomizationsGlobalKey","NO_CUSTOMIZATIONS","_allSettings","_events","Customizations","settings","scopeName","properties","localSettings","localScopedSettings","globalScopedSettings","properties_1","property","code","suppressUpdate","onChange","CustomizerContext","React.createContext","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","_scopedSettingsMergeWith","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","mergeCustomizations","parentContext","customizations","Customizer","contextTransform","newContext","hoistStatics","source","dest","customizable","scope","fields","concatStyles","ComposedComponent","resultClass","ComponentWithInjectedProps","defaultProps","componentProps","mergedStyles","useCustomizationSettings","forceUpdate","useForceUpdate","React.useContext","inCustomizerContext","React.useEffect","React.useState","setValue","extendComponent","methods","CURRENT_ID_PROPERTY","DEFAULT_ID_STRING","getId","resetIds","counter","toObjectMap","items","items_1","item","keys","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","audioProperties","anchorProperties","buttonProperties","inputProperties","textAreaProperties","imgProperties","divProperties","getNativeProps","allowedPropNames","excludedPropNames","isArray","keys_2","isNativeProp","REACT_LIFECYCLE_EXCLUSIONS","hoistMethods","destination","exclusions","hoisted","unhoistMethods","initializeComponentRef","_onMount","_onUpdate","_onUnmount","_setComponentRef","componentRef","DirectionalKeyCodes","isDirectionalKeyCode","which","IsFocusVisibleClassName","IsFocusHiddenClassName","updateClassList","enabled","setFocusVisibility","registeredProviders","mountCounters","callbackMap","setMountCounters","newValue","currValue","setCallbackMap","onMouseDown","_onMouseDown","onPointerDown","_onPointerDown","onKeyDown","_onKeyDown","onKeyUp","_onKeyUp","FocusRectsContext","useFocusRects","rootRef","FocusRects","FocusRectsProvider","providerRef","layerRoot","inheritParentContext","React.useMemo","React.Fragment","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitialsLatin","isRtl","initials","splits","cleanupDisplayName","getInitials","allowPhoneInitials","_language","STORAGE_KEY","getLanguage","persistenceType","savedLanguage","localStorage.getItem","sessionStorage.getItem","merge","_merge","circularReferences","isCircularReference","isIOS","tagsToIgnore","modalize","targetDocument","affectedNodes","sibling","ariaHidden","node","unmodalize","originalValue","isMacResult","isMac","reset","hasHorizontalOverflow","hasVerticalOverflow","hasOverflow","createComposedRenderFunction","memoizer","composeRenderFunction","DefaultFields","styled","Component","baseStyles","getProps","pure","Wrapped","React.forwardRef","forwardedRef","React.useRef","customizedStyles","rest","additionalProps","propStyles","concatenatedStyles","pureComponent","React.memo","isIE11","getPropsWithDefaults","propsWithoutDefaults","createResolver","local","createMergedRef","newRefs","useIsomorphicLayoutEffect","React.useLayoutEffect","ICON_SETTING_NAME","_iconSettings","normalizeIconName","registerIcons","iconSubset","subset","icons","iconName","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","icon","_missingIcons","_missingIconsTimer","warningDelay","maxIconsInMessage","makeSemanticColors","isInverted","depComments","semanticColors","fullSemanticColors","getSemanticColors","_fixDeprecatedSlots","white","black","themePrimary","themeDark","themeDarker","themeDarkAlt","themeLighter","neutralLight","neutralLighter","neutralDark","neutralQuaternary","neutralQuaternaryAlt","neutralPrimary","neutralSecondary","neutralSecondaryAlt","neutralTertiary","neutralTertiaryAlt","neutralLighterAlt","accent","dep","mergeThemes","partialTheme","mergedTheme","fontStyle","DefaultPalette","Depths","DefaultEffects","DefaultSpacing","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","FADE_OUT","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","AnimationStyles","_createAnimation","animationName","animationDuration","animationTimingFunction","fromX","fromY","toX","toY","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","FontFamilyFallbacks","defaultFontFamily","LanguageToFontMap","_fontFamilyWithFallbacks","fontFamily","_getLocalizedFontFamily","language","lang","_createFont","size","weight","createFontStyles","localeCode","localizedFont","fontFamilyWithFallback","fontStyles","DefaultBaseUrl","DefaultFontStyles","_registerFontFace","url","fontWeight","localFontName","localFontSrc","_registerFontFaceSet","baseUrl","cdnFolder","cdnFontName","urlBase","registerDefaultFontFaces","fontUrl","_getFontBaseUrl","createTheme","baseTheme","HighContrastSelector","HighContrastSelectorWhite","ScreenWidthMinSmall","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMaxSmall","ScreenWidthMaxMedium","ScreenWidthMinUhfMobile","getScreenSelector","min","max","minSelector","maxSelector","getHighContrastNoAdjustStyle","ZIndexes","getFocusStyle","insetOrOptions","position","highContrastStyle","borderColor","outlineColor","isFocusedOnly","borderRadius","_getFocusStyleInternal","inset","width","_g","_h","pointerEvents","focusClear","getInputFocusStyle","borderType","borderPosition","isBorderBottom","hiddenContentStyle","_getGlobalClassNames","classNames","disableGlobalClassNames","styleSheet","acc","getGlobalClassNames","this","_root","_styleNonce","_themeState","initializeThemeState","_themeTokenRegex","measure","start","end","state","loadStyles","loadAsync","styleParts","splitStyles","mode","buffer","flushTimer","asyncLoadStyles","applyThemableStyles","styleArrays","mergedStyleArray","stylesArray","styleRecord","resolveThemableArray","registerStyles","loadTheme","reloadStyles","clearStyles","option","clearStylesInternal","records","themableStyles","splitStyleArray","themable","resolvedArray","themeSlot","themedValue","pos","tokenMatch","styleArray","styleString","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","getTheme","legacyLoadTheme","_loadFonts","lines","fontName","normalize","noWrap","getPlaceholderStyles","AnimationClassNames","FLUENT_CDN_BASE_URL","DirectionalHint","RectangleEdge","Position","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","edgeDifference","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_alignOppositeEdges","oppositeEdge","adjustedGap","_isEdgeInBounds","bounds","adjustedRectValue","_getOutOfBoundsDegree","breakingEdges","total","breakingEdges_1","_flipToFit","bounding","positionData","directions","currentEstimate","currentEdge","currentAlignment","oobDegree","bestEdge","bestAlignment","currentOOBDegree","_estimatePosition","_flipAlignmentEdge","elementEstimate","coverTarget","elementRectangle","newEstimate","_adjustFitWithinBounds","directionalHintFixed","alignTargetEdge","fixedEdge","flippedElementEstimate","_alignOutOfBoundsEdges","outOfBoundsEdges","preserveEdge","outOfBoundsEdges_1","direction","edgeAttempt","inBounds","_centerEdgeToPoint","point","positiveEdge","elementMiddle","distanceToMiddle","elementToPosition","estimatedElementPosition","elementEdge","targetMiddlePoint","_finalizeReturnEdge","returnEdge","_isEdgeOnBounds","_finalizeElementPosition","hostElement","doNotFinalizeReturnEdge","forceWithinBounds","returnValue","_getRectangleFromElement","getOppositeEdge","_calculateActualBeakWidthInPixels","beakWidth","_getPositionData","directionalHint","directionalHintForRTL","previousPositions","positionInformation","_getAlignmentData","getClosestEdge","targetCenter","boundingCenter","negativeEdge","_positionElementWithinBounds","_finalizeBeakPosition","elementPosition","positionedBeak","actualElement","beakEdgeDifference","showBeak","_positionBeak","beakTargetPoint","elementBounds","beakPosition","clientRect","_getRectangleFromIRect","_getTargetRect","targetRectangle","rectOrPoint","top_1","outOfBounds_1","_positionElementRelative","targetRect","positionedElement","_finalizePositionData","finalizedElement","_positionCallout","callout","positionProps","beakPositioned","finalizedBeakPosition","_positionCard","positionCallout","positionCard","_getBoundsFromTargetWindow","targetWindow","segments","segments_1","segment","getBoundsFromTargetWindow","useAsync","asyncRef","useConst","initialValue","useBoolean","initialState","setTrue","setFalse","toggle","useControllableValue","controlledValue","defaultUncontrolledValue","valueRef","onChangeRef","setValueOrCallOnChange","update","useEventCallback","fn","callbackRef","useId","providedId","useMergedRefs","refs","mergedCallback","React.useCallback","refs_1","useOnEvent","dispose","usePrevious","useRef","useEffect","useSetTimeout","timeoutIds","WindowContext","useWindow","useDocument","useTarget","previousTargetProp","targetRef","currentDoc","useUnmount","unmountRef","useScrollbarAsync","root","async","needsVerticalScrollBarState","setNeedsVerticalScrollBar","needsVerticalScrollBar","rootHeight","firstChildHeight","defaultFocusRestorer","originalElement","containsFocus","useRestoreFocus","onRestoreFocus","originalFocusedElement","useHideSiblingNodes","shouldHideSiblings","Popup","mergedRootRef","role","ariaLabel","ariaLabelledBy","ariaDescribedBy","style","children","onDismiss","COMPONENT_NAME","ANIMATIONS","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","useBounds","minPagePadding","targetWindowResized","setTargetWindowResized","cachedBounds","getBounds","currentBounds","useMaxHeight","positions","calloutMaxHeight","finalHeight","hidden","maxHeight","setMaxHeight","topBounds","bottomBounds","calculatedHeight","usePositions","calloutElement","setPositions","positionAttempts","previousTarget","onPositioned","timerId_1","dupeCalloutElement","newPositions","arePositionsEqual","useAutoFocus","setInitialFocus","hasPositions","timerId_2","useDismissHandlers","preventDismissOnScroll","preventDismissOnResize","preventDismissOnLostFocus","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","disposablesPromise","disposables_1","CalloutContentBase","isBeakVisible","calloutWidth","calloutMaxWidth","calloutMinWidth","doNotLayer","hideOverflow","backgroundColor","onScroll","shouldRestoreFocus","onLayerMounted","popupProps","setCalloutElement","calloutCallback","calloutEl","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","overflowYHidden","beakVisible","overflowStyle","visibilityStyle","getBeakPosition","previousProps","nextProps","beakPositionStyle","prevElementPositions","newElementPosition","comparePositions","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","GlobalClassNames","getStyles","effects","CalloutContent","PortalCompatContext","portalCompatContextDefaultValue","usePortalCompat","_React_useContext","getFabricTheme","getDir","dir","contextDir","pageDir","componentDir","FabricBase","applyTheme","applyThemeToBody","useApplyThemeToBody","useRenderedContent","Root","divProps","rootDir","needsTheme","renderedContent","bodyThemed","currentDoc_1","inheritFont","preventBlanketFontInheritance","Fabric","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","registerLayer","hostId","layerHosts","layerHosts_1","layerHost","unregisterLayer","layers","idx","layerHosts_2","getLayerHost","createDefaultLayerHost","host","getDefaultTarget","getFocusVisibility","LayerBase","registerPortalEl","mergedRef","layerRef","fabricElementRef","focusContext","needRaiseLayerMount","setNeedRaiseLayerMount","focusRectsRef","isFocusVisible","eventBubblingEnabled","fabricProps","insertFirst","onLayerDidMount","onLayerWillUnmount","fabricRef","getHost","defaultHostSelector","removeLayerElement","elem","createLayerElement","unregisterPortalEl","ReactDOM.createPortal","getFilteredEvents","filteredEventProps","onFilterEvent","isNotHost","Layer","Callout","layerProps","content","useComponentRef","previouslyFocusedElement","focusFTZ","React.useImperativeHandle","FocusTrapZone","firstBumper","lastBumper","isFirstRender","internalState","disabled","disableFirstFocus","forceFocusInsideTrap","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","disableRestoreFocus","isClickableOutsideFocusTrap","enableAriaHiddenSiblings","bumperProps","focusElementAsync","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","onRootBlurCapture","relatedTarget","onRootFocusCapture","returnFocusToInitiator","elementToFocusOnDismiss","activeElement","forceFocusOrClickInTrap","disposables","TooltipBase","calloutProps","maxWidth","onRenderContent","gapSpace","fonts","tooltipGapSpace","Tooltip","TooltipDelay","TooltipOverflowMode","TooltipHostBase","React.createRef","overflowMode","overflowElement","delayTime","closeDelay","isTooltipVisible","setAriaDescribedBy","tooltipProps","tooltipId","tooltipRenderProps","tooltipContent","showTooltip","TooltipHost","IconType","ImageFit","ImageCoverStyle","ImageLoadState","SVG_REGEX","KEY_PREFIX","useLoadState","imageElement","onLoadingStateChange","onLoad","src","loadState","setLoadState","isLoaded","onImageLoaded","onImageError","ImageBase","frameElement","imageProps","alt","height","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","loading","coverStyle","useCoverStyle","previousLoadState","computeCoverStyle","desiredRatio","naturalRatio","isLandscape","isCenter","isContain","isCover","isCenterContain","isCenterCover","isNone","isError","isNotImageFit","ImageFitStyles","window","supportsObjectFit","fallbackObjectFitStyles","Image","MS_ICON","iconClassName","isPlaceholder","isImage","getIconContent","FontIcon","iconContent","mergeImageProps","nativeProps","accessibleName","containerProps","finalChildren","React.cloneElement","IconBase","imageErrorAs","iconContentChildren","RootType","imageLoadError","ImageType","hasName","finalIconContentChildren","Icon","ImageIcon","altText","imageNameProps","PersonaSize","PersonaPresence","PersonaInitialsColor","personaSize","personaPresenceSize","sizeBoolean","sizeToPixels","presenceBoolean","presence","coinSizeFontScaleFactor","coinSizePresenceScaleFactor","presenceMaxSize","presenceFontMaxSize","PersonaPresenceBase","coinSize","isOutOfOffice","presenceTitle","presenceColors","renderIcon","presenceHeightWidth","presenceFontSize","coinSizeWithPresenceIconStyle","coinSizeWithPresenceStyle","PersonaPresenceEnum","determineIcon","oofIcon","presenceColorAvailable","presenceColorAway","presenceColorBusy","presenceColorDnd","presenceColorOffline","presenceColorOof","presenceColorBackground","isOpenCirclePresence","borderSizeForSmallPersonas","borderSizeForLargePersonas","borderSize","makeSizeStyle","makeBeforeBorderStyle","makeOpenCircleIconStyle","color","COLOR_SWATCHES_LOOKUP","COLOR_SWATCHES_NUM_ENTRIES","getInitialsColorFromName","hashCode","iLen","shift","personaInitialsColorToHexCode","personaInitialsColor","getPersonaInitialsColor","primaryText","text","initialsColor","initialsColorCode","getInitialsStyles","initialsTextColor","showUnknownPersonaCoin","useImageLoadState","onPhotoLoadingStateChange","imageUrl","imageLoadState","setImageLoadstate","PersonaCoinBase","renderCoin","getCoinRenderer","coinProps","onRenderCoin","onRenderPersonaCoin","onRenderInitials","renderPersonaCoinInitials","showInitialsUntilImageLoads","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","imageAlt","imageShouldFadeIn","imageShouldStartVisible","dimension","imageInitials","palette","unknownPersonaBackgroundColor","unknownPersonaFontColor","PersonaCoin","PersonaBase","getText","renderElement","elementClassNames","renderFunction","defaultRenderFunction","onRenderText","tooltip","onInternalRenderPersonaCoin","providedCoinProps","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","onInternalRenderOptionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","showSecondaryText","personaCoinProps","personaDetails","showSecondaryTextDefaultHeight","sharedTextStyles","Persona","FocusZoneTabbableElements","FocusZoneDirection","IS_ENTER_DISABLED_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","focusZoneStyles","focusZoneClass","raiseClickFromKeyboardEvent","getRootClass","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","newActiveElement","parentElement","maybeElementToFocus","initialElementFocused","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","innerZone","focusChanged","tabWithDirection","firstChild","lastChild","isForward","activeRect","leftAlignment","targetRectTop","activeRectBottom","targetRectBottom","activeRectTop","isValidCandidateOnpagingDown","isValidCandidateOnpagingUp","shouldRaiseClicksFallback","zone","elementToFocus","tag","elementType","rootProps","Tag","forceIntoFirstElement","ownerZoneElement","ownerZone","forceAlignment","onBeforeFocus","shouldReceiveFocus","focusedElement","isParked","previousActiveElement","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","elementDistance","targetTop","distance","shouldWrap","topBottomComparison","targetBottom","pagesize","isElementPassedPageSizeOnPagingDown","isElementPassedPageSizeOnPagingUp","isHorizontal","isVertical","childNodes","childIndex","selectionStart","selectionEnd","isRangeSelected","inputValue","isReadonly","ContextualMenuItemType","getIsChecked","hasSubmenu","isItemDisabled","getMenuItemAriaRole","isChecked","canCheck","defaultIconRenderer","iconProps","renderItemIcon","hasIcons","renderCheckMarkIcon","onCheckmarkClick","isItemChecked","onClick","renderItemName","renderSecondaryText","renderSubMenuIcon","ContextualMenuItemBase","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissAll","dismissMenu","renderContent","defaultRenders","getDividerClassNames","CONTEXTUAL_MENU_ITEM_HEIGHT","MediumScreenSelector","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","getItemClassNames","expanded","checked","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","primaryDisabled","getItemStyles","ContextualMenuItem","ContextualMenuItemWrapper","onItemMouseEnter","onItemClickBase","onItemMouseLeave","onItemKeyDown","onItemMouseMove","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KeytipEvents","KeytipManager","delayUpdatingKeytipChange","keytipProps","persisted","uniqueKeytip","event_1","uniqueID","newKeytipProps","oldKeyTip","keytipToRemove","fullSequence","parentKeytip","overflowButtonSequences","keytipSequences","sequencesToID","keySequences","prevValue","keySequence","mergeOverflows","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","getAriaDescribedBy","describedby","useKeytipData","uniqueId","keytipManager","prevOptions","nativeKeytipProps","getKeytipData","describedByPrepend","keytipId","KeytipData","keytipDataProps","ContextualMenuAnchor","onItemClick","ariaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","ChildrenRenderer","expandedMenuItemKey","anchorRel","itemHasSubmenu","itemProps","ariaDescribedByIds","additionalItemProperties","keytipAttributes","ContextualMenuButton","onItemMouseDown","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","names","VerticalDividerBase","deprecatedGetClassNames","VerticalDivider","TouchIdleDelay","ContextualMenuSplitButton","executeItemClick","ariaChecked","splitButton","itemComponentProps","buttonProps","onTap","BaseDecorator","composedComponentInstance","ResponsiveMode","RESPONSIVE_MAX_CONSTRAINT","_lastMode","getInitialResponsiveMode","withResponsiveMode","WithResponsiveMode","responsiveMode","getResponsiveMode","getWidthOfCurrentWindow","currentWindow","useResponsiveMode","elementRef","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","onResize","newResponsiveMode","MenuContext","getContextualMenuItemClassNames","getItemCount","itemCount","getSubmenuItems","overrideItems","items_2","subItem","contextItem","getOnClickWithOverrideTarget","canAnyMenuItemsCheck","submenuItem","NavigationIdleDelay","_getMenuItemStylesFunction","useVisibility","onMenuDismissed","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useSubMenuState","dismiss","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","shouldFocusOnContainer","setShouldFocusOnContainer","subMenuId","closeSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","useOnSubmenuDismiss","getSubmenuProps","findItemByKeyFromItems","submenuProps","useShouldUpdateFocusOnMouseMove","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","usePreviousActiveElement","tryFocusPreviousActiveElement","newElement","useKeyHandlers","isSubMenu","checkForNoWrap","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldCloseSubMenu","submenuCloseKey","shouldHandleKeyDown","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","onMenuKeyDown","hasModifier","isUp","isDown","openKey","useScrollHandler","asyncTracker","isScrollIdle","scrollIdleTimeoutId","isMountedRef","useSubmenuEnterTimer","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","startSubmenuTimer","onTimerExpired","useMouseHandlers","subMenuEntryTimer","onItemMouseEnterBase","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","overrideTarget","shouldDismiss","ContextualMenuBase","menuId","_j","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","menuItem","renderMenuItem","indexIncrease","renderFocusZone","adjustedFocusZoneProps","renderedItems","subMenuIconClassName","itemClassNames","itemStyleProps","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","renderSectionItem","defaultRenderNormalItem","renderNormalItem","defaultMenuItemRenderer","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_1","id_2","correctedIndex_1","contextualMenuItem","itemsIndex","title","fromSection","contextualMenuItemAs","commonProps","divHtmlProperties","labelElementId","useTargetWidth","useTargetAsMinWidth","shouldFocusOnMount","_k","onRenderSubMenu","onDefaultRenderSubMenu","_l","onRenderMenuList","focusZoneProps","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","contextMenuStyle","targetAsHtmlElement","targetBoundingRect","targetWidth","totalItemCount_1","calloutStyles_1","menuContext","subMenuProps","items_3","LocalContextualMenu","ContextualMenu","ButtonGlobalClassNames","getBaseButtonClassNames","variantClassName","menuIconClassName","hasMenu","isSplit","isExpanded","getSplitButtonClassNames","BaseButton","secondaryText","onRenderDescription","menuIconProps","menuProps","MenuType","container","onMenuClick","currentShouldFocusOnMount","allowDisabledFocus","href","menuHidden","isPrimaryButtonDisabled","_ariaDescriptionId","_labelId","_descriptionId","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","onRenderIcon","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","Content","persistMenu","renderPersistedMenuHiddenOnMount","primaryActionButtonProps","getBaseSplitButtonClassNames","SplitButton","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","noOutline","iconStyle","fontSize","border","disabledBackground","disabledText","buttonHighContrastFocus","customStyles","_m","_o","splitButtonDividerBaseStyles","splitButtonStyles","standardStyles","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextDisabled","buttonTextChecked","buttonTextCheckedHovered","primaryStyles","DEFAULT_BUTTON_HEIGHT","DEFAULT_BUTTON_MIN_WIDTH","primary","baseButtonStyles","getBaseButtonStyles","getSplitButtonStyles","defaultButtonStyles","DefaultButton","DEFAULT_PADDING","actionButtonStyles","ActionButton","iconButtonStyles","IconButton","PrimaryButton","LabelBase","required","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","Label","LARGE_IMAGE_SIZE","ChoiceGroupOptionBase","focused","imageSrc","imageSize","defaultOnRenderLabel","defaultOnRenderField","selectedImageSrc","onRenderLabel","label","onRenderField","evt","onBlur","labelWrapperLineHeight","labelWrapperHeight","iconSize","choiceFieldSize","choiceFieldTransitionDuration","choiceFieldTransitionTiming","radioButtonSpacing","radioButtonInnerSize","getChoiceGroupFocusStyle","focusBorderColor","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","hasIcon","hasImage","imageIsLarge","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","ChoiceGroupOption","getOptionId","findOption","focusSelectedOption","keyChecked","focusProviders","optionToFocus","focusFromFocusTrapZone","ChoiceGroupBase","defaultSelectedKey","labelId","setKeyChecked","keyFocused","setKeyFocused","mergedRootRefs","onOptionChange","onRadioFocus","optionsContainIconOrImage","ChoiceGroup","DEFAULT_STATE_VALUE","REVEAL_ICON_NAME","HIDE_ICON_NAME","TextFieldBase","labelStyles","previousValue","_getValue","snapshot","selection","_shouldValidateAllChanges","borderless","invalid","inputClassName","multiline","underlined","resizable","autoAdjustHeight","canRevealPassword","revealPasswordAriaLabel","type","onRenderPrefix","onRenderSuffix","isFocused","isRevealingPassword","errorMessage","isInvalid","hasRevealButton","_browserNeedsRevealButton","textAreaProps","labelIds","inputProps","updatedInputProps","onRenderInput","onGetErrorMessage","currentValidation_1","textField","__browserNeedsRevealButton","isEdge","globalClassNames","getLabelStyles","hasLabel","hasErrorMessage","fieldPrefixSuffix","placeholderStyles","disabledPlaceholderStyles","TextField","SpinnerSize","SpinnerType","SpinnerBase","ariaLive","labelPosition","statusMessage","styleSize","spinAnimation","Spinner","DialogType","containerClassName","scrollableContentClassName","isOpen","isVisible","hasBeenOpened","modalRectangleTop","topOffsetFixed","isModeless","layerClassName","isDefaultDragHandle","windowInnerHeight","OverlayBase","allowTouchBodyScroll","isDark","Overlay","isDragging","eventMapping","DraggableZone","onMouseUp","onTouchStart","onTouchEnd","dragData","updatedData","updatedPosition","baseDragData","statePosition","touchObj","eventToGetOffset","touch","matchesSelectorFn","touchList","lastPosition","ZERO","getMoveDelta","focusTrapZone","ModalBase","focusTrapZoneProps","isBlocking","isAlert","isDarkOverlay","overlay","titleAriaId","subtitleAriaId","dragOptions","onDismissed","focusTrapZoneRef","focusTrapZoneElm","modalResponsiveMode","focusTrapZoneId","setTimeout","clearTimeout","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","keepInBounds","isAlertRole","mergedLayerProps","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","getClampedAxis","axis","minPosition","maxPosition","handleModalClose","handleDragStart","handleDrag","handleDragStop","handleEnterKeyboardMoveMode","handleKeyDown","newLocal","handledEvent","delta_1","handleExitKeyboardMoveMode","registerForKeyUp","handleKeyUp","modalContent","Modal","DialogFooterBase","DialogFooter","DialogFooterType","DialogContentBase","showCloseButton","closeButtonAriaLabel","subTextId","subText","titleProps","titleId","draggableHeaderClassName","groupings","subTextContent","isLargeHeader","isClose","isMultiline","DialogContent","DefaultModalProps","DefaultDialogContentProps","DialogBase","ariaDescribedById","modalProps","dialogContentProps","ariaLabelledById","contentClassName","topButtonsProps","minWidth","dialogDraggableClassName","mergedModalProps","dialogDefaultMinWidth","dialogDefaultMaxWidth","Dialog","initializeIcons","registerIconAliases","DEFAULT_BASE_URL","i0","i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i17","initialize","MessageBarType","ICON_MAP","getAnnouncementPriority","messageBarType","getRole","MessageBarBase","expandSingleLine","toggleExpandSingleLine","actions","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandButtonProps","expandIconProps","regionProps","actionsDiv","dismissButton","iconColor","highContrastBorderColor","highContrastWhiteBorderColor","SmallScreenSelector","dismissalAndExpandIconStyle","dismissalAndExpandStyle","MessageBar","ZERO_THRESHOLD","ProgressIndicatorBase","ariaValueText","barHeight","description","percentComplete","progressBarStyles","ariaValueMin","ariaValueMax","ariaValueNow","progressHidden","onRenderProgress","IndeterminateProgress","IndeterminateProgressRTL","indeterminate","marginBetweenText","textHeight","progressTrackColor","ProgressIndicator","BACKGROUND_OFF_SCREEN_POSITION","shimmerAnimation","shimmerAnimationRTL","isDataLoaded","transitionAnimationInterval","shimmerColor","shimmerWaveColor","improveCSSPerformance","ShimmerElementType","ShimmerElementsDefaultHeights","ShimmerLineBase","borderStyle","borderStyles","sharedCornerStyles","ShimmerLine","ShimmerGapBase","ShimmerGap","ShimmerCircleBase","ShimmerCircle","ShimmerElementsGroupBase","shimmerElements","rowHeight","findMaxElementHeight","flexWrap","getRenderedElements","renderedElements","filteredElem","verticalAlign","getElementStyles","elementHeight","dif","shimmerElementsDefaulted","next","ShimmerElementsGroup","TRANSITION_ANIMATION_INTERVAL","ShimmerBase","customElementsGroup","shimmerColors","contentLoaded","setContentLoaded","divStyleProp","Shimmer","_extends","Action","PopStateEventType","createBrowserHistory","createBrowserLocation","globalHistory","pathname","search","hash","createLocation","createBrowserHref","createPath","getUrlBasedHistory","invariant","warning","cond","createKey","getHistoryState","location","parsePath","_ref","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","action","listener","getIndex","handlePop","nextIndex","history","push","historyState","replace","createURL","base","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","first","isOptional","restExploded","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","branch","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","pattern","matcher","paramNames","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","caseSensitive","regexpSource","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","_temp","relative","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useMatch","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","UNSAFE_getPathContributingMatches","activeRef","useParams","routeMatch","_temp2","useRoutes","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","stack","preStyles","devInfo","defaultErrorElement","RenderErrorBoundary","errorInfo","RenderedRoute","routeContext","_dataRouterState2","_dataRouterState","errors","errorIndex","outlet","errorElement","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","routeId","router","Navigate","_ref4","navigate","jsonPath","Route","_props","Router","_ref5","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","React.isValidElement","treePath","_objectWithoutPropertiesLoose","excluded","sourceKeys","isModifiedEvent","shouldProcessLinkClick","createSearchParams","init","getSearchParamsForLocation","locationSearch","defaultSearchParams","searchParams","_excluded","_excluded2","ViewTransitionContext","START_TRANSITION","startTransitionImpl","React","BrowserRouter","future","historyRef","setStateImpl","v7_startTransition","setState","newState","isBrowser","ABSOLUTE_URL_REGEX","Link","_ref7","reloadDocument","preventScrollReset","unstable_viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","targetUrl","internalOnClick","useLinkClickHandler","handleClick","NavLink","_ref8","ariaCurrentProp","classNameProp","styleProp","routerState","UNSAFE_DataRouterStateContext","isTransitioning","useViewTransitionState","nextLocationPathname","isActive","isPending","renderProps","ariaCurrent","UNSAFE_DataRouterContext","replaceProp","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","opts","vtContext","currentPath","nextPath","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","length","charat","trim","indexof","substr","begin","strlen","sizeof","append","combine","filter","line","column","character","characters","siblings","lift","prev","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","parse","rulesets","pseudo","points","declarations","offset","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","serialize","output","stringify","middleware","collection","rulesheet","prefixer","unitlessKeys","$","d.RULESET","d.prefixer","d.stringify","d.compile","d.serialize","d.middleware","d.rulesheet","et","tt","nt","ot","rt","st","it","at","ct","genericMessage","setPrototypeOf","proto","InvariantError","verbosityLevels","verbosityLevel","wrapConsoleMethod","method","maybe","thunk","global$1","GLOBAL_KEY","getDEV","global","DEV","safeGlobal","needToRemove","install","remove","devAssert","isObjectLike","LineRegExp","lastLineStart","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","toNormalizedOptions","firstArg","GraphQLError","rawArgs","_this$nodes","_nodeLocations$","nodes","originalError","extensions","undefinedIfEmpty","nodeLocations","loc","originalExtensions","formattedError","syntaxError","Location$1","startToken","endToken","Token","kind","QueryDocumentKeys","kindValues","isNode","maybeNode","maybeKind","OperationTypeNode","DirectiveLocation","Kind","isWhiteSpace","isDigit","isLetter","isNameStart","isNameContinue","dedentBlockStringLines","_firstNonEmptyLine2","commonIndent","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","indent","leadingWhitespace","str","printBlockString","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","skipLeadingNewLine","TokenKind","Lexer","startOfFileToken","nextToken","readNextToken","isPunctuatorTokenKind","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","lexer","createToken","col","bodyLength","readComment","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","chunkStart","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","readHexDigit","read16BitHexCode","trailingCode","lineStart","currentLine","blockLines","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","formatObject","object","entries","getObjectTag","remaining","isProduction","instanceOf","constructor","_value$constructor","valueClassName","stringifiedValue","Source","locationOffset","isSource","Parser","parseValue","parser","sourceObj","hasDescription","keywordToken","operation","operationToken","nameOrAlias","alias","isConst","hasTypeCondition","varName","directives","innerType","operationTypes","interfaces","types","values","getTokenDesc","repeatable","locations","Location","getTokenKindDesc","atToken","openKind","parseFn","closeKind","delimiterKind","maxTokens","printString","escapedRegExp","escapedReplacer","escapeSequences","BREAK","visit","visitor","visitorKeys","enterLeaveMap","getEnterLeaveForKind","inArray","edits","ancestors","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","_node$kind","visitInParallel","visitors","skipping","mergedVisitor","hasVisitor","enterList","leaveList","enter","leave","mergedEnterLeave","_enterList$i","_leaveList$i","kindVisitor","print","ast","printDocASTReducer","MAX_LINE_LENGTH","join","varDefs","wrap","selections","block","selectionSet","argsLine","typeCondition","variableDefinitions","isBlockString","hasMultilineItems","maybeArray","separator","_maybeArray$filter$jo","maybeString","_maybeArray$some","isExecutableDefinitionNode","isSelectionNode","isTypeSystemDefinitionNode","isTypeDefinitionNode","isTypeSystemExtensionNode","isTypeExtensionNode","removeTemporaryGlobals","checkDEV","shouldInclude","variables","getInclusionDirectives","directive","ifArgument","evaledValue","hasDirectives","all","nameSet","uniqueCount","hasClientExports","isInclusionDirective","directiveArguments","directiveName","ifValue","getFragmentQueryDocument","fragmentName","actualFragmentName","fragments","definition","query","createFragmentMap","symTable","fragment","getFragmentFromSelection","fragmentMap","isNonNullObject","makeReference","isReference","isDocumentNode","isStringValue","isBooleanValue","isIntValue","isFloatValue","isVariable","isObjectValue","isListValue","isEnumValue","isNullValue","valueToObjectRepresentation","argObj","nestedArgObj_1","variableValue","listValue","nestedArgArrayObj","storeKeyNameFromField","directivesObj","getStoreKeyName","KNOWN_DIRECTIVES","fieldName","filterKeys","filteredArgs_1","completeFieldName","stringifiedArgs","stringifyReplacer","_key","argumentsObjectFromField","argObj_1","resultKeyNameFromField","getTypenameFromResult","isField","fragments_1","typename","isInlineFragment","checkDocument","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","def","isNonEmptyArray","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","getDirectiveMatcher","tests","test","makeInUseGetterFunction","defaultKey","inUse","removeDirectivesFromDocument","getInUseByOperationName","getInUseByFragmentName","getInUse","ancestor","operationCount","directiveMatcher","hasRemoveDirective","shouldRemoveField","nodeDirectives","originalFragmentDefsByPath","firstVisitMadeChanges","fieldOrInlineFragmentVisitor","docWithoutDirectiveSubtrees","_parent","_path","originalNode","populateTransitiveVars","childFragmentName","allFragmentNamesUsed","fragmentWillBeRemoved","enterVisitor","usedVariableNames_1","varDef","addTypenameToDocument","skip","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","buildQueryFromSelectionSet","definitionOperation","modifiedDoc","removeClientSetsFromDocument","hasOwnProperty","mergeDeep","sources","mergeDeepArray","merger","DeepMerger","defaultReconciler","reconciler","sourceKey","targetValue","_createForOfIteratorHelperLoose","allowArrayLike","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","arr2","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","Observable","isObservable","hostReportError","enqueue","cleanupSubscription","subscription","cleanup","unsubscribe","closeSubscription","flushSubscription","queue","notifySubscription","observer","onNotify","Subscription","subscriber","subscriptionObserver","SubscriptionObserver","_proto","_proto2","_proto3","done","_this2","_this3","_this4","hasSeed","hasValue","seed","_this5","_len","startNext","_this6","subscriptions","completeIfDone","observable","_iterator","_step","_len2","_key2","symbolObservablePonyfill","Symbol","ponyfill","fakeObsSymbol","toString","cloneDeep","cloneDeepHelper","seen","copy_1","copy_2","deepFreeze","workSet","shallowFreeze","maybeDeepFreeze","iterateObserversSafely","observers","argument","observersWithMethod","obs","asyncMap","mapFn","catchFn","complete","activeCallbackCount","completed","promiseQueue","makeCallback","examiner","delegate","both","handler","caught","sub","canUseWeakMap","canUseWeakSet","canUseSymbol","canUseAsyncIteratorSymbol","usingJSDOM","canUseLayoutEffect","fixObservableSubclass","subclass","set","isPromiseLike","Concast","reason","iterable","nextOrError","nextResultListeners","called","isExecutionPatchIncrementalResult","isExecutionPatchInitialResult","isExecutionPatchResult","isApolloPayloadResult","mergeIncrementalData","prevResult","mergedData","isNumericKey","graphQLResultHasError","getGraphQLErrorsFromResult","graphQLErrors","incrementalResult","compact","prefixCounts","makeUniqueId","stringifyForDisplay","undefId","mergeOptions","defaults","fromError","errorValue","throwServerError","response","validateOperation","OPERATION_FIELDS","createOperation","starting","setContext","getContext","transformOperation","transformedOperation","passthrough","forward","toLink","ApolloLink","isTerminating","link","LinkError","request","links","leftLink","rightLink","second","firstLink","nextLink","execute","version","isNodeResponse","isReadableStream","isAsyncIterableIterator","isStreamableBlob","isBlob","isNodeReadableStream","asyncIterator","iterator","nodeStreamIterator","stream","waiting","onData","chunk","shiftedArr","pair","onEnd","getNext","promiseIterator","promise","resolved","readerIterator","reader","responseIterator","PROTOCOL_ERRORS_SYMBOL","graphQLResultHasProtocolErrors","isApolloError","generateErrorMessage","ApolloError","protocolErrors","clientErrors","networkError","extraInfo","readMultipartBody","decoder","contentType","boundaryVal","boundary","running","searchFrom","headers","contentType_1","parseHeaders","parseJsonBody","handleError","headerText","headersInit","bodyText","getResult","parseError","readJsonBody","parseAndCheckHttpResponse","serializeFetchParameter","defaultHttpOptions","defaultHeaders","defaultOptions","fallbackHttpConfig","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","http","removeDuplicateHeaders","operationName","preserveHeaderCase","normalizedHeaders_1","headerData","normalizedHeaders","checkFetcher","fetcher","createSignalIfSupported","controller","signal","selectURI","fallbackURI","contextURI","rewriteURIForGET","chosenURI","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","newURI","backupFetch","createHttpLink","linkOptions","uri","preferredFetch","includeExtensions","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","clientAwarenessHeaders","contextHeaders","contextConfig","unusedNames_1","_controller","definitionIsMutation","definitionIsSubscription","isSubscription","hasDefer","acceptHeader","currentFetch","ctype","HttpLink","fnToStr","previousComparisons","equal","check","aTag","bTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","info","aKey","aValue","aCode","endsWith","nativeCodeSuffix","isDefinedKey","full","bSet","defaultMakeData","forEach","Trie","weakness","makeData","isObjRef","currentContext","MISSING_VALUE","idCounter","makeSlotClass","slots","saved","globalKey","globalHost","Slot","defaultDispose","Cache","older","newer","parentEntrySlot","toArray","maybeUnsubscribe","entryOrDep","emptySetPool","POOL_TARGET_SIZE","assert","optionalMessage","valueIs","valueGet","valueCopy","Entry","mightBeDirty","rememberParent","reallyRecompute","reportDirty","forgetChildren","eachParent","forgetChild","reportDirtyChild","reportCleanChild","recomputeNewValue","maybeSubscribe","setClean","reportClean","parentCount","parents","parentWasClean","childValue","removeDirtyChild","_value","EntryMethods","depsByKey","subscribe","depend","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","caches","originalFunction","keyArgs","makeCacheKey","optimistic","dirtyKey","peekKey","forgetKey","ApolloCache","optimisticId","updateResult","transaction","MissingFieldError","hasOwn","isNullish","defaultDataIdFromObject","__typename","_id","defaultConfig","normalizeConfig","shouldCanonizeResults","getTypenameFromStoreObject","store","objectOrReference","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","storeValueIsStoreObject","makeProcessedFieldsMerger","extractFragmentContext","DELETE","delModifier","INVALIDATE","EntityStore","policies","group","objOrRef","objOrIdOrRef","mergeIntoStore","dataId","storeObject","dependOnExistence","existing","incoming","merged","storeObjectReconciler","fieldsToDirty_1","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","fieldNameOrOptions","fieldValue","modify","limit","evicted","extraRootIds","newData","__META","rest_1","rootId","ids","idsToRemove","root_1","found_1","workSet_1","CacheGroup","caching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","resultCaching","Stump","layerId","replay","ownStoreObject","parentStoreObject","fromParent","existingObject","incomingObject","existingValue","incomingValue","shallowCopy","isObjectOrArray","ObjectCanon","original","proto_1","array_1","firstValueIndex_1","obj_1","json","canonicalStringify","stringifyCanon","resetCanonicalStringify","canonical","stringifyCache","execSelectionSetKeyArgs","StoreReader","canonizeResults","peekArgs","other","returnPartialData","execResult","missing","firstMissing","latest","enclosingRef","objectsToMerge","missingMerger","handleMissing","resultName","finalResult","frozen","childResult","assertSelectionSetForIdValue","tree","cacheSlot","cacheInfoMap","getCacheInfo","forgetCache","rv","recallCache","makeVar","listeners","broadcast","oldListeners","attach","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","extract","keyObject","collectSpecifierPaths","schemaKeyPath","extracted","extractKeyPath","extractKey","keyArgsFnFromSpecifier","collected","keyPath","firstKey","firstChar","directiveName_1","directiveArgs","variableName","varKeyPath","extractor","getSpecifierPaths","toMerge","paths_1","currentPath_1","reducer","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","partialContext","normalizeReadFieldOptions","policy","keyFn","specifierOrId","typePolicies","queryType","mutationType","subscriptionType","keyFields","setMerge","read","old","possibleTypes","supertype","subtype","policy_1","supertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","regExp","fuzzyString","fieldSpec","specifierOrString","nameOrField","readOptions","makeFieldFunctionOptions","parentTypename","childTypename","storage","makeMergeObjectsFunction","toReference","canRead","readFieldArgs","argc","eType","iType","typesDiffer","getContextFlavor","clientOnly","deferred","flavored","StoreWriter","overwrite","operationDefinition","mergeTree","fieldNodeSet","entityRef","applied","fieldsWithSelectionSets_1","hasSelectionSet_1","hasMergeFunction_1","childTree","warnAboutDataLoss","readField","result_1","resultFieldKey","getChildMergeTree","maybeRecycleChildMergeTree","dataRef","sets","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","warnings","existingRef","incomingObj","getChild","parentType","typeDotName","childTypenames","InMemoryCache","rootStore","resetResultIdentities","previousReader","watch","idToRemove","newOptimisticData","removeOptimistic","onWatchUpdated","perform","layer","optimisticData","alreadyDirty","diff","lastDiff","NetworkStatus","isNetworkRequestInFlight","networkStatus","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","defaultFetchPolicy","fetchPolicy","initialFetchPolicy","opDef","saveAsLastResult","logMissingFieldErrors","newResult","variablesMustMatch","reobserveOptions","vars","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","updatedQuerySet","fetchMoreResult","updateQuery","reobserveCacheFirst","subscriptionData","newOptions","pollInterval","newNetworkStatus","pollingInfo","maybeFetch","poll","useDisposableConcast","oldVariables","oldFetchPolicy","mergedOptions","concast","fromLink","lastError","errorResult","obsQuery","nextFetchPolicy","LocalState","client","resolvers","fragmentMatcher","resolverGroup","remoteResult","onlyRunForcedResolvers","localResult","forceResolvers","rootValue","mainDefinition","selectionsToResolve","defaultOperationType","execContext","isClientFieldDescendant","resultsToMerge","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","isClientField","isSingleASTNode","selectionsToResolveCache","collectByDefinition","definitionNode","matches_1","___","spread","fragmentSelections","destructiveMethodCounts","wrapDestructiveCacheMethod","cancelNotifyTimeout","QueryInfo","queryId","oq","oldDiff","watchOptions","lastWrite","cacheWriteBehavior","shouldWriteResult","diffOptions","errorPolicy","ignoreErrors","writeWithErrors","QueryManager","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","assumeImmutableResults","_info","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","keepRootFields","mutationId","mutationStoreValue","self","storeResult","cacheWrites","skipCache","updateQueries_1","observableQuery","queryName","updater","currentQueryResult","nextQueryResult","results_1","write","isFinalResult","transformCache","transformed","noConnection","clientQuery","serverQuery","cacheEntry_1","add","include","queries","queryNamesAndDocs","legacyQueryOptions","included","nameOrDoc","includeStandby","observableQueryPromises","makeObservable","hasErrors","hasProtocolErrors","observablePromise_1","deduplication","inFlightLinkObservables_1","byVariables_1","varJson_1","requestId","linkDocument","aqr","notifyOnNetworkStatusChange","normalized","fromVariables","sourcesWithInfo","cleanupCancelFn","containsDataFromLink","updateCache","includedQueriesById","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","shouldNotify","hasSuggestedDevtools","ApolloClient","credentials","ssrForceFetchDelay","connectToDevTools","typeDefs","clientAwarenessName","clientAwarenessVersion","payload","serializedState","newLink","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","string","cacheKeyFromLoc","processFragments","seenKeys","definitions","sourceKeySet","stripLoc","parseDocument","parsed","gql","literals","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","extras","gql_1","contextKey","getApolloContext","ApolloProvider","ApolloContext","useApolloClient","override","useContext","didWarnUncachedGetSnapshot","uSESKey","realHook","useSyncExternalStore","getSnapshot","getServerSnapshot","inst","checkIfSnapshotChanged","DocumentType","cached","mutations","verifyDocumentType","requiredOperationName","usedOperationName","useQuery","useInternalState","stateRef","InternalState","useState","setTick","tick","previousResult","previousData","useCallback","onNext","watchQueryOptions","currentWatchQueryOptions","globalDefaults","otherOptions","useMemo","ssrAllowed","nextResult","error_1","queryResult","resultWithoutPartial","useMutation","setResult","executeOptions","baseOptions","clientOptions","onCompleted","result_2","setter","handle","closed","req","errorHandler","retriedSub","retriedResult","ErrorLink","UNDEFINED","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_getGlobal","_gbl","_gblInst","_hasOwnProperty","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","_hasVisited","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","theFunc","instFuncTable","baseFuncs","baseProto","visited","_getInstFunc","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","perfOptions","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","ObjClass","ObjProto","ObjAssign","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","_cachedGlobal","getGlobal","useCached","throwTypeError","objCreateFn","tmpFunc","__objAssignFnImpl","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","_DYN_INITIALIZE","_DYN_NAME","_DYN_GET_NOTIFY_MGR","_DYN_IDENTIFIER","_DYN_PUSH","_DYN_IS_INITIALIZED","_DYN_CONFIG","_DYN_INSTRUMENTATION_KEY","_DYN_LOGGER","_DYN_LENGTH","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_REMOVE_NOTIFICATION_2","_DYN_STOP_POLLING_INTERNA3","_DYN_ON_COMPLETE","_DYN_GET_PLUGIN","_DYN_FLUSH","_DYN__EXTENSIONS","_DYN_SPLICE","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_DIAG_LOG","_DYN_SET_NEXT_PLUGIN","_DYN_CREATE_NEW","_DYN_COOKIE_CFG","_DYN_INDEX_OF","_DYN_SUBSTRING","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_SET_ENABLED","_DYN_SUBSTR","_DYN_NODE_TYPE","_DYN_APPLY","_DYN_REPLACE","_DYN_ENABLE_DEBUG_EXCEPTI4","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TO_LOWER_CASE","_DYN_CALL","_DYN_TYPE","_DYN_HANDLER","_DYN_LISTENERS","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","_DYN_VERSION","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_ERROR_TO_CONSOLE","STR_WARN_TO_CONSOLE","STR_GET_PERF_MGR","strToISOString","cStrEndsWith","strIndexOf","strMap","strReduce","cStrTrim","strToString","strConstructor","_objDefineProperty","_objFreeze","_objKeys","StringProto","_strTrim","_strEndsWith","DateProto","_dataToISOString","_isArray","_objToString","_fnToString","_objFunctionString","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isUndefined","isNullOrUndefined","isNotNullOrUndefined","isObject","isFunction","normalizeJsName","isString","_all","letter","objForEachKey","callbackfn","strEndsWith","_strEndsWithPoly","searchLen","valLen","strContains","_isArrayPoly","isNumber","isBoolean","isPlainObject","toISOString","date","_toISOStringPoly","pad","num","arrForEach","arrIndexOf","searchElement","arrMap","arrReduce","strTrim","_objKeysHasDontEnumBug","_objKeysDontEnums","objKeys","objType","dontEnumsLength","objDefineAccessors","getProp","setProp","_doNothing","objFreeze","dateNow","dt","getExceptionName","valChk","srcChk","theValue","getSetValue","defValue","getCfgValue","isTruthy","throwError","_createProxyFunction","srcFunc","originalArguments","proxyAssign","chkSet","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","createClassFromInterface","class_1","_this_1","optimizeObject","theObject","objExtend","obj1","obj2","obj3","obj4","obj5","obj6","theArgs","extended","argLen","deep","isArgArray","isArgObj","propOk","isNewArray","clone","createEnumStyle","enumClass","createValueMap","mapClass","strWindow","strDocument","strDocumentMode","strNavigator","strHistory","strLocation","strConsole","strPerformance","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","tmp","getGlobalInst","gbl","hasWindow","hasDocument","hasNavigator","getNavigator","hasHistory","getHistory","checkForMock","mockLocation","getConsole","getPerformance","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","isIE","getIEVersion","userAgentStr","navigator_1","tridentVer","dumpObj","objectTypeDump","propertyValueDump","isBeaconsSupported","isFetchSupported","withKeepAlive","isSupported","useXDomainRequest","isXhrSupported","xmlHttpRequest","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","_getExtensionNamespace","ns","getDebugListener","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","_sanitizeDiagnosticText","_logToConsole","theConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","_self","strProps","diagnosticText","safeGetLogger","core","DiagnosticLogger","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebugExceptions","_setDefaultsFromConfig","severity","_debugExtMsg","messageKey","_logInternalMessage","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","_getLogger","logger","_throwInternal","_warnToConsole","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","isAsync","accessorDefined","theDetails_1","childTime","childEvts","childEvt","PerfManager","manager","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","details","perfMgr","perfEvt","currentActive","ex","getGblPerfMgr","UInt32Mask","MaxUInt32","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","random32","signed","mwcRandom32","newId","maxLength","base64chars","number","chars","instanceName","_dataUid","_createAccessor","_canAcceptData","_getCache","theCache","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","strToGMTString","strToUTCString","strCookie","strExpires","strEnabled","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_gblCookieMgr","createCookieMgr","_isMgrEnabled","cookieMgr","_createCookieMgrConfig","rootConfig","cookieMgrCfg","cookieEnabled","_isIgnoredCookie","_isBlockedCookie","safeGetCookieMgr","cookieCfg","cookieMgrConfig","_domain","_enabled","areCookiesSupported","gblManager","maxAgeSec","domain","_extractParts","_isIE","nowMs","expireMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","setCookieFn","_setCookieValue","_formatCookieValue","_getCookieValue","delCookie","thePart","theDate","cookieValue","theCookie","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","evtName","aiEvts","registeredEvents","_doDetach","handlerRef","_doAttach","_doUnregister","unRegFn","theEvent","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","eventOff","evtName_1","regEvent","addEventHandler","removeEventHandler","_addEventListeners","excludeEvents","added","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","pageUnloadAdded","removePageHideEventListener","generateW3CId","hexValues","oct","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","flags","isValidTraceId","isValidSpanId","formatTraceParent","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","initPlugins","lastPlugin","proxy","pluginState","thePlugin","isInitialized","sortPlugins","plugins","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","trace","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","_moveNext","_getExtCfg","_getConfig","nextPlugin","_iterateChain","_addOnComplete","onComplete","that","nextProxy","completeDetails","mergeDefault","theConfig","extConfig","newConfig_1","cfgValue","createProcessTelemetryContext","internalContext","_processNext","env","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","hasProcessTelemetry","hasSetNext","chainId","proxyChain","_processTelemetry","_unloadPlugin","_updatePlugin","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","ChannelControllerPriority","ChannelValidationMessage","_addChannelQueue","channelQueue","queueItem","createChannelControllerPlugin","_processChannelQueue","theChannels","processFn","_runChainOnComplete","channels","channelChain","chainCtx","_doUpdate","theUpdateState","_doTeardown","theUnloadState","_getChannel","pluginIdentifier","ext","channelController","pluginChain","callBack","sendReason","cbTimeout","doneIterating","cbTimer","doCallback","handled_1","createChannelQueues","extensionQueue_1","createUnloadHandlerContainer","handlers","_addHandler","_runHandlers","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hooks","_initDefaults","_setDefaults","unloadDone","theUnloadCtx","_unloadCallback","oldHooks","updateDone","theUpdateCtx","_updateCallback","hooks","currentCtx","rootCtx","TelemetryInitializerPlugin","_initializers","_base","telemetryInitializer","theInitializer","initializer","doNotSendItem","telemetryInitializersCount","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","defaultInitConfig","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","extPriorities","extPriority","_isPluginPresent","exists","_createDummyNotificationManager","BaseCore","_config","_isInitialized","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_coreExtensions","_channelControl","_channelConfig","_channelQueue","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_internalLogPoller","notificationManager","_initDebugListener","_initPerfManager","_initExtConfig","cfgExtensions","_initPluginChain","controls","telemetryItem","_createTelCtx","createPerfMgr","eventQueue","interval","_flushInternalLogs","unloadComplete","processUnloadCtx","_getPluginChain","_doUnload","flushComplete","_flushChannels","_getPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removed","removedPlugins_1","_removePlugins","createNew","traceCtx","theExtensions","theExt","removeCb","pluginsToRemove","thePlugins","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","newQueue","channel","disableDbgExt","enablePerfMgr","_runListeners","NotificationManager","perfEvtsSendAll","AppInsightsCore","_notifyInvalidEvent","_validateTelemetryItem","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","_getOwner","checkPrototype","owner","InstrumentProto","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","createDomEvent","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","_DYN_SANITIZE_KEY_AND_ADD2","_DYN_SANITIZE_EXCEPTION","_DYN_SANITIZE_PROPERTIES","_DYN_SANITIZE_MEASUREMENT3","strEmpty","stringToBoolOrDefault","msToTimeSpan","totalms","ms","sec","hour","days","isCrossOriginError","lineNumber","columnNumber","RequestHeaders","StorageType","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","uid","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlEnableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exception","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","dataSanitizeId","_msgId","inputTrunc","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","protocol","port","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","CorrelationIdHelper","requestUrl","currentHost","requestHost","includedDomains","matchExists_1","regex","excludedDomains","responseHeader","correlationId","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","dateTimeUtilsNow","perf","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","kv","kvParts","locationPrefix","Envelope","Event","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","_getStackFromErrorObj","errorObj","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","exceptionParsedStackThreshold","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","_formatErrorCode","Exception","severityLevel","_ExceptionDetails","errorSrc","exceptions","exceptionData","problemGroup","isManual","exceptionDetailsInterface","assembly","fileName","exceptionDetails","sourceFrame","level","DataPoint","Metric","stdDev","dataPoint","PageView","durationMs","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","Data","baseType","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createTelemetryItem","envelopeName","customProperties","systemProperties","iKey","Extensions","CtxTagKeys","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_DYN_DISABLE_EXCEPTION_TR0","_DYN_AUTO_TRACK_PAGE_VISI1","_DYN_OVERRIDE_PAGE_VIEW_D2","_DYN_ENABLE_UNHANDLED_PRO3","_DYN_SAMPLING_PERCENTAGE","_DYN_IS_STORAGE_USE_DISAB4","_DYN_IS_BROWSER_LINK_TRAC5","_DYN_ENABLE_AUTO_ROUTE_TR6","_DYN_NAME_PREFIX","_DYN_DISABLE_FLUSH_ON_BEF7","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_9","_DYN_SEND_PAGE_VIEW_INTER10","_DYN_SEND_PAGE_VIEW_PERFO11","_DYN_POPULATE_PAGE_VIEW_P12","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER13","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI14","_DYN_ADD_TELEMETRY_INITIA15","_DYN_IS_PERFORMANCE_TIMIN16","_DYN_GET_PERFORMANCE_TIMI17","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT18","_DYN_IS_PERFORMANCE_TIMIN19","_DYN_GET_ENTRIES_BY_TYPE","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM20","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","intervalHandle","itemQueue","pageViewPerformanceSent","_logger","_addQueue","allItems","doFlush","pageView","pageViewSent","customDuration","maxDurationLimit","processed","pageViewPerformance","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","_isPerformanceTimingDataReady","timing","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","durations","_navigator","isGoogleBot","PageViewPerformanceManager","navigationTiming","network","dom","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","Timing","strEvent","_dispatchEvent","evnt","_getReason","MinMilliSeconds","_configMilliseconds","_getDefaultConfig","_updateStorageUsage","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_prevUri","_currUri","_addHook","EventTelemetry","metric","inPv","inPvp","measurement","theError","exceptionPartB","_sendCORSException","errorString","_populateDefaults","pageVisitTime","trackPageVisitTime","_updateBrowserLinkTracking","pageViewItem","_updateExceptionTracking","_updateLocationChange","_addDefaultTelemetryInitializers","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","locn","_addUnhandledPromiseRejectionTracking","_history","strUndefined","_addHistoryListener","_getDistributedTraceCtx","distributedTraceCtx","namePrefix","_popstateHandler","_locationChangeHandler","traceLocationName","_location","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_DATA","_DYN_ON_LINE","_DYN_ENQUEUE","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_BATCH_PAYLOADS","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN__MAX__BUFFER__SIZE","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_TRIGGER_SEND","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN__SENDER","_DYN__SENDER_CONFIG","_DYN__BUFFER","_DYN_ENABLE_SESSION_STORA4","_DYN_ENDPOINT_URL","_DYN_CUSTOM_HEADERS","_DYN_DISABLE_XHR","_DYN_ONUNLOAD_DISABLE_FET5","_DYN_DISABLE_TELEMETRY","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_CONVERT_UNDEFINED","_DYN__XHR_READY_STATE_CHA6","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ITEMS_RECEIVED","_DYN_IS_RETRY_DISABLED","_DYN_SET_REQUEST_HEADER","_DYN_MAX_BATCH_INTERVAL","_DYN_EVENTS_SEND_REQUEST","_DYN_DISABLE_INSTRUMENTAT7","_DYN_GET_SAMPLING_SCORE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","extApp","extDevice","web","envData","envBaseData","envProps","extOs","extTrace","tgs","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","remoteDepData","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseData","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","_disableEvents","createOfflineListener","parentEvtNamespace","_isListening","_onlineStatus","_enableEvents","_setOnline","_setOffline","_isOnline","_unload","BaseSendBuffer","_buffer","_bufferFullMessageSent","batch","ArraySendBuffer","SessionStorageSendBuffer","bufferItems","_getBuffer","notDeliveredItems","_setBuffer","_removePayloadsFromBuffer","sentElements","payloads","prefixedKey","bufferJson","buffer_1","Serializer","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","expectedType","MIN_INPUT_LENGTH","HashCodeScoreGenerator","SamplingScoreGenerator","hashCodeGenerator","Sample","sampleRate","samplingPercentage","isSampledIn","FetchSyncRequestSizeLimitBytes","_getResponseText","xhr","_getDefaultAppInsightsChannelConfig","defaultCustomHeaders","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_lastSend","_paused","_timeoutHandle","_serializer","_stamp_specific_redirects","_headers","_syncFetchPayload","_fallbackSender","_syncUnloadSender","_offlineListener","_clearScheduledTimer","_setupTimer","_doUnloadSend","diagLog","_validateInstrumentationKey","customHeader","senderConfig","sendPostFunc","_xdrSender","_xhrSender","_fetchSender","_beaconSender","_fetchKeepAliveSender","diagLogger","_isSampledIn","convertUndefined","defaultEnvelopeIkey","aiEnvelope_1","doNotSendItem_1","bufferSize","countOfItemsInPayload","_checkResponsStatus","_formatErrorMessageXhr","forcedSender","_notifySendRequest","ieVer","failed","retry","errors_1","_isRetriable","_resendPayload","xdr","responseText","_parseResponse","_formatErrorMessageXdr","status","responseUrl","res","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","_doBeaconSend","plainTextBatch","queued","droppedPayload","thePayload","endPointUrl","headerName","payloadSize","_doFetchSender","requestHeaders","batchLength","ignoreResponse","responseHandled","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","statusCode","hostingProtocol","_getNotifyMgr","sendRequest","disableIKeyValidationFlag","UUID_Regex","regexp","orig","creator","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_CAN_INCLUDE_CORRELAT3","_DYN_GET_ABSOLUTE_URL","_DYN_HEADERS","_DYN_REQUEST_HEADERS","_DYN_APP_ID","_DYN_TRACK_DEPENDENCY_DAT4","_DYN_DISTRIBUTED_TRACING_5","_DYN_START_TIME","_DYN_ENABLE_REQUEST_HEADE6","_DYN_ENABLE_AJAX_ERROR_ST7","_DYN_ENABLE_AJAX_PERF_TRA8","_DYN_MAX_AJAX_CALLS_PER_V9","_DYN_ENABLE_RESPONSE_HEAD10","_DYN_EXCLUDE_REQUEST_FROM11","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN12","_DYN_DISABLE_FETCH_TRACKI13","_DYN_STATUS","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE14","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI15","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA16","_DYN_GET_PART_APROPS","_DYN_GET_CORRELATION_CONT17","_DYN_PERF_MARK","_DYN_AJAX_PERF_LOOKUP_DEL18","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES19","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","XHRMonitoringState","ajaxRecord","strResponseText","ajaxType","enableRequestHeaderTracking","getResponse","responseType","partA","traceExt","AJAX_MONITOR_PREFIX","strDiagLog","strAjaxData","strFetch","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","theOpen","_throwInternalCritical","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","_getEmptyConfig","emptyConfig","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_instrumentXhr","_instrumentFetch","_populateContext","_reportDependencyInternal","currentWindowHost","appId","traceFlags","traceParent","dependencyListener","dependencyInitializer","distributedTracingMode","propExt","_canIncludeHeaders","header","rlt","fetch","isPolyfill","fetchData","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","isDisabled","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","initialized","traceID","spanID","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","sysProperties","responseHeadersString","performance_1","markId","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","_getFailedFetchDiagnosticsMessage","_reportFetchError","initializers","Application","Device","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_SDK_EXTENSION","_DYN_GET_SESSION_ID","_DYN_SESSION_COOKIE_POSTF6","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_SESSION_EXPIRATION_M7","_DYN_SESSION_RENEWAL_MS","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_COOKIE_DOMAIN","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM8","Version","Internal","cookieNameConst","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","sessionExpirationMs","sessionRenewalMs","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","_setStorage","isValid","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","tokens","acqMs","renewalMs","getNewId","acq","renewalPeriodMs","acqTimeLeftMs","cookie","cookieDomain","guid","renewal","TelemetryTrace","parentId","_validateUserInput","User","userCookiePostfix","params","_generateNewId","_generateNewCookie","userId","acqStr","newCookie","_setUserCookie","oneYear","authCookie","authCookieString","authenticatedUserId","accountId","storeInCookie","isInvalidInput","user_id","user_cookie","strExt","strTags","_removeEmpty","TelemetryContext","previousTraceCtx","sesId","autoSession","application","tags","device","internal","user","PropertiesPlugin","_extensionConfig","_distributedTraceCtx","_previousTraceCtx","theContext","userCtx","_processTelemetryInternal","breezeChannel","nullValue","PropertiesPlugin$1","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_UPDATE_SNIPPET_DEFIN0","_DYN_LOAD_APP_INSIGHTS","_DYN_DIAGNOSTIC_LOG_INTER4","_DYN_DISABLE_FLUSH_ON_BEF11","_DYN_DISABLE_FLUSH_ON_UNL12","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_APP_INSIGHTS","_DYN_DISABLE_IKEY_DEPRECA18","_DYN_GET_TRANSMISSION_CON19","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF20","_internalSdkSrc","_ignoreUpdateSnippetProperties","Initialization","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","cs","ingest","DependenciesPlugin","isErrMessageDisabled","_getSKUDefaults","legacyMode","_updateSnippetProperties","snippetVer","length_1","call","appInsightsInstance","performHousekeeping","loadedPlugin","propertiesPlugin","excludePageUnloadEvents","_getCurrentDependencies","sdkSrc","isModule","cdns","scrpt","ApplicationInsights","__spread","__spreadArrays","Constants","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","AADServerParamKeys","ClaimsRequestKeys","PromptValue","SSOTypes","CodeChallengeMethodValues","ResponseMode","GrantType","CacheAccountType","Separators","CredentialType","CacheSchemaType","CacheType","APP_METADATA","CLIENT_INFO","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","AuthorityMetadataSource","SERVER_TELEM_CONSTANTS","AuthenticationScheme","ThrottlingConstants","Errors","PasswordGrantConstants","ResponseCodes","RegionDiscoverySources","RegionDiscoveryOutcomes","CacheOutcome","JsonTypes","AuthErrorMessage","AuthError","errorCode","suberror","errDesc","DEFAULT_CRYPTO_IMPLEMENTATION","notImplErr","ClientAuthErrorMessage","ClientAuthError","caughtError","caughtExtractionError","invalidRawTokenString","errDetail","endpoint","hashParamObj","invalidState","missingState","missingNonce","givenScope","appendError","StringUtils","authToken","tokenPartsRegex","crackedToken","strObj","decode","LogLevel","Logger","loggerOptions","defaultLoggerCallback","setLoggerOptions","timestamp","logHeader","log","containsPii","AzureCloudInstance","CredentialEntity","credKey","credVal","homeAccountId","environment","credentialType","clientId","realm","familyId","tokenType","requestedClaimsHash","credentialKey","clientOrFamilyId","credentialId","scopes","ClientConfigurationErrorMessage","ClientConfigurationError","claimsRequestParseError","urlString","urlParseError","inputScopes","promptValue","invalidHeaderName","ScopeSet","scopeArr","filteredInput","inputScopeString","scopeString","lowerCaseScopes","lowerCaseScopesSet","scopeSet","defaultScopeCount","defaultScope","newScope","newScopes","otherScopes","unionScopes","sizeOtherScopes","sizeThisScopes","sizeUnionScopes","buildClientInfo","rawClientInfo","crypto","decodedClientInfo","buildClientInfoFromHomeAccountId","clientInfoParts","AuthorityType","AccountEntity","accountInterface","accountKey","clientInfo","idToken","authority","cloudGraphHostName","msGraphHost","nativeAccountId","account","preferredUsername","email","serverClientInfo","authType","cryptoObj","entity","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","AuthToken","rawToken","encodedToken","decodedToken","base64TokenPayload","base64Decoded","authTime","maxAge","fiveMinuteSkew","CacheManager","cryptoImpl","currentAccounts","accountValues","numAccounts","allAccounts","accountEntity","accountInfo","cacheRecord","credential","currentTokenCache","currentScopes","currentAccessTokens","removedAccessTokens_1","tokenEntity","tokenScopeSet","accountFilter","allCacheKeys","matchingAccounts","userAssertionHash","keyId","matchingCredentials","credType","updatedCacheKey","matchingAppMetadata","matchedEntity","removedAccounts","removedCredentials","cacheEntity","accessTokenWithAuthSchemeEntity","kid","cachedAccount","cachedIdToken","cachedAccessToken","cachedRefreshToken","cachedAppMetadata","accountCache","accounts","idTokenFilter","credentialCache","idTokens","numIdTokens","authScheme","accessTokenFilter","accessTokens","numAccessTokens","familyRT","refreshTokenFilter","refreshTokens","numRefreshTokens","appMetadataFilter","appMetadata","appMetadataEntries","numAppMetadata","cloudMetadata","isNotAccessTokenCredential","entityScopeSet","requestTargetScopeSet","propertyName","DefaultStorageClass","DEFAULT_TOKEN_RENEWAL_OFFSET_SEC","DEFAULT_SYSTEM_OPTIONS","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","DEFAULT_LIBRARY_INFO","DEFAULT_CLIENT_CREDENTIALS","DEFAULT_AZURE_CLOUD_OPTIONS","DEFAULT_TELEMETRY_OPTIONS","buildClientConfiguration","userAuthOptions","userSystemOptions","userLoggerOption","storageImplementation","networkImplementation","cryptoImplementation","clientCredentials","libraryInfo","telemetry","serverTelemetryManager","persistencePlugin","serializableCache","buildAuthOptions","authOptions","ServerError","subError","ThrottlingUtils","thumbprint","cacheManager","thumbprintValue","throttleTime","currentSeconds","homeAccountIdentifier","NetworkManager","networkClient","tokenEndpoint","CcsCredentialType","RequestValidator","redirectUri","prompt","promptValues","claims","codeChallenge","codeChallengeMethod","eQParams","RequestParameterBuilder","responseMode","addOidcScopes","requestScopes","idTokenHint","domainHint","loginHint","sid","clientCapabilities","mergedClaims","appTelemetry","nonce","refreshToken","codeVerifier","clientSecret","clientAssertion","clientAssertionType","oboAssertion","tokenUse","grantType","sanitizedEQParams","username","password","cnfString","sshJwkString","logoutHint","queryParameterArray","BaseClient","configuration","performanceClient","ccsCred","queryString","updatedAuthority","parameterBuilder","IdTokenEntity","tenantId","idTokenEntity","TimeUtils","expiresOn","expirationSec","offsetCurrentTimeSec","cachedAt","cachedAtSec","AccessTokenEntity","accessToken","extExpiresOn","cryptoUtils","refreshOn","requestedClaims","atEntity","currentTime","tokenClaims","RefreshTokenEntity","rtEntity","InteractionRequiredServerErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthError","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","CacheRecord","accessTokenEntity","refreshTokenEntity","appMetadataEntity","ProtocolUtils","userState","libraryState","stateObj","stateString","splitState","libraryStateString","libraryStateObj","UrlString","lowerCaseUrl","components","urlObject","pathArray","regEx","urlComponents","pathSegments","relativeUrl","baseComponents","hashString","hashIndex1","hashIndex2","queryIndex1","queryIndex2","parsedHash","deserializedHash","parsedQueryString","deserializedQueryString","parameters","PerformanceEvents","PerformanceEventStatus","IntFields","KeyLocation","PopTokenGenerator","reqCnf","reqCnfString","kidThumbprint","resourceRequestMethod","resourceRequestUri","shrClaims","shrNonce","resourceUrlString","resourceUrlComponents","AppMetadataEntity","appMetaDataKeyArray","TokenCacheContext","tokenCache","hasChanged","ResponseHandler","cacheStorage","serverResponseHash","cachedState","serverResponse","errString","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","serverRequestId","idTokenObj","requestStateObj","cacheContext","responseScopes","expiresIn","extExpiresIn","refreshIn","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","authorityType","msGraphhost","fromTokenCache","requestState","popTokenGenerator","secret","tid","AuthorizationCodeClient","atsMeasurement","httpVerAuthority","responseHandler","hashFragment","hashUrlString","serverParams","logoutRequest","queryParametersString","requestBody","ccsCredential","reqCnfData","accountSid","accountLoginHintClaim","RefreshTokenClient","httpVerToken","isFOCI","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","foci","refreshTokenRequest","acquireTokenMeasurement","SilentFlowClient","refreshTokenClient","isOpenIdConfigResponse","rawMetdataJSON","EndpointMetadata","InstanceDiscoveryMetadata","ProtocolMode","AuthorityMetadataEntity","metadata","fromNetwork","isCloudInstanceDiscoveryResponse","isCloudInstanceDiscoveryErrorResponse","RegionDiscovery","networkInterface","environmentRegion","regionDiscoveryMetadata","autodetectedRegionName","localIMDSVersionResponse","currentIMDSVersion","currentIMDSVersionResponse","Authority","authorityOptions","cachedAuthorityUrl","cachedAuthorityParts","currentAuthorityParts","currentPart","cachedPart","metadataEntity","cloudDiscoverySource","endpointSource","harcodedMetadata","cachedParts","azureRegion","metadataEntityExpired","parsedResponse","instanceDiscoveryEndpoint","typedResponseBody","typedError","authorityString","azureCloudOptions","authorityAzureCloudInstance","tenant","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","AuthorityFactory","authorityUri","acquireTokenAuthority","authorityUrl","ServerTelemetryEntity","validateKey","validateEntity","ThrottlingEntity","StubbedNetworkModule","JoseHeaderErrorMessage","JoseHeaderError","JoseHeader","shrHeaderOptions","shrHeader","ServerTelemetryManager","telemetryRequest","platformFields","regionDiscoveryFields","requestWithRegionDiscoveryFields","lastRequests","maxErrors","failedRequests","errorCount","overflow","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","apiId","cacheOutcome","PerformanceClient","libraryName","libraryVersion","applicationTelemetry","measureName","preQueueTimesByEvents","preQueueTime","queueTime","queueMeasurement","existingMeasurements","measurementArray","eventCorrelationId","validMeasurement","performanceMeasuremeant","performanceMeasurement","inProgressEvent","staticFields","completedEvent","counters","existingStaticFields","existingEvents","queueMeasurementForCorrelationId","totalQueueTime","totalQueueCount","eventsForCorrelationId","completedEvents_1","incompleteSubsCount_1","sortedCompletedEvents","eventA","eventB","topLevelEvents","topLevelEvent","eventToEmit","subMeasurementName","finalEvent","callbackId","intFields","StubPerformanceMeasurement","StubPerformanceClient","BrowserAuthErrorMessage","BrowserAuthError","hashValue","windowParentCheck","givenPrompt","errorDesc","errorDetail","BrowserConstants","NativeConstants","NativeExtensionMethod","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","InMemoryCacheKeys","ApiId","InteractionType","InteractionStatus","DEFAULT_REQUEST","KEY_FORMAT_JWK","WrapperSKU","DB_NAME","DB_VERSION","DB_TABLE_NAME","CacheLookupPolicy","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","givenStorageLocation","BrowserStorage","cacheLocation","storageSupported","MemoryStorage","cacheKeys","BrowserProtocolUtils","browserCrypto","locationHash","BrowserCacheManager","cacheConfig","idTokenKey","clientInfoKey","errorKey","errorDescKey","idTokenValue","clientInfoValue","errorDescValue","keysToMigrate","newKey","parsedJson","parsedAccount","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","allKeys","wrapperSKU","wrapperVersion","sku","activeAccountKeyFilters","activeAccountValueFilters","activeAccountKeyLocal","activeAccountValueLocal","activeAccount","activeAccountValueObj","activeAccountKey","activeAccountValue","accountObj","throttlingCacheKey","parsedThrottlingCache","throttlingCache","generateKey","itemCookie","cookieName","expires","cookieStr","expireTime","cookieList","cookiePrefix","cookieKey","cookieLifeDays","today","expr","generatedKey","stateId","stateCacheKey","authorityCacheKey","authorityInstance","nonceCacheKey","stateKey","interactionType","stateValue","parsedState","authCodeRequest","encodedValue","encodedTokenRequest","parsedRequest","cachedAuthority","cachedRequest","matchClientId","inProgress","adalIdTokenString","msalIdTokenString","cachedIdTokenString","IdToken","currentCacheKey","cacheItem","DEFAULT_BROWSER_CACHE_MANAGER","cacheOptions","FetchClient","reqBody","e_3","optionsHeaders","headerDict","XhrClient","jsonResponse","networkResponse","headers_1","headerString","headerArr","headerVal","BrowserUtils","contentWindow","urlParts","isResponseHash","allowRedirectInIframe","isIframedApp","isBrowserEnvironment","allowNativeBroker","msie","msie11","msedge","BaseInteractionClient","storageImpl","eventHandler","navigationClient","nativeMessageHandler","validatedRequest","requestRedirectUri","forceRefresh","telemetryPayload","requestAuthority","StandardInteractionClient","generatedPkceParams","validLogoutRequest","idTokenClaims","requestAzureCloudOptions","clientConfig","discoveredAuthority","requestCorrelationId","platformStateObj","getAuthorityMeasurement","userAuthority","builtAuthority","browserState","legacyLoginHint","InteractionHandler","authCodeModule","networkModule","authCodeResponse","validateNonce","nonceKey","cachedNonce","cachedCcsCred","tokenResponse","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","RedirectHandler","navigationOptions","EventType","NativeStatusCode","NativeAuthErrorMessage","NativeAuthError","SilentCacheClient","silentRequest","silentAuthClient","cachedToken","NativeInteractionClient","browserStorage","provider","nativeStorageImpl","nativeATMeasurement","nativeRequest","messageBody","validatedResponse","e_2","e_4","mats","authorityPreferredCache","accountProperties","responseAccessToken","responseTokenType","shrParameters","canonicalAuthority","remainingProperties","getPrompt","NativeMessageHandler","handshakeTimeoutMs","extensionId","preferredProvider","backupProvider","handshakeResolver","resolver","nativeExtensionProvider","authenticationScheme","RedirectClient","validRequest","handleBackButton","authClient","interactionHandler","navigateUrl","redirectStartPage","responseHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","processHashOnRedirect","homepage","cachedHash","nativeInteractionClient","userRequestState","currentAuthority","logoutUri","requestStartPage","PopupClient","popupName","popupWindowAttributes","popup","mainWindowRedirectUri","isNativeBroker","fetchNativeAccountIdMeasurement","popupParameters","popupWindow","state_1","maxTicks","ticks","urlNavigate","popupParams","winLeft","winTop","winWidth","winHeight","NavigationClient","DEFAULT_POPUP_TIMEOUT_MS","DEFAULT_IFRAME_TIMEOUT_MS","DEFAULT_REDIRECT_TIMEOUT_MS","DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS","buildConfiguration","userInputAuth","userInputCache","userInputSystem","userInputTelemetry","DEFAULT_AUTH_OPTIONS","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","providedSystemOptions","overlayedConfig","SilentHandler","systemOptions","iframe","timeout","nowMark","timeoutMark","contentHash","frameHandle","authFrame","SilentIframeClient","silentHandler","msalFrame","SilentRefreshClient","EventHandler","eventType","message_1","cacheValue","parsedValue","MathUtils","hex","GuidGenerator","guidHolder","guidResponse","regexGuid","BrowserStringUtils","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","dataString","dataView","sView","nPart","nLen","Base64Encode","inputArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","nUint6","Base64Decode","encodedString","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","charNum","RANDOM_BYTE_ARR_LENGTH","PkceGenerator","pkceCodeVerifierB64","pkceCodeVerifier","pkceHashedCodeVerifier","ModernBrowserCrypto","dataBuffer","algorithm","extractable","keyUsages","keyData","MsrBrowserCrypto","entropy","MsBrowserCrypto","msGenerateKey","msExportKey","resultBuffer","resultString","keyString","keyBuffer","msImportKey","msSign","digestOperation","PKCS1_V15_KEYGEN_ALG","S256_HASH_ALG","MODULUS_LENGTH","PUBLIC_EXPONENT","BrowserCrypto","cryptoOptions","usages","DatabaseStorage","openDB","objectStore","dbGet","dbPut","dbDelete","dbGetKeys","dbContainsKey","deleteDbRequest","AsyncMemoryStorage","storeName","containsKey","e_5","dbDeleted","e_6","CryptoKeyStoreNames","CryptoKeyStore","CryptoOps","cryptoConfig","publicKeyThumbMeasurement","keyPair","publicKeyJwk","pubKeyThumprintObj","publicJwkString","publicJwkHash","privateKeyJwk","unextractablePrivateKey","keyFound","signJwtMeasurement","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","encodedShrHeader","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","signedJwt","plainText","hashBuffer","hashBytes","BrowserPerformanceMeasurement","entriesForMeasurement","BrowserPerformanceClient","startPageVisibility","preQueueTimes","TokenCache","cacheRecordAccount","requestHomeAccountId","extendedExpiresOn","HybridSpaAuthorizationCodeClient","SilentAuthCodeClient","ClientApplication","nativeCacheOptions","loggedInAccounts","redirectResponseKey","redirectResponse","nativeClient","redirectClient","isLoggingIn","isLoggedIn","atPopupMeasurement","popupClient","silentIframeClient","atbcMeasurement","hybridAuthCode_1","silentAuthCodeClient","silentTokenResult","tokenRenewalError","silentCacheClient","commonRequest","silentRefreshClient","userName","localAccountId","setInteractionInProgress","PublicClientApplication","silentRequestKey","cachedResponse","silentRequest_1","requestWithCLP_1","cacheError","refreshTokenError","isServerError","isInteractionRequiredError","isInvalidGrantError","CLEAR_USER_CACHE","ReferrerManager","__publicField","referrer","GRAPH_API_RESOURCE_ID","LOGIN_AUTHORITY","hitsAuthRequest","graphAuthRequest","msalConfig","AuthService","apolloService","graphResult","apiAuth","graphAuth","redirectResult","webPackageVersion","commitHash","fatalErrorNotice","multiAccountNotice","authService","ensureBaseUrl","HitsGraphQLRequestError","errorObject","HitsGraphQLNetworkError","ApolloService","__privateAdd","_client","__privateSet","__privateGet","asyncAuthLink","httpLink","composeErrorInfo","errorReportingLink","graphQLError","createInMemoryCache","AuthContext","createContext","AuthContextProvider","authState","setAuthState","setAccount","contextObject","useAuthContext","META","FIND_OR_ADD_USER","MemberAssignmentRole","MemberAssignmentRole2","hitsLogo","AppLoadingIndicator","jsxs","StyledDiv","jsx","HitsIntroParagraph","DebugInfoAccordion","DebugInfoToggle","DebugInfoDump","shadows","corners","colors","RestylableLink","RestylableDefaultButtonLink","RestylablePrimaryButtonLink","RestylableLinkButton","Spacer","getPowersOfTwoArray","currentMask","presentPowers","joinByBitwiseOr","matchAllBits","sample","mask","matchAnyBit","hitsRoles","roleMeta","getRoleBasedFeatureFlags","roles","userRoleBits","matchUserRoleBits","ErrorPage","__vitePreload","UserProfileContext","UserProfileContextProvider","myRoles","setMyRoles","roleBasedFeatureFlags","setRoleBasedFeatureFlags","isEmulatingRole","setIsEmulatingRole","findOrAddUser","authError","setUnhandledError","userAlias","sanitizedAccount","initializeRole","toggleEmulatedRole","previousRoles","existingRole","resetEmulatedRoles","isLoading","Suspense","Fragment","replaceError","AccountIdentifier","useUserProfileContext","HITS_OCV_APP_ID","useCreateIssue","myProfile","claim","audience","loggableUserId","audienceGroup","researchGroup","NativeFormData","formdata","manifest","manifestString","manifestBlob","sizes","convertFileSize","byteSize","targetUnit","getBlobUrlFromFile","file","useHeadlessFileInput","pickFiles","inputElement","handleFileChange","SingleImagePicker","localPreviewUrl","setLocalPreviewUrl","warningMessage","setWarningMessage","isPopulated","isRemote","isLocal","isRemoving","files","pickedFileSizeMb","handleRemoveImage","isSettledToEnabled","isSettledToDisabled","ActionsRow","PreviewGrid","ImagePreview","TopLevelType","dialogConfigMap","subCategoryMap","CustomerServiceDialog","topLevelType","onClose","initialContent","submissionStatus","setSubmissionStatus","setMessageBody","createIssue","messageInputRef","isValidationFailed","setIsValidationFailed","selectedSubCategoryType","setSelectedSubCategoryType","subCategoryOptions","setSubCategoryOptions","topLevelProps","setTopLevelProps","screenshot","setScreenshot","metaData","isSubmittingButtonVisible","isSuccessMessageVisible","isErrorMessageVisible","isSubmitting","mappedProps","subCategory","onCloseInternal","handleSubmit","isFormValid","issueFooter","StyledGrid","StyledSuccessParagraph","StyledErrorParagraph","StyledSpinner","EventHub","wrappedListener","FLAGS_LOCAL_STORAGE_KEY","FlagManager","flag","getInitialsInternal","textToColor","bifrost","exposeBifrostOnWindow","CustomerServiceDialogContext","CustomerServiceDialogContextProvider","setIsOpen","setTopLevelType","setInitialContent","open","contextValue","useCustomerServiceDialogContext","GRAPH_API_BASE_URL_V1","useGraphApi","authContext","requestConfig","setRequestConfig","get","fullPath","DirectoryContext","resolveRequestConfig","isRequestConfigResolved","requestConfigAsync","usersSet","DirectoryContextProvider","directoryChanged","setDirectoryChanged","getUserByPrincipalName","principal","requestUserByPrincipalName","stubUser","requestUsersByPrincipalName","identifiers","qualifiedIdentifiers","deduplicatedIdentifiers","useDirectoryContext","FAVORITE_REPORT","UNFAVORITE_REPORT","FAVORITES","iconNames","entityTypes","_entries","findEntityMeta","predicate","entityMeta","foundEntry","getReportUrl","entityType","entityTypeSlug","FavoritesContext","FavoritesContextProvider","favorites","setFavorites","favoritesData","favoriteReport","unfavoriteReport","isFavorite","favorite","addFavorite","prevFavorites","newFavorite","clonedFavorites","addedFavorite","removeFavorite","backupFavorites","removedFavoriteEntityId","displayFavorites","useFavoritesContext","ADD_PAGE_VIEW","URL_PROMOCODE_SEARCH_KEY","STORAGE_PROMOCODE_KEY","sessionPromoCode","setLatestPromoCode","getLatestPromoCode","useSessionPromoCode","urlPromoCode","mutableSearchParams","useLocalStorageWatcher","usePageViewsCacheEviction","apolloClient","evictCache","PageViewContext","PageViewContextProvider","promoCode","addPageView","addPageViewToAppInsight","referrerUrl","addPageViewToGraph","useTrackPageView","pageViewContext","useTrackPageViewWithGraph","SiteSearchContext","SiteSearchContextProvider","searchBoxRef","isHeaderTakeover","setIsHeaderTakeover","takeoverHeader","releaseHeader","useSiteSearchContext","defaultTheme","ThemeContextProvider","StyledComponentsThemeProvider","UserPhotosContext","imageUrlPendingPlaceholder","photosMap","UserPhotosContextProvider","photosChanged","setPhotosChanged","myPhotoUrl","setMyPhotoUrl","rawData","blobUrl","getPhotoUrl","requestPhotoByIdentifier","existingEntry","requestPhotos","useUserPhotosContext","GlobalContextProviders","hideInPrint","screenReaderOnly","ResetStyles","createGlobalStyle","useNavigationPerfMarker","useResizeObserver","refOrElement","onSizeChange","useLayoutEffect","targetNode","resizeObserver","useSkipToMain","SITE_MAIN_ID","ALL_COMMUNICATIONS","ALLOWED_AUDIENCE","CommunicationMessage","displayableMessage","useIsOffline","isOffline","setIsOffline","handleDisconnect","handleReconnect","NetworkStatusMessage","isOfflineOnce","setIsOfflineOnce","EmbeddedLink","SEARCHBOX_HISTORY_ITEMS","TrackerContext","TrackerContextProvider","parentValue","useTrackerContext","newPath","updatedValue","AboutDialog","isServerVersionLoading","StyledDescriptionTerm","StyledDescriptionDetails","DEFAULT_CONFIG","formatTitle","fallbackTitle","draftPrefix","isDraft","partTitle","Delayed","isDelayedRenderReady","setIsDelayedRenderReady","LiveAnnouncer","politeness","AnnouncementRoot","InlineSpinner","ExceptionMessage","GroupTitle","maxLineCount","SuggestionItemPreview","SuggestionItem","SuggestionItemIcon","SuggestionItemText","DROPDOWN_PAGE_VIEW_LIMIT","DropdownHistory","userProfile","displayItems","RecentSection","RouterLink","useOnClickOutside","clickingTargetElement","useOnFocusOut","ignoreNull","newFocusTarget","ALLOWED_FILTERS","filterTypes","getFilterValues","searchObject","raw","replaceFiltersFacetValues","mutableSearchObj","setFiltersFacetValues","getFiltersQueryParamString","filters","getFiltersFromSearchObject","filterKey","filterValue","buildSearchUrl","urlSearchParams","EMPTY_QUERY","DEFAULT_SKIP","DEFAULT_TOP","DEFAULT_SORT","useManagedUrl","sort","skipString","currentPage","spellCheck","setSpellCheck","isSpellCheck","newUrl","setQ","_resetPagination","_resetFilters","setSort","setSkip","setFiltersFacet","facet","newSearchObj","setFiltersFacetValueItem","valueItem","newValues","setPage","page","setPrevPage","setNextPage","DropdownFooter","AllResultsLink","AdvancedSearchLink","HUB_SUGGESTION_FRAGMENT","SEARCH_SUGGESTIONS","getHubUrl","tagName","itemNameSlug","RULES","pluralizeEntity","pluralizeWord","baseWord","dictionaryEntry","DICTIONARY","useDebounce","delayInMs","debouncedValue","setDebouncedValue","normalizeHubSuggestions","rawSuggestions","lowerCasePhrase","getUniqueSuggestions","isSuggestionRelevant","suggestions","eventTypes","useTrackAddFollow","useEventTrackerFactory","useTrackAddSearchPageFilter","useTrackCreate","useTrackEndDiscoverSession","useTrackEndSearchBoxSession","useTrackEndSearchPageSession","useTrackLinkDialogAction","useTrackLoadFeed","useTrackOpenFeedContent","useTrackOpenHomeContent","useTrackOpenHubPageContent","useTrackOpenRecommendedExplorations","useTrackOpenSearchBoxContent","useTrackOpenSearchPageContent","useTrackPresentationInvalidReconciliation","useTrackTimeSpent","useMetricTrackerFactory","restOfData","pathString","average","uploadedExitAction","isDropdownOpen","currentQuery","sessionStartTime","useSearchBoxAnalytics","trackEndSearchBoxSession","trackOpenSearchBoxContent","trackOpenDropdown","trackCloseDropdown","uploadResult","trackQueryUpdate","trackOpenFindResult","trackCommit","exitAction","sessionSummary","QUERY_DEBOUCE_MS","MAX_TOTAL_ITEMS","MAX_PHRASE_ITEMS","MAX_HUB_ITEMS","MATCH_TYPE_WEIGHTS","HUB_RANKING_WEIGHTS","REPORT_RANKING_WEIGHTS","DropdownSuggestions","debouncedQuery","displayPhrases","setDisplayPhrases","displayHubSections","setDisplayHubSections","displayReportSections","setDisplayReportSections","setIsEmpty","resultSummary","setResultSummary","mapHubFragmentToDisplaySuggestion","matchType","totalRemaining","resultSummaryFragments","phrases","exactItems","fuzzyItems","hubItems","trimmedHubItems","hubSections","section","trimmedReportItems","reportSections","handleOpenPhrase","handleOpenEntity","ScreenReaderHeading","phrase","displayHub","DROPDOWN_ELEMENT_ID","SearchBox","isInputFocused","setIsInputFocused","displayQuery","setDisplayQuery","trimmedQuery","siteSearchContext","setIsDropdownOpen","isEmptyState","skipToMain","onPassiveCancel","onInputFocus","onInputBlur","onRootKeydown","allResultsLink","onCommitSearch","openInNewTab","effectiveQuery","resultPageUrl","onInputKeydown","onQueryChange","newQuery","closeDropdown","handleOpenHistoryItem","handleOpenAllResult","handleOpenAdvancedSearch","StyledSearchWidget","SearchBoxInput","MY_CONTRIBUTION_DRAFTS","MY_CONTRIBUTION_PUBLISHED","MY_CONTRIBUTION_STATS","backups","useMockData","mockNoDrafts","existingQuery","mockNoPublished","existingContentQuery","existingStatsQuery","resetAll","AppHeader","mockData","helpMenuTriggerRef","isHelpMenuOpen","setIsHelpMenuOpen","overflowMenuTriggerRef","isOverflowMenuOpen","setIsOverflowMenuOpen","meMenuTriggerRef","isMeMenuOpen","setIsMeMenuOpen","openCustomerServiceDialog","isCustomerServiceDialogOpen","isAboutDialogOpen","setIsAboutDialogOpen","popupsDisabled","setIsPopupsDisabled","helpMenuItems","overFlowMenuItems","handleClickWithoutClosing","prefetchRecentHistory","emulateRoleOptions","meMenuItems","debugTools","StyledHeader","HomeLink","StyledSquareButton","ExternalPage","appPages","lazy","AppPages","useInitializeAppInsights","messageStackHeightVariableName","AppContent","isEmbed","handleSkipToMain","messageStackRef","SkipLink","StyledPageRoot","MessageStack","ScrollArea","AppRoot","handleReactRendered","mountNode","ReactDOM"],"sources":["../../../../node_modules/react/cjs/react.production.min.js","../../../../node_modules/react/index.js","../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/react/jsx-runtime.js","../../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/scheduler/index.js","../../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/react-dom/index.js","../../../../node_modules/@fluentui/set-version/lib/setVersion.js","../../../../node_modules/@fluentui/set-version/lib/index.js","../../../../node_modules/tslib/tslib.es6.mjs","../../../../node_modules/@fluentui/merge-styles/lib/Stylesheet.js","../../../../node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","../../../../node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","../../../../node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","../../../../node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","../../../../node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","../../../../node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","../../../../node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","../../../../node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","../../../../node_modules/@fluentui/merge-styles/lib/styleToClassName.js","../../../../node_modules/@fluentui/merge-styles/lib/mergeStyles.js","../../../../node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","../../../../node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","../../../../node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","../../../../node_modules/@fluentui/merge-styles/lib/fontFace.js","../../../../node_modules/@fluentui/merge-styles/lib/keyframes.js","../../../../node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","../../../../node_modules/@fluentui/utilities/lib/dom/canUseDOM.js","../../../../node_modules/@fluentui/utilities/lib/dom/getWindow.js","../../../../node_modules/@fluentui/utilities/lib/Async.js","../../../../node_modules/@fluentui/utilities/lib/object.js","../../../../node_modules/@fluentui/utilities/lib/EventGroup.js","../../../../node_modules/@fluentui/utilities/lib/dom/getDocument.js","../../../../node_modules/@fluentui/utilities/lib/scroll.js","../../../../node_modules/@fluentui/utilities/lib/warn/warn.js","../../../../node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","../../../../node_modules/@fluentui/utilities/lib/BaseComponent.js","../../../../node_modules/@fluentui/utilities/lib/DelayedRender.js","../../../../node_modules/@fluentui/utilities/lib/GlobalSettings.js","../../../../node_modules/@fluentui/utilities/lib/KeyCodes.js","../../../../node_modules/@fluentui/utilities/lib/Rectangle.js","../../../../node_modules/@fluentui/utilities/lib/appendFunction.js","../../../../node_modules/@fluentui/utilities/lib/aria.js","../../../../node_modules/@fluentui/utilities/lib/array.js","../../../../node_modules/@fluentui/utilities/lib/sessionStorage.js","../../../../node_modules/@fluentui/utilities/lib/rtl.js","../../../../node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","../../../../node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","../../../../node_modules/@fluentui/dom-utilities/lib/getParent.js","../../../../node_modules/@fluentui/dom-utilities/lib/elementContains.js","../../../../node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","../../../../node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","../../../../node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","../../../../node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","../../../../node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","../../../../node_modules/@fluentui/utilities/lib/focus.js","../../../../node_modules/@fluentui/utilities/lib/dom/on.js","../../../../node_modules/@fluentui/utilities/lib/classNamesFunction.js","../../../../node_modules/@fluentui/utilities/lib/memoize.js","../../../../node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","../../../../node_modules/@fluentui/utilities/lib/controlled.js","../../../../node_modules/@fluentui/utilities/lib/css.js","../../../../node_modules/@fluentui/utilities/lib/customizations/Customizations.js","../../../../node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","../../../../node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","../../../../node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","../../../../node_modules/@fluentui/utilities/lib/customizations/Customizer.js","../../../../node_modules/@fluentui/utilities/lib/hoistStatics.js","../../../../node_modules/@fluentui/utilities/lib/customizations/customizable.js","../../../../node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","../../../../node_modules/@fluentui/utilities/lib/extendComponent.js","../../../../node_modules/@fluentui/utilities/lib/getId.js","../../../../node_modules/@fluentui/utilities/lib/properties.js","../../../../node_modules/@fluentui/utilities/lib/hoist.js","../../../../node_modules/@fluentui/utilities/lib/initializeComponentRef.js","../../../../node_modules/@fluentui/utilities/lib/keyboard.js","../../../../node_modules/@fluentui/utilities/lib/setFocusVisibility.js","../../../../node_modules/@fluentui/utilities/lib/useFocusRects.js","../../../../node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","../../../../node_modules/@fluentui/utilities/lib/initials.js","../../../../node_modules/@fluentui/utilities/lib/localStorage.js","../../../../node_modules/@fluentui/utilities/lib/language.js","../../../../node_modules/@fluentui/utilities/lib/merge.js","../../../../node_modules/@fluentui/utilities/lib/mobileDetector.js","../../../../node_modules/@fluentui/utilities/lib/modalize.js","../../../../node_modules/@fluentui/utilities/lib/osDetector.js","../../../../node_modules/@fluentui/utilities/lib/overflow.js","../../../../node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","../../../../node_modules/@fluentui/utilities/lib/styled.js","../../../../node_modules/@fluentui/utilities/lib/ie11Detector.js","../../../../node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","../../../../node_modules/@fluentui/utilities/lib/createMergedRef.js","../../../../node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","../../../../node_modules/@fluentui/style-utilities/lib/utilities/icons.js","../../../../node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","../../../../node_modules/@fluentui/theme/lib/mergeThemes.js","../../../../node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","../../../../node_modules/@fluentui/theme/lib/effects/FluentDepths.js","../../../../node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","../../../../node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","../../../../node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","../../../../node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","../../../../node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","../../../../node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","../../../../node_modules/@fluentui/theme/lib/createTheme.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","../../../../node_modules/@microsoft/load-themed-styles/lib-es6/index.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/theme.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","../../../../node_modules/@fluentui/style-utilities/lib/styles/getPlaceholderStyles.js","../../../../node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","../../../../node_modules/@fluentui/style-utilities/lib/cdn.js","../../../../node_modules/@fluentui/style-utilities/lib/version.js","../../../../node_modules/@fluentui/style-utilities/lib/index.js","../../../../node_modules/@fluentui/react/lib/common/DirectionalHint.js","../../../../node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","../../../../node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","../../../../node_modules/@fluentui/react-hooks/lib/useAsync.js","../../../../node_modules/@fluentui/react-hooks/lib/useConst.js","../../../../node_modules/@fluentui/react-hooks/lib/useBoolean.js","../../../../node_modules/@fluentui/react-hooks/lib/useControllableValue.js","../../../../node_modules/@fluentui/react-hooks/lib/useEventCallback.js","../../../../node_modules/@fluentui/react-hooks/lib/useId.js","../../../../node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","../../../../node_modules/@fluentui/react-hooks/lib/useOnEvent.js","../../../../node_modules/@fluentui/react-hooks/lib/usePrevious.js","../../../../node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","../../../../node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","../../../../node_modules/@fluentui/react-hooks/lib/useTarget.js","../../../../node_modules/@fluentui/react-hooks/lib/useUnmount.js","../../../../node_modules/@fluentui/react/lib/components/Popup/Popup.js","../../../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","../../../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","../../../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","../../../../node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","../../../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","../../../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","../../../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","../../../../node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","../../../../node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","../../../../node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","../../../../node_modules/@fluentui/react/lib/components/Layer/Layer.js","../../../../node_modules/@fluentui/react/lib/components/Callout/Callout.js","../../../../node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","../../../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","../../../../node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","../../../../node_modules/@fluentui/react/lib/components/Image/Image.types.js","../../../../node_modules/@fluentui/react/lib/components/Image/Image.base.js","../../../../node_modules/@fluentui/react/lib/components/Image/Image.styles.js","../../../../node_modules/@fluentui/react/lib/components/Image/Image.js","../../../../node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","../../../../node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","../../../../node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","../../../../node_modules/@fluentui/react/lib/components/Icon/Icon.js","../../../../node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","../../../../node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","../../../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","../../../../node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","../../../../node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","../../../../node_modules/@fluentui/react/lib/components/Persona/Persona.js","../../../../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","../../../../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","../../../../node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","../../../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","../../../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","../../../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","../../../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","../../../../node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","../../../../node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","../../../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","../../../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","../../../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","../../../../node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","../../../../node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","../../../../node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","../../../../node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","../../../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","../../../../node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","../../../../node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","../../../../node_modules/@fluentui/react/lib/components/Button/BaseButton.js","../../../../node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","../../../../node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","../../../../node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","../../../../node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","../../../../node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","../../../../node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","../../../../node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","../../../../node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","../../../../node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","../../../../node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","../../../../node_modules/@fluentui/react/lib/components/Label/Label.base.js","../../../../node_modules/@fluentui/react/lib/components/Label/Label.styles.js","../../../../node_modules/@fluentui/react/lib/components/Label/Label.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.base.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","../../../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.js","../../../../node_modules/@fluentui/react/lib/components/TextField/TextField.base.js","../../../../node_modules/@fluentui/react/lib/components/TextField/TextField.styles.js","../../../../node_modules/@fluentui/react/lib/components/TextField/TextField.js","../../../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","../../../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","../../../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","../../../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.types.js","../../../../node_modules/@fluentui/react/lib/components/Modal/Modal.styles.js","../../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","../../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","../../../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","../../../../node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.styles.js","../../../../node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.js","../../../../node_modules/@fluentui/react/lib/components/Modal/Modal.base.js","../../../../node_modules/@fluentui/react/lib/components/Modal/Modal.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.base.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.styles.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.base.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.styles.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.base.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.styles.js","../../../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-0.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-1.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-2.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-3.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-4.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-5.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-6.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-7.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-8.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-9.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-10.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-11.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-12.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-13.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-14.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-15.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-16.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-17.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/iconAliases.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/version.js","../../../../node_modules/@fluentui/font-icons-mdl2/lib/index.js","../../../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.types.js","../../../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.base.js","../../../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.styles.js","../../../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.js","../../../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.base.js","../../../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.styles.js","../../../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.styles.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.types.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.base.js","../../../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.js","../../../../node_modules/@remix-run/router/dist/router.js","../../../../node_modules/react-router/dist/index.js","../../../../node_modules/react-router-dom/dist/index.js","../../../../node_modules/stylis/src/Enum.js","../../../../node_modules/stylis/src/Utility.js","../../../../node_modules/stylis/src/Tokenizer.js","../../../../node_modules/stylis/src/Parser.js","../../../../node_modules/stylis/src/Prefixer.js","../../../../node_modules/stylis/src/Serializer.js","../../../../node_modules/stylis/src/Middleware.js","../../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/styled-components/dist/styled-components.browser.esm.js","../../../../node_modules/ts-invariant/lib/invariant.js","../../../../node_modules/@apollo/client/utilities/globals/maybe.js","../../../../node_modules/@apollo/client/utilities/globals/global.js","../../../../node_modules/@apollo/client/utilities/globals/DEV.js","../../../../node_modules/ts-invariant/process/index.js","../../../../node_modules/graphql/jsutils/devAssert.mjs","../../../../node_modules/graphql/jsutils/isObjectLike.mjs","../../../../node_modules/graphql/jsutils/invariant.mjs","../../../../node_modules/graphql/language/location.mjs","../../../../node_modules/graphql/language/printLocation.mjs","../../../../node_modules/graphql/error/GraphQLError.mjs","../../../../node_modules/graphql/error/syntaxError.mjs","../../../../node_modules/graphql/language/ast.mjs","../../../../node_modules/graphql/language/directiveLocation.mjs","../../../../node_modules/graphql/language/kinds.mjs","../../../../node_modules/graphql/language/characterClasses.mjs","../../../../node_modules/graphql/language/blockString.mjs","../../../../node_modules/graphql/language/tokenKind.mjs","../../../../node_modules/graphql/language/lexer.mjs","../../../../node_modules/graphql/jsutils/inspect.mjs","../../../../node_modules/graphql/jsutils/instanceOf.mjs","../../../../node_modules/graphql/language/source.mjs","../../../../node_modules/graphql/language/parser.mjs","../../../../node_modules/graphql/language/printString.mjs","../../../../node_modules/graphql/language/visitor.mjs","../../../../node_modules/graphql/language/printer.mjs","../../../../node_modules/graphql/language/predicates.mjs","../../../../node_modules/@apollo/client/utilities/globals/fix-graphql.js","../../../../node_modules/@apollo/client/utilities/globals/index.js","../../../../node_modules/@apollo/client/utilities/graphql/directives.js","../../../../node_modules/@apollo/client/utilities/graphql/fragments.js","../../../../node_modules/@apollo/client/utilities/common/objects.js","../../../../node_modules/@apollo/client/utilities/graphql/storeUtils.js","../../../../node_modules/@apollo/client/utilities/graphql/getFromAST.js","../../../../node_modules/@apollo/client/utilities/common/arrays.js","../../../../node_modules/@apollo/client/utilities/graphql/transform.js","../../../../node_modules/@apollo/client/utilities/common/mergeDeep.js","../../../../node_modules/zen-observable-ts/module.js","../../../../node_modules/symbol-observable/es/ponyfill.js","../../../../node_modules/symbol-observable/es/index.js","../../../../node_modules/@apollo/client/utilities/observables/Observable.js","../../../../node_modules/@apollo/client/utilities/common/cloneDeep.js","../../../../node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","../../../../node_modules/@apollo/client/utilities/observables/iteration.js","../../../../node_modules/@apollo/client/utilities/observables/asyncMap.js","../../../../node_modules/@apollo/client/utilities/common/canUse.js","../../../../node_modules/@apollo/client/utilities/observables/subclassing.js","../../../../node_modules/@apollo/client/utilities/observables/Concast.js","../../../../node_modules/@apollo/client/utilities/common/incrementalResult.js","../../../../node_modules/@apollo/client/utilities/common/errorHandling.js","../../../../node_modules/@apollo/client/utilities/common/compact.js","../../../../node_modules/@apollo/client/utilities/common/makeUniqueId.js","../../../../node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","../../../../node_modules/@apollo/client/utilities/common/mergeOptions.js","../../../../node_modules/@apollo/client/link/utils/fromError.js","../../../../node_modules/@apollo/client/link/utils/throwServerError.js","../../../../node_modules/@apollo/client/link/utils/validateOperation.js","../../../../node_modules/@apollo/client/link/utils/createOperation.js","../../../../node_modules/@apollo/client/link/utils/transformOperation.js","../../../../node_modules/@apollo/client/link/core/ApolloLink.js","../../../../node_modules/@apollo/client/link/core/from.js","../../../../node_modules/@apollo/client/link/core/execute.js","../../../../node_modules/@apollo/client/version.js","../../../../node_modules/@apollo/client/utilities/common/responseIterator.js","../../../../node_modules/@apollo/client/link/http/iterators/async.js","../../../../node_modules/@apollo/client/link/http/iterators/nodeStream.js","../../../../node_modules/@apollo/client/link/http/iterators/promise.js","../../../../node_modules/@apollo/client/link/http/iterators/reader.js","../../../../node_modules/@apollo/client/link/http/responseIterator.js","../../../../node_modules/@apollo/client/errors/index.js","../../../../node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","../../../../node_modules/@apollo/client/link/http/serializeFetchParameter.js","../../../../node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","../../../../node_modules/@apollo/client/link/http/checkFetcher.js","../../../../node_modules/@apollo/client/link/http/createSignalIfSupported.js","../../../../node_modules/@apollo/client/link/http/selectURI.js","../../../../node_modules/@apollo/client/link/http/rewriteURIForGET.js","../../../../node_modules/@apollo/client/link/http/createHttpLink.js","../../../../node_modules/@apollo/client/link/http/HttpLink.js","../../../../node_modules/@wry/equality/lib/index.js","../../../../node_modules/optimism/node_modules/@wry/trie/lib/trie.esm.js","../../../../node_modules/@wry/context/lib/slot.js","../../../../node_modules/optimism/lib/bundle.esm.js","../../../../node_modules/@apollo/client/cache/core/cache.js","../../../../node_modules/@apollo/client/cache/core/types/common.js","../../../../node_modules/@wry/trie/lib/index.js","../../../../node_modules/@apollo/client/cache/inmemory/helpers.js","../../../../node_modules/@apollo/client/cache/inmemory/entityStore.js","../../../../node_modules/@apollo/client/cache/inmemory/object-canon.js","../../../../node_modules/@apollo/client/cache/inmemory/readFromStore.js","../../../../node_modules/@apollo/client/cache/inmemory/reactiveVars.js","../../../../node_modules/@apollo/client/cache/inmemory/key-extractor.js","../../../../node_modules/@apollo/client/cache/inmemory/policies.js","../../../../node_modules/@apollo/client/cache/inmemory/writeToStore.js","../../../../node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","../../../../node_modules/@apollo/client/core/networkStatus.js","../../../../node_modules/@apollo/client/core/ObservableQuery.js","../../../../node_modules/@apollo/client/core/LocalState.js","../../../../node_modules/@apollo/client/core/QueryInfo.js","../../../../node_modules/@apollo/client/core/QueryManager.js","../../../../node_modules/@apollo/client/core/ApolloClient.js","../../../../node_modules/graphql-tag/lib/index.js","../../../../node_modules/@apollo/client/react/context/ApolloContext.js","../../../../node_modules/@apollo/client/react/context/ApolloProvider.js","../../../../node_modules/@apollo/client/react/hooks/useApolloClient.js","../../../../node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","../../../../node_modules/@apollo/client/react/parser/index.js","../../../../node_modules/@apollo/client/react/hooks/useQuery.js","../../../../node_modules/@apollo/client/react/hooks/useMutation.js","../../../../node_modules/@apollo/client/link/context/index.js","../../../../node_modules/@apollo/client/link/error/index.js","../../../../node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","../../../../node_modules/@microsoft/applicationinsights-shims/dist-esm/Constants.js","../../../../node_modules/@microsoft/applicationinsights-shims/dist-esm/Helpers.js","../../../../node_modules/@microsoft/applicationinsights-shims/dist-esm/TsLibShims.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InternalConstants.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DataCacheHelper.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EventHelpers.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/W3cTraceParent.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","../../../../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","../../../../node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","../../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/InternalConstants.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","../../../../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","../../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/InternalConstants.js","../../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","../../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","../../../../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","../../../../node_modules/@microsoft/applicationinsights-web/dist-esm/InternalConstants.js","../../../../node_modules/@microsoft/applicationinsights-web/dist-esm/__DynamicConstants.js","../../../../node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","../../src/utils/env.ts","../../src/utils/app-insights.ts","../../../../node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/_virtual/_tslib.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/utils/Constants.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/AuthError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/crypto/ICrypto.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/ClientAuthError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/utils/StringUtils.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/logger/Logger.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/packageMetadata.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/AuthorityOptions.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/request/ScopeSet.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/account/ClientInfo.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/AuthorityType.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/account/AuthToken.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/CacheManager.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/ServerError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/network/NetworkManager.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/account/CcsCredential.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/request/RequestValidator.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/client/BaseClient.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/utils/TimeUtils.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/url/UrlString.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceEvent.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/response/ResponseHandler.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/AuthorityMetadata.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/Authority.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/network/INetworkModule.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/error/JoseHeaderError.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/crypto/JoseHeader.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceClient.js","../../../../node_modules/@azure/msal-browser/node_modules/@azure/msal-common/dist/telemetry/performance/StubPerformanceClient.js","../../../../node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","../../../../node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","../../../../node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","../../../../node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","../../../../node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","../../../../node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","../../../../node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","../../../../node_modules/@azure/msal-browser/dist/packageMetadata.js","../../../../node_modules/@azure/msal-browser/dist/network/FetchClient.js","../../../../node_modules/@azure/msal-browser/dist/network/XhrClient.js","../../../../node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","../../../../node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","../../../../node_modules/@azure/msal-browser/dist/event/EventType.js","../../../../node_modules/@azure/msal-browser/dist/error/NativeAuthError.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/NativeInteractionClient.js","../../../../node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeMessageHandler.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","../../../../node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","../../../../node_modules/@azure/msal-browser/dist/config/Configuration.js","../../../../node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","../../../../node_modules/@azure/msal-browser/dist/event/EventHandler.js","../../../../node_modules/@azure/msal-browser/dist/utils/MathUtils.js","../../../../node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","../../../../node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","../../../../node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","../../../../node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","../../../../node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","../../../../node_modules/@azure/msal-browser/dist/crypto/ModernBrowserCrypto.js","../../../../node_modules/@azure/msal-browser/dist/crypto/MsrBrowserCrypto.js","../../../../node_modules/@azure/msal-browser/dist/crypto/MsBrowserCrypto.js","../../../../node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","../../../../node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","../../../../node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.js","../../../../node_modules/@azure/msal-browser/dist/cache/CryptoKeyStore.js","../../../../node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","../../../../node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceMeasurement.js","../../../../node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceClient.js","../../../../node_modules/@azure/msal-browser/dist/cache/TokenCache.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.js","../../../../node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.js","../../../../node_modules/@azure/msal-browser/dist/app/ClientApplication.js","../../../../node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","../../src/apis/mutations/clear-user-cache.ts","../../src/utils/referrer.ts","../../src/utils/auth-service.ts","../../src/utils/ensure-base-url.ts","../../src/utils/apollo-service.ts","../../src/contexts/auth-context.tsx","../../src/apis/queries/meta.ts","../../src/apis/mutations/find-or-add-user.ts","../../src/assets/images/hits-logo.svg","../../src/components/app-root/app-loading-indicator.tsx","../../src/components/errro-page/snippets.tsx","../../src/styles/theme.ts","../../src/components/shared/debug-info/debug-info.ts","../../src/styles/tokens.ts","../../src/components/shared/link/link.ts","../../src/components/shared/spacer/spacer.ts","../../src/utils/bitwise.ts","../../src/utils/role-meta.ts","../../src/contexts/user-profile-context/get-feature-flags.ts","../../src/contexts/user-profile-context/user-profile-context.tsx","../../src/apis/use-create-issue.ts","../../src/utils/convert-file-size.ts","../../src/utils/get-blob-url-from-file.ts","../../src/utils/use-headless-file-input.ts","../../src/components/shared/single-image-picker/single-image-picker.tsx","../../src/components/app-header/customer-service-dialog/customer-service-dialog.tsx","../../src/utils/event-hub.ts","../../src/utils/flag-manager.ts","../../src/utils/get-initials.ts","../../src/utils/text-to-color.ts","../../src/utils/bifrost.ts","../../src/contexts/customer-service-dialog-context.tsx","../../src/apis/use-graph-api.ts","../../src/utils/request.ts","../../src/contexts/directory-context.tsx","../../src/apis/mutations/favorite-report.ts","../../src/apis/mutations/unfavorite-report.ts","../../src/apis/queries/favorites.ts","../../src/utils/icon-names.ts","../../src/utils/entity-meta.ts","../../src/utils/get-report-url.ts","../../src/contexts/favorites-context.tsx","../../src/apis/mutations/add-page-view.ts","../../src/utils/use-session-promo-code.ts","../../src/utils/use-local-storage-watcher.ts","../../src/contexts/page-view-context/use-page-view-cache-eviction.ts","../../src/contexts/page-view-context/page-view-context.tsx","../../src/contexts/site-search-context.tsx","../../src/contexts/theme-context.tsx","../../src/contexts/user-photos-context.tsx","../../src/contexts/global-context-providers.tsx","../../src/styles/02-tools/hide-in-print.ts","../../src/styles/02-tools/screen-reader-only.ts","../../src/styles/03-generic/reset.ts","../../src/utils/navigation-perf-marker.ts","../../src/utils/use-resize-observer.ts","../../src/utils/use-skip-to-main.ts","../../src/apis/queries/communications.ts","../../src/components/app-banner/communication-message.tsx","../../src/utils/use-is-offline.ts","../../src/components/app-banner/network-status-message.tsx","../../src/apis/queries/searchbox-history-items.ts","../../src/contexts/tracker-context.tsx","../../src/components/app-header/about-dialog/about-dialog.tsx","../../src/utils/format-title.ts","../../src/utils/delayed.tsx","../../src/components/shared/live-announcer/live-announcer.tsx","../../src/components/shared/inline-spinner/inline-spinner.tsx","../../src/components/app-header/search-box/_exception-message.tsx","../../src/components/app-header/search-box/_group-title.tsx","../../src/styles/02-tools/line-clamp.ts","../../src/components/app-header/search-box/_suggestion-item.tsx","../../src/components/app-header/search-box/dropdown-history.tsx","../../src/utils/use-on-click-outside.ts","../../src/utils/use-on-focus-out.ts","../../src/components/search-page/search-url-utils.ts","../../src/components/search-page/build-search-url.ts","../../src/components/search-page/use-managed-url.ts","../../src/components/app-header/search-box/dropdown-footer.tsx","../../src/apis/queries/search-suggestions.ts","../../src/utils/get-hub-url.ts","../../src/utils/pluralize.ts","../../src/utils/use-debounce.ts","../../src/components/app-header/search-box/normalize-hub-suggestions.ts","../../src/utils/event-meta.ts","../../src/utils/use-tracker.ts","../../src/components/app-header/search-box/use-search-box-analytics.ts","../../src/components/app-header/search-box/dropdown-suggestions.tsx","../../src/components/app-header/search-box/search-box.tsx","../../src/apis/queries/my-contribution-drafts.ts","../../src/apis/queries/my-contribution-published.ts","../../src/apis/queries/my-contribution-stats.ts","../../src/components/app-header/use-mock-data.ts","../../src/components/app-header/app-header.tsx","../../src/components/external-page/external-page.tsx","../../src/components/app-pages/app-pages.tsx","../../src/components/app-root/use-initialize-app-insights.tsx","../../src/components/app-root/app-root.tsx","../../src/index.tsx"],"sourcesContent":["/**\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","'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","/**\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 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","/**\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","'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","/**\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","'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","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","/******************************************************************************\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\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","import { __assign } from \"tslib\";\nexport var InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0,\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1,\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2,\n};\nvar STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n // Why the cast?\n // if compiled/type checked in same program with `@fluentui/font-icons-mdl2` which extends `Window` on global\n // ( check packages/font-icons-mdl2/src/index.ts ) the definitions don't match! Thus the need of this extra assertion\n _global = (window || {});\n}\ncatch (_a) {\n /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n function Stylesheet(config, serializedStylesheet) {\n var _a, _b, _c, _d, _e, _f;\n this._rules = [];\n this._preservedRules = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onInsertRuleCallbacks = [];\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n this._config = __assign({ \n // If there is no document we won't have an element to inject into.\n injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function () {\n _stylesheet = _global[STYLESHEET_SETTING];\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n return _stylesheet;\n };\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n Stylesheet.prototype.serialize = function () {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n };\n /**\n * Configures the stylesheet.\n */\n Stylesheet.prototype.setConfig = function (config) {\n this._config = __assign(__assign({}, this._config), config);\n };\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onReset = function (callback) {\n var _this = this;\n this._onResetCallbacks.push(callback);\n return function () {\n _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onInsertRule = function (callback) {\n var _this = this;\n this._onInsertRuleCallbacks.push(callback);\n return function () {\n _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n Stylesheet.prototype.getClassName = function (displayName) {\n var namespace = this._config.namespace;\n var prefix = displayName || this._config.defaultPrefix;\n return \"\".concat(namespace ? namespace + '-' : '').concat(prefix, \"-\").concat(this._counter++);\n };\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args: args,\n rules: rules,\n };\n };\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n Stylesheet.prototype.classNameFromKey = function (key) {\n return this._keyToClassName[key];\n };\n /**\n * Gets all classnames cache with the stylesheet.\n */\n Stylesheet.prototype.getClassNameCache = function () {\n return this._keyToClassName;\n };\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.argsFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.args;\n };\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.rules;\n };\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n Stylesheet.prototype.insertRule = function (rule, preserve) {\n var injectionMode = this._config.injectionMode;\n var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n if (preserve) {\n this._preservedRules.push(rule);\n }\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n var sheet = element.sheet;\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n }\n else {\n this._rules.push(rule);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n this._onInsertRuleCallbacks.forEach(function (callback) { return callback(); });\n };\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n Stylesheet.prototype.getRules = function (includePreservedRules) {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n };\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n Stylesheet.prototype.reset = function () {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n this._onResetCallbacks.forEach(function (callback) { return callback(); });\n };\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n Stylesheet.prototype.resetKeys = function () {\n this._keyToClassName = {};\n };\n Stylesheet.prototype._getStyleElement = function () {\n var _this = this;\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(function () {\n _this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n };\n Stylesheet.prototype._createStyleElement = function () {\n var head = document.head;\n var styleElement = document.createElement('style');\n var nodeToInsertBefore = null;\n styleElement.setAttribute('data-merge-styles', 'true');\n var cspSettings = this._config.cspSettings;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n }\n else {\n var placeholderStyleTag = this._findPlaceholderStyleTag();\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n }\n else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n return styleElement;\n };\n Stylesheet.prototype._findPlaceholderStyleTag = function () {\n var head = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n };\n return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","import { Stylesheet } from './Stylesheet';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n var objects = [];\n var stylesheet = Stylesheet.getInstance();\n function _processArgs(argsList) {\n for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n var arg = argsList_1[_i];\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n }\n else {\n var translatedArgs = stylesheet.argsFromClassName(arg);\n if (translatedArgs) {\n _processArgs(translatedArgs);\n }\n else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n }\n else if (Array.isArray(arg)) {\n _processArgs(arg);\n }\n else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n _processArgs(args);\n return {\n classes: classes,\n objects: objects,\n };\n}\n//# sourceMappingURL=extractStyleParts.js.map","/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n return {\n rtl: getRTL(),\n };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n var rule = rulePairs[index];\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n//# sourceMappingURL=kebabRules.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a;\n if (!_vendorSettings) {\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n }\n else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n 'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n var vendorSettings = getVendorSettings();\n var name = rulePairs[index];\n if (autoPrefixNames[name]) {\n var value = rulePairs[index + 1];\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n var name = rulePairs[index];\n var value = rulePairs[index + 1];\n if (typeof value === 'number') {\n var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n var isVariableOrPrefixed = name.indexOf('--') > -1;\n var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n rulePairs[index + 1] = \"\".concat(value).concat(unit);\n }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n _a[LEFT] = RIGHT,\n _a[RIGHT] = LEFT,\n _a);\nvar VALUE_REPLACEMENTS = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n if (options.rtl) {\n var name_1 = rulePairs[index];\n if (!name_1) {\n return;\n }\n var value = rulePairs[index + 1];\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n }\n else if (name_1.indexOf(LEFT) >= 0) {\n rulePairs[index] = name_1.replace(LEFT, RIGHT);\n }\n else if (name_1.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name_1.replace(RIGHT, LEFT);\n }\n else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n }\n else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n }\n else if (NAME_REPLACEMENTS[name_1]) {\n rulePairs[index] = NAME_REPLACEMENTS[name_1];\n }\n else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n }\n else {\n switch (name_1) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n var parts = value.split(' ');\n var numberVal = parseInt(parts[partIndex], 10);\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n if (typeof value === 'string') {\n var parts = value.split(' ');\n if (parts.length === 4) {\n return \"\".concat(parts[0], \" \").concat(parts[3], \" \").concat(parts[2], \" \").concat(parts[1]);\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n var parts = [];\n var partStart = 0;\n var parens = 0;\n for (var i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n var rootStyle = rules && rules['&'];\n return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n var replacementInfo = [];\n var findGlobal = /\\:global\\((.+?)\\)/g;\n var match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map(function (v) { return \":global(\".concat(v.trim(), \")\"); })\n .join(', '),\n ]);\n }\n }\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce(function (selector, _a) {\n var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n var prefix = selector.slice(0, matchIndex);\n var suffix = selector.slice(matchEndIndex);\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\nfunction expandSelector(newSelector, currentSelector) {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n }\n else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n }\n else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n }\n else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map(function (s) { return s.trim(); })\n .forEach(function (separatedSelector) {\n return extractRules([value], rules, expandSelector(separatedSelector, currentSelector));\n });\n }\n else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\nfunction extractRules(args, rules, currentSelector) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (currentSelector === void 0) { currentSelector = '&'; }\n var stylesheet = Stylesheet.getInstance();\n var currentRules = rules[currentSelector];\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n var arg = args_1[_i];\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n var expandedRules = stylesheet.argsFromClassName(arg);\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n }\n else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n }\n else {\n for (var prop in arg) {\n if (arg.hasOwnProperty(prop)) {\n var propValue = arg[prop];\n if (prop === 'selectors') {\n // every child is a selector.\n var selectors = arg.selectors;\n for (var newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n }\n else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n }\n else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n }\n else {\n currentRules[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n if (parts.length === 0) {\n parts.push(value);\n }\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n }\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n var serialized = [options.rtl ? 'rtl' : 'ltr'];\n var hasProps = false;\n for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n var selector = _a[_i];\n serialized.push(selector);\n var rulesForSelector = rules[selector];\n for (var propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n if (count <= 0) {\n return '';\n }\n if (count === 1) {\n return target;\n }\n return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n if (!ruleEntries) {\n return '';\n }\n var allEntries = [];\n for (var entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n // Apply transforms.\n for (var i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n // Apply punctuation.\n for (var i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var rules = extractRules(args);\n var key = getKeyForRules(options, rules);\n if (key) {\n var stylesheet = Stylesheet.getInstance();\n var registration = {\n className: stylesheet.classNameFromKey(key),\n key: key,\n args: args,\n };\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n var rulesToInsert = [];\n for (var _a = 0, _b = rules.__order; _a < _b.length; _a++) {\n var selector = _b[_a];\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n return registration;\n }\n return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier) {\n if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n var stylesheet = Stylesheet.getInstance();\n var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (var i = 0; i < rulesToInsert.length; i += 2) {\n var rules = rulesToInsert[i + 1];\n if (rules) {\n var selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(\".\".concat(registration.className), specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = \"\".concat(selector, \"{\").concat(rules, \"}\").concat(selector.indexOf('@') === 0 ? '}' : '');\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className, key, args, rulesToInsert);\n }\n}\nexport function styleToClassName(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var registration = styleToRegistration.apply(void 0, __spreadArray([options], args, false));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n var styleArgs = args instanceof Array ? args : [args];\n var _a = extractStyleParts(styleArgs), classes = _a.classes, objects = _a.objects;\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n if (styleSets && styleSets.length === 1 && styleSets[0] && !styleSets[0].subComponentStyles) {\n return styleSets[0];\n }\n var mergedSet = {};\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n var workingSubcomponentStyles = {};\n for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n var currentSet = styleSets_1[_a];\n if (currentSet) {\n for (var prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n var currentComponentStyles = currentSet.subComponentStyles;\n for (var subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n }\n else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n continue;\n }\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n var mergedValue = mergedSet[prop];\n var currentValue = currentSet[prop];\n if (mergedValue === undefined) {\n mergedSet[prop] = currentValue;\n }\n else {\n mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue]), true), (Array.isArray(currentValue) ? currentValue : [currentValue]), true);\n }\n }\n }\n }\n }\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n var mergedSubStyles = mergedSet.subComponentStyles;\n var _loop_1 = function (subCompProp) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n var workingSet_1 = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = function (styleProps) {\n return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n }));\n };\n }\n };\n // now we process the subcomponent styles if there are any\n for (var subCompProp in workingSubcomponentStyles) {\n _loop_1(subCompProp);\n }\n }\n return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n var classNameSet = { subComponentStyles: {} };\n var styleSet = styleSets[0];\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} };\n }\n var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n var registrations = [];\n for (var styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n continue;\n }\n var styles = concatenatedStyleSet[styleSetArea];\n var _a = extractStyleParts(styles), classes = _a.classes, objects = _a.objects;\n if (objects === null || objects === void 0 ? void 0 : objects.length) {\n var registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n // FIXME: classNameSet invalid types - exposed in TS 4.5 - cast needed\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\n // FIXME: classNameSet invalid types - exposed in TS 4.5 - cast needed\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n var registration = registrations_1[_i];\n if (registration) {\n applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier);\n }\n }\n return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n var allStyles = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n allStyles[_i - 1] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n var styles = allStyles_1[_a];\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n return concatStyleSets.apply(void 0, result);\n }\n return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n var stylesheet = Stylesheet.getInstance();\n var rule = serializeRuleEntries(getStyleOptions(), font);\n var className = stylesheet.classNameFromKey(rule);\n if (className) {\n return;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@font-face{\".concat(rule, \"}\"), true);\n stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n var stylesheet = Stylesheet.getInstance();\n var rulesArray = [];\n for (var prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n var rules = rulesArray.join('');\n var className = stylesheet.classNameFromKey(rules);\n if (className) {\n return className;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@keyframes \".concat(name, \"{\").concat(rules, \"}\"), true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n var classes = {};\n var _loop_1 = function (styleName) {\n if (styles.hasOwnProperty(styleName)) {\n var className_1;\n Object.defineProperty(classes, styleName, {\n get: function () {\n if (className_1 === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className_1 = mergeStyles(styles[styleName]).toString();\n }\n return className_1;\n },\n enumerable: true,\n configurable: true,\n });\n }\n };\n for (var styleName in styles) {\n _loop_1(styleName);\n }\n return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM() {\n return (typeof window !== 'undefined' &&\n !!(window.document &&\n // eslint-disable-next-line deprecation/deprecation\n window.document.createElement));\n}\n//# sourceMappingURL=canUseDOM.js.map","import { canUseDOM } from './canUseDOM';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n}\ncatch (e) {\n /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n if (!canUseDOM() || typeof _window === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n//# sourceMappingURL=getWindow.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n if (!a || !b) {\n // only return true if both a and b are falsy\n return !a && !b;\n }\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map(function (p) {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p, theEnum[p]);\n }\n return undefined;\n })\n .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n return Object.keys(obj).reduce(function (arr, key) {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n for (var key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=object.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n var retVal;\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n // eslint-disable-next-line deprecation/deprecation\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof document !== 'undefined' && document.createEventObject) {\n // IE8\n var evObj = document.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","import { canUseDOM } from './canUseDOM';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth.\n *\n * @public\n */\nexport function getDocument(rootElement) {\n if (!canUseDOM() || typeof document === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n//# sourceMappingURL=getDocument.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _previousClientY = 0;\n var _element = null;\n // remember the clientY for future calls of _preventOverscrolling\n var _saveClientY = function (event) {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n var _preventOverscrolling = function (event) {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n if (!_element) {\n return;\n }\n var clientY = event.targetTouches[0].clientY - _previousClientY;\n var scrollableParent = findScrollableParent(event.target);\n if (scrollableParent) {\n _element = scrollableParent;\n }\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (_element.scrollTop === 0 && clientY > 0) {\n event.preventDefault();\n }\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - Math.ceil(_element.scrollTop) <= _element.clientHeight && clientY < 0) {\n event.preventDefault();\n }\n };\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _allowElementScroll = function (event) {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n var doc = getDocument();\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n if (_bodyScrollDisabledCount > 0) {\n var doc = getDocument();\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n _bodyScrollDisabledCount--;\n }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth() {\n if (_scrollbarWidth === undefined) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n document.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n }\n return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n var el = startingElement;\n var doc = getDocument(startingElement);\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n var computedStyles = getComputedStyle(el);\n var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n el = el.parentElement;\n }\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n el = getWindow(startingElement);\n }\n return el;\n}\n//# sourceMappingURL=scroll.js.map","/* eslint-disable no-console */\nvar _warningCallback = undefined;\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message) {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n }\n else if (console && console.warn) {\n console.warn(message);\n }\n}\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback) {\n _warningCallback = warningCallback;\n}\n//# sourceMappingURL=warn.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n var requiredPropName = requiredProps_1[_i];\n if (!(requiredPropName in props)) {\n warn(\"\".concat(componentName, \" property '\").concat(requiredPropName, \"' is required when '\").concat(conditionalPropName, \"' is used.'\"));\n }\n }\n }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: getWindow() === undefined,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.getValue = function (key, defaultValue) {\n var globalSettings = _getGlobalSettings();\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n return globalSettings[key];\n };\n GlobalSettings.setValue = function (key, value) {\n var globalSettings = _getGlobalSettings();\n var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n var oldValue = globalSettings[key];\n if (value !== oldValue) {\n globalSettings[key] = value;\n var changeDescription = {\n oldValue: oldValue,\n value: value,\n key: key,\n };\n for (var id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n return value;\n };\n GlobalSettings.addChangeListener = function (cb) {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n var id = cb.__id__;\n var callbacks = _getCallbacks();\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n callbacks[id] = cb;\n };\n GlobalSettings.removeChangeListener = function (cb) {\n var callbacks = _getCallbacks();\n delete callbacks[cb.__id__];\n };\n return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n var _a;\n var win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObj = win || {};\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n _a[CALLBACK_STATE_PROP_NAME] = {},\n _a);\n }\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n var globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pauseBreak: 19,\n capslock: 20,\n escape: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n del: 46,\n zero: 48,\n one: 49,\n two: 50,\n three: 51,\n four: 52,\n five: 53,\n six: 54,\n seven: 55,\n eight: 56,\n nine: 57,\n colon: 58,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftWindow: 91,\n rightWindow: 92,\n select: 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96,\n one_numpad: 97,\n two_numpad: 98,\n three_numpad: 99,\n four_numpad: 100,\n five_numpad: 101,\n six_numpad: 102,\n seven_numpad: 103,\n eight_numpad: 104,\n nine_numpad: 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalPoint: 110,\n divide: 111,\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 numlock: 144,\n scrollLock: 145,\n semicolon: 186,\n equalSign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardSlash: 191,\n graveAccent: 192,\n openBracket: 219,\n backSlash: 220,\n closeBracket: 221,\n singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key, data) {\n var _a;\n try {\n (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.sessionStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=sessionStorage.js.map","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@fluentui/merge-styles';\nvar RTL_LOCAL_STORAGE_KEY = 'isRTL';\n// Default to undefined so that we initialize on first read.\nvar _isRTL;\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme) {\n if (theme === void 0) { theme = {}; }\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n var savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n var doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n return !!_isRTL;\n}\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL, persistSetting) {\n if (persistSetting === void 0) { persistSetting = false; }\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key, theme) {\n if (theme === void 0) { theme = {}; }\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n }\n else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n return key;\n}\n//# sourceMappingURL=rtl.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n return (child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements) {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n var isCurrentElementVisible = checkElementVisibility(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element) {\n return (!!element &&\n isElementVisible(element) &&\n !element.hidden &&\n window.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var document = getDocument(element);\n var currentActiveElement = document && document.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar targetToFocusOnNextRepaint = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n targetToFocusOnNextRepaint = element;\n var win = getWindow(element);\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(function () {\n targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","import { mergeCssSets, Stylesheet } from '@fluentui/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n if (options === void 0) { options = {}; }\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n var map = new Map();\n var styleCalcCount = 0;\n var getClassNamesCount = 0;\n var currentMemoizedClassNames = _memoizedClassNames;\n var getClassNames = function (styleFunctionOrObject, styleProps) {\n var _a;\n if (styleProps === void 0) { styleProps = {}; }\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n styleFunctionOrObject.__noStyleOverride__) {\n return styleFunctionOrObject(styleProps);\n }\n getClassNamesCount++;\n var current = map;\n var theme = styleProps.theme;\n var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n var disableCaching = options.disableCaching;\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n map = new Map();\n styleCalcCount = 0;\n }\n if (!options.disableCaching) {\n current = _traverseMap(map, styleFunctionOrObject);\n current = _traverseMap(current, styleProps);\n }\n if (disableCaching || !current[retVal]) {\n if (styleFunctionOrObject === undefined) {\n current[retVal] = {};\n }\n else {\n current[retVal] = mergeCssSets([\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject),\n ], { rtl: !!rtl, specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined });\n }\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n var win = getWindow();\n if ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.enableClassNameCacheFullWarning) {\n // eslint-disable-next-line no-console\n console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \".concat(styleCalcCount, \"/\").concat(getClassNamesCount, \".\"));\n // eslint-disable-next-line no-console\n console.trace();\n }\n map.clear();\n styleCalcCount = 0;\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return current[retVal];\n };\n return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n value = _normalizeValue(value);\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n if (typeof inputs === 'function') {\n var cachedInputsFromStyled = inputs.__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n var input = _a[_i];\n current = _traverseEdge(current, input);\n }\n }\n else {\n current = _traverseEdge(current, inputs);\n }\n }\n else if (typeof inputs === 'object') {\n for (var propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, inputs[propName]);\n }\n }\n }\n return current;\n}\nfunction _normalizeValue(value) {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(_target, _key, descriptor) {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n return {\n configurable: true,\n get: function () {\n return fn;\n },\n };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n if (maxCacheSize === void 0) { maxCacheSize = 100; }\n if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n if (!_initializedStylesheetResets) {\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n var rootNode;\n var cacheSize = 0;\n var localResetCounter = _resetCounter;\n return function memoizedFunction() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var currentNode = rootNode;\n if (rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n currentNode = rootNode;\n // Traverse the tree until we find the match.\n for (var i = 0; i < args.length; i++) {\n var arg = _normalizeArg(args[i]);\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n currentNode = currentNode.map.get(arg);\n }\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb.apply(void 0, args);\n cacheSize++;\n }\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb.apply(void 0, args);\n }\n return currentNode.value;\n };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n var cache = new _weakMap();\n function memoizedGetValue(input) {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n if (cache.has(input)) {\n return cache.get(input);\n }\n var value = getValue(input);\n cache.set(input, value);\n return value;\n }\n return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n if (!val) {\n return _emptyObject;\n }\n else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n }\n else if (!_dictionary[val]) {\n _dictionary[val] = { val: val };\n }\n return _dictionary[val];\n}\nfunction _createNode() {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n//# sourceMappingURL=memoize.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n // React's built-in <input> considers a prop to be provided if its value is non-null/undefined.\n // Mirror that behavior here (rather than checking for just undefined).\n return props[valueProp] !== undefined && props[valueProp] !== null;\n}\n//# sourceMappingURL=controlled.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n function Customizations() {\n }\n Customizations.reset = function () {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n };\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n Customizations.applySettings = function (settings) {\n _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n Customizations._raiseChange();\n };\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n Customizations.applyScopedSettings = function (scopeName, settings) {\n _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n Customizations._raiseChange();\n };\n Customizations.getSettings = function (properties, scopeName, localSettings) {\n if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n var settings = {};\n var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n return settings;\n };\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n Customizations._suppressUpdates = true;\n try {\n code();\n }\n catch (_a) {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n };\n Customizations.observe = function (onChange) {\n _events.push(onChange);\n };\n Customizations.unobserve = function (onChange) {\n _events = _events.filter(function (cb) { return cb !== onChange; });\n };\n Customizations._raiseChange = function () {\n if (!Customizations._suppressUpdates) {\n _events.forEach(function (cb) { return cb(); });\n }\n };\n return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@fluentui/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n var forceUpdate = useForceUpdate();\n var customizations = React.useContext(CustomizerContext).customizations;\n var inCustomizerContext = customizations.inCustomizerContext;\n React.useEffect(function () {\n if (!inCustomizerContext) {\n Customizations.observe(forceUpdate);\n }\n return function () {\n if (!inCustomizerContext) {\n Customizations.unobserve(forceUpdate);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n }, [inCustomizerContext]);\n return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n var _a = React.useState(0), setValue = _a[1];\n return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n var index = _global[CURRENT_ID_PROPERTY]++;\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n if (counter === void 0) { counter = 0; }\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","var toObjectMap = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var result = {};\n for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n var item = items_1[_a];\n var keys = Array.isArray(item) ? item : Object.keys(item);\n for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n var key = keys_1[_b];\n result[key] = 1;\n }\n }\n return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n 'accessKey',\n 'children',\n 'className',\n 'contentEditable',\n 'dir',\n 'draggable',\n 'hidden',\n 'htmlFor',\n 'id',\n 'lang',\n 'ref',\n 'role',\n 'style',\n 'tabIndex',\n 'title',\n 'translate',\n 'spellCheck',\n 'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n 'height',\n 'loop',\n 'muted',\n 'preload',\n 'src',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus',\n 'disabled',\n 'form',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'type',\n 'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n 'accept',\n 'alt',\n 'autoCapitalize',\n 'autoComplete',\n 'checked',\n 'dirname',\n 'form',\n 'height',\n 'inputMode',\n 'list',\n 'max',\n 'maxLength',\n 'min',\n 'minLength',\n 'multiple',\n 'pattern',\n 'placeholder',\n 'readOnly',\n 'required',\n 'src',\n 'step',\n 'size',\n 'type',\n 'value',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize',\n 'cols',\n 'dirname',\n 'form',\n 'maxLength',\n 'minLength',\n 'placeholder',\n 'readOnly',\n 'required',\n 'rows',\n 'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan',\n 'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset',\n 'action',\n 'encType',\n 'encType',\n 'method',\n 'noValidate',\n 'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow',\n 'allowFullScreen',\n 'allowPaymentRequest',\n 'allowTransparency',\n 'csp',\n 'height',\n 'importance',\n 'referrerPolicy',\n 'sandbox',\n 'src',\n 'srcDoc',\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n var isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n var keys = Object.keys(props);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var isNativeProp = (!isArray && allowedPropNames[key]) ||\n (isArray && allowedPropNames.indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=properties.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n _a[KeyCodes.up] = 1,\n _a[KeyCodes.down] = 1,\n _a[KeyCodes.left] = 1,\n _a[KeyCodes.right] = 1,\n _a[KeyCodes.home] = 1,\n _a[KeyCodes.end] = 1,\n _a[KeyCodes.tab] = 1,\n _a[KeyCodes.pageUp] = 1,\n _a[KeyCodes.pageDown] = 1,\n _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import { getWindow } from './dom/getWindow';\nexport var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\nfunction updateClassList(el, enabled) {\n if (el) {\n el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - Whether to turn focus visibility on or off.\n * @param target - Optional target from which to get window in case no `providerElem` has been specified.\n * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array\n * is passed in, the classnames are attached to the document body that contains `target`.\n */\nexport function setFocusVisibility(enabled, target, registeredProviders) {\n var _a;\n if (registeredProviders) {\n registeredProviders.forEach(function (ref) { return updateClassList(ref.current, enabled); });\n }\n else {\n updateClassList((_a = getWindow(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled);\n }\n}\n//# sourceMappingURL=setFocusVisibility.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n var newValue;\n var currValue = mountCounters.get(key);\n if (currValue) {\n newValue = currValue + delta;\n }\n else {\n newValue = 1;\n }\n mountCounters.set(key, newValue);\n return newValue;\n}\nfunction setCallbackMap(context) {\n var callbacks = callbackMap.get(context);\n if (callbacks) {\n return callbacks;\n }\n var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n callbackMap.set(context, callbacks);\n return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n * the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n * call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n * 'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n * body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n * current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n * context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n var context = React.useContext(FocusRectsContext);\n React.useEffect(function () {\n var _a, _b;\n var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return undefined;\n }\n var el = win;\n var onMouseDown;\n var onPointerDown;\n var onKeyDown;\n var onKeyUp;\n if ((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) {\n el = context.providerRef.current;\n // The NOINLINE directive tells terser not to move the setCallbackMap implementation into the call site during\n // minification.\n // This prevents the function from capturing additional variables in the closure, which can cause memory leaks.\n var callbacks = /*@__NOINLINE__*/ setCallbackMap(context);\n onMouseDown = callbacks.onMouseDown;\n onPointerDown = callbacks.onPointerDown;\n onKeyDown = callbacks.onKeyDown;\n onKeyUp = callbacks.onKeyUp;\n }\n else {\n onMouseDown = _onMouseDown;\n onPointerDown = _onPointerDown;\n onKeyDown = _onKeyDown;\n onKeyUp = _onKeyUp;\n }\n var count = setMountCounters(el, 1);\n if (count <= 1) {\n el.addEventListener('mousedown', onMouseDown, true);\n el.addEventListener('pointerdown', onPointerDown, true);\n el.addEventListener('keydown', onKeyDown, true);\n el.addEventListener('keyup', onKeyUp, true);\n }\n return function () {\n var _a;\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n count = setMountCounters(el, -1);\n if (count === 0) {\n el.removeEventListener('mousedown', onMouseDown, true);\n el.removeEventListener('pointerdown', onPointerDown, true);\n el.removeEventListener('keydown', onKeyDown, true);\n el.removeEventListener('keyup', onKeyUp, true);\n }\n };\n }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n useFocusRects(props.rootRef);\n return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target, registeredProviders);\n }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n var providerRef = props.providerRef, layerRoot = props.layerRoot;\n var registeredProviders = React.useState([])[0];\n var parentContext = React.useContext(FocusRectsContext);\n // Inherit the parent context if it exists, unless this is a layer root.\n // This allows the topmost provider element in the DOM tree to handle the focus events.\n // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n var inheritParentContext = parentContext !== undefined && !layerRoot;\n var context = React.useMemo(function () {\n return inheritParentContext\n ? undefined\n : {\n providerRef: providerRef,\n registeredProviders: registeredProviders,\n registerProvider: function (ref) {\n // Register this child provider with the current context, and any parent contexts\n registeredProviders.push(ref);\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n },\n unregisterProvider: function (ref) {\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n var i = registeredProviders.indexOf(ref);\n if (i >= 0) {\n registeredProviders.splice(i, 1);\n }\n },\n };\n }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n React.useEffect(function () {\n if (context) {\n context.registerProvider(context.providerRef);\n return function () { return context.unregisterProvider(context.providerRef); };\n }\n }, [context]);\n // Create a new context provider if this is not inheriting from the parent.\n if (context) {\n return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n }\n else {\n return React.createElement(React.Fragment, null, props.children);\n }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} <xyz> all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\nvar UNSUPPORTED_TEXT_REGEX = \n// eslint-disable-next-line @fluentui/max-len\n/[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n }\n else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n }\n else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n return initials;\n}\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n displayName = cleanupDisplayName(displayName);\n // For names containing CJK characters, and phone numbers, we don't display initials\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n return '';\n }\n return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n try {\n var win = getWindow();\n win && win.localStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=localStorage.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(persistenceType) {\n if (persistenceType === void 0) { persistenceType = 'sessionStorage'; }\n if (_language === undefined) {\n var doc = getDocument();\n var savedLanguage = persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n if (savedLanguage) {\n _language = savedLanguage;\n }\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n if (_language === undefined) {\n _language = 'en';\n }\n }\n return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n }\n else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n _language = language;\n}\n//# sourceMappingURL=language.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n _merge(target || {}, arg);\n }\n return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n if (circularReferences === void 0) { circularReferences = []; }\n circularReferences.push(source);\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n var value = source[name_1];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n var isCircularReference = circularReferences.indexOf(value) > -1;\n target[name_1] = (isCircularReference ? value : _merge(target[name_1] || {}, value, circularReferences));\n }\n else {\n target[name_1] = value;\n }\n }\n }\n }\n circularReferences.pop();\n return target;\n}\n//# sourceMappingURL=merge.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var targetDocument = getDocument(target);\n if (!targetDocument) {\n // can't do this in SSR\n return function () { return undefined; };\n }\n var affectedNodes = [];\n // start at target, then recurse and do the same for parent, until we reach <body>\n while (target !== targetDocument.body && target.parentElement) {\n // grab all siblings of current element\n for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n var sibling = _a[_i];\n // but ignore elements that are already aria-hidden\n var ariaHidden = sibling.getAttribute('aria-hidden');\n if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n affectedNodes.push([sibling, ariaHidden]);\n }\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (_a) {\n var node = _a[0];\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (_a) {\n var node = _a[0], originalValue = _a[1];\n // Restore the original value (false or unset)\n if (originalValue) {\n node.setAttribute('aria-hidden', originalValue);\n }\n else {\n node.removeAttribute('aria-hidden');\n }\n });\n}\n//# sourceMappingURL=modalize.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n var _a;\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSetsWithProps } from '@fluentui/merge-styles';\nimport { useCustomizationSettings } from './customizations/useCustomizationSettings';\nvar DefaultFields = ['theme', 'styles'];\nexport function styled(Component, baseStyles, getProps, customizable, pure) {\n customizable = customizable || { scope: '', fields: undefined };\n var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;\n var Wrapped = React.forwardRef(function (props, forwardedRef) {\n var styles = React.useRef();\n var settings = useCustomizationSettings(fields, scope);\n var customizedStyles = settings.styles, dir = settings.dir, rest = __rest(settings, [\"styles\", \"dir\"]);\n var additionalProps = getProps ? getProps(props) : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var cache = (styles.current && styles.current.__cachedInputs__) || [];\n var propStyles = props.styles;\n if (!styles.current || customizedStyles !== cache[1] || propStyles !== cache[2]) {\n // Using styled components as the Component arg will result in nested styling arrays.\n // The function can be cached and in order to prevent the props from being retained within it's closure\n // we pass in just the styles and not the entire props\n var concatenatedStyles = function (styleProps) {\n return concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, propStyles);\n };\n // The __cachedInputs__ array is attached to the function and consumed by the\n // classNamesFunction as a list of keys to include for memoizing classnames.\n concatenatedStyles.__cachedInputs__ = [\n baseStyles,\n customizedStyles,\n propStyles,\n ];\n concatenatedStyles.__noStyleOverride__ =\n !customizedStyles && !propStyles;\n styles.current = concatenatedStyles;\n }\n return React.createElement(Component, __assign({ ref: forwardedRef }, rest, additionalProps, props, { styles: styles.current }));\n });\n // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n // able to drop IE 11 support and compile with ES6 libs\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Wrapped.displayName = \"Styled\".concat(Component.displayName || Component.name);\n // This preserves backwards compatibility.\n var pureComponent = pure ? React.memo(Wrapped) : Wrapped;\n // Check if the wrapper has a displayName after it has been memoized. Then assign it to the pure component.\n if (Wrapped.displayName) {\n pureComponent.displayName = Wrapped.displayName;\n }\n return pureComponent;\n}\n//# sourceMappingURL=styled.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n var _a;\n var win = getWindow();\n if (!((_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)) {\n return false;\n }\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) {\n return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n };\n};\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () {\n for (var name_1 in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n _iconSettings[name_1].subset.className = undefined;\n }\n }\n });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n var icons = iconSubset.icons;\n // Grab options, optionally mix user provided ones on top.\n options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n for (var iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n var code = icons[iconName];\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n }\n else {\n _iconSettings[normalizedIconName] = {\n code: code,\n subset: subset,\n };\n }\n }\n }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n var options = _iconSettings.__options;\n var _loop_1 = function (iconName) {\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n }\n else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(\"The icon \\\"\".concat(iconName, \"\\\" tried to unregister but was not registered.\"));\n }\n }\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach(function (key) {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n };\n for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n var iconName = iconNames_1[_i];\n _loop_1(iconName);\n }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n var icon = undefined;\n var options = _iconSettings.__options;\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n if (name) {\n icon = _iconSettings[name];\n if (icon) {\n var subset = icon.subset;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\"The icon \\\"\".concat(name, \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\"));\n }\n }\n }\n return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n var options = _iconSettings.__options;\n var warningDelay = 2000;\n var maxIconsInMessage = 10;\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(function () {\n warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n \"include: \\n\" +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? \" (+ \".concat(_missingIcons.length - maxIconsInMessage, \" more)\") : ''));\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n//# sourceMappingURL=icons.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var result = {};\n // map palette\n var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if (e === null || e === void 0 ? void 0 : e.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n var _a, _b, _c;\n if (partialTheme === void 0) { partialTheme = {}; }\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n var fontStyle = _d[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n }\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { keyframes } from '@fluentui/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n slideRightIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN10), DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN20), DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN40), DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN400), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN10), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN20), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN40), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN400), DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN10), DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN20), DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN10), DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN20), DURATION_3, EASING_FUNCTION_1),\n slideRightOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT40), DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT400), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT40), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT400), DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT20), DURATION_3, EASING_FUNCTION_1),\n scaleUpIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_UP100), DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_DOWN100), DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_UP103), DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_DOWN98), DURATION_1, EASING_FUNCTION_2),\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n // expandCollapse 100/200/400, delay 100/200\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return {\n animationName: animationName,\n animationDuration: animationDuration,\n animationTimingFunction: animationTimingFunction,\n animationFillMode: 'both',\n };\n}\nfunction _createSlideInX(fromX) {\n return keyframes({\n from: { transform: \"translate3d(\".concat(fromX, \"px,0,0)\"), pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideInY(fromY) {\n return keyframes({\n from: { transform: \"translate3d(0,\".concat(fromY, \"px,0)\"), pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideOutX(toX) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(\".concat(toX, \"px,0,0)\") },\n });\n}\nfunction _createSlideOutY(toY) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(0,\".concat(toY, \"px,0)\") },\n });\n}\n//# sourceMappingURL=AnimationStyles.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\".concat(LocalizedFontNames.Arabic, \"'\");\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\".concat(LocalizedFontNames.Cyrillic, \"'\");\n LocalizedFontFamilies.EastEuropean = \"'\".concat(LocalizedFontNames.EastEuropean, \"'\");\n LocalizedFontFamilies.Greek = \"'\".concat(LocalizedFontNames.Greek, \"'\");\n LocalizedFontFamilies.Hebrew = \"'\".concat(LocalizedFontNames.Hebrew, \"'\");\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\".concat(LocalizedFontNames.Selawik, \"'\");\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\".concat(LocalizedFontNames.Vietnamese, \"'\");\n LocalizedFontFamilies.WestEuropean = \"'\".concat(LocalizedFontNames.WestEuropean, \"'\");\n LocalizedFontFamilies.Armenian = \"'\".concat(LocalizedFontNames.Armenian, \"'\");\n LocalizedFontFamilies.Georgian = \"'\".concat(LocalizedFontNames.Georgian, \"'\");\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\".concat(LocalizedFontNames.WestEuropean, \"'\");\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return \"\".concat(fontFamily, \", \").concat(FontFamilyFallbacks);\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://res-1.cdn.office.net/files/fabric-cdn-prod_20221209.001/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\".concat(fontFamily, \"'\");\n var localFontSrc = localFontName !== undefined ? \"local('\".concat(localFontName, \"'),\") : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + \"url('\".concat(url, \".woff2') format('woff2'),\") + \"url('\".concat(url, \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = \"\".concat(baseUrl, \"/\").concat(cdnFolder, \"/\").concat(cdnFontName);\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = \"\".concat(baseUrl, \"/fonts\");\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-semilight\"), FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-bold\"), FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var HighContrastSelectorWhite = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport var HighContrastSelectorBlack = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport var EdgeChromiumHighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n var minSelector = typeof min === 'number' ? \" and (min-width: \".concat(min, \"px)\") : '';\n var maxSelector = typeof max === 'number' ? \" and (max-width: \".concat(max, \"px)\") : '';\n return \"@media only screen\".concat(minSelector).concat(maxSelector);\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n var _a;\n return _a = {},\n // eslint-disable-next-line deprecation/deprecation\n _a[EdgeChromiumHighContrastSelector] = {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n },\n _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","export var ZIndexes;\n(function (ZIndexes) {\n ZIndexes.Nav = 1;\n /**\n * @deprecated Do not use\n */\n ZIndexes.ScrollablePane = 1;\n ZIndexes.FocusStyle = 1;\n ZIndexes.Coachmark = 1000;\n ZIndexes.Layer = 1000000;\n ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly, borderRadius) {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position: position,\n highContrastStyle: highContrastStyle,\n borderColor: borderColor,\n outlineColor: outlineColor,\n isFocusedOnly: isFocusedOnly,\n borderRadius: borderRadius,\n });\n }\n else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\nfunction _getFocusStyleInternal(theme, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var borderRadius = options.borderRadius, _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h, pointerEvents = options.pointerEvents;\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position: position,\n selectors: (_a = {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n }\n },\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n _a[\".\".concat(IsFocusVisibleClassName, \" &\").concat(isFocusedOnly ? ':focus' : '', \":after\")] = {\n content: '\"\"',\n position: 'absolute',\n pointerEvents: pointerEvents,\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: \"\".concat(width, \"px solid \").concat(borderColor),\n outline: \"\".concat(width, \"px solid \").concat(outlineColor),\n zIndex: ZIndexes.FocusStyle,\n borderRadius: borderRadius,\n selectors: (_b = {},\n _b[HighContrastSelector] = highContrastStyle,\n _b),\n },\n _a),\n };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n var _a;\n if (inset === void 0) { inset = 0; }\n if (width === void 0) { width = 1; }\n return {\n selectors: (_a = {},\n _a[\":global(\".concat(IsFocusVisibleClassName, \") &:focus\")] = {\n outline: \"\".concat(width, \" solid \").concat(color || theme.palette.neutralSecondary),\n outlineOffset: \"\".concat(-inset, \"px\"),\n },\n _a),\n };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n var _a, _b, _c;\n if (borderType === void 0) { borderType = 'border'; }\n if (borderPosition === void 0) { borderPosition = -1; }\n var isBorderBottom = borderType === 'borderBottom';\n return {\n borderColor: borderColor,\n selectors: {\n ':after': (_a = {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition\n },\n _a[borderType] = \"2px solid \".concat(borderColor),\n _a.borderRadius = borderRadius,\n _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n _a.selectors = (_b = {},\n _b[HighContrastSelector] = (_c = {},\n _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n _c),\n _b),\n _a),\n },\n };\n};\n//# sourceMappingURL=getFocusStyle.js.map","export var hiddenContentStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n var styleSheet = Stylesheet.getInstance();\n if (disableGlobalClassNames) {\n // disable global classnames\n return Object.keys(classNames).reduce(function (acc, className) {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {});\n }\n // use global classnames\n return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\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};\n// Store the theming state in __themeState__ global scope for reuse in the case of duplicate\n// load-themed-styles hosted on the page.\nvar _root = typeof window === 'undefined' ? global : window; // eslint-disable-line @typescript-eslint/no-explicit-any\n// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).\nvar _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;\nvar _themeState = initializeThemeState();\n/**\n * Matches theming tokens. For example, \"[theme: themeSlotName, default: #FFF]\" (including the quotes).\n */\nvar _themeTokenRegex = /[\\'\\\"]\\[theme:\\s*(\\w+)\\s*(?:\\,\\s*default:\\s*([\\\\\"\\']?[\\.\\,\\(\\)\\#\\-\\s\\w]*[\\.\\,\\(\\)\\#\\-\\w][\\\"\\']?))?\\s*\\][\\'\\\"]/g;\nvar now = function () {\n return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nfunction measure(func) {\n var start = now();\n func();\n var end = now();\n _themeState.perf.duration += end - start;\n}\n/**\n * initialize global state object\n */\nfunction initializeThemeState() {\n var state = _root.__themeState__ || {\n theme: undefined,\n lastStyleElement: undefined,\n registeredStyles: []\n };\n if (!state.runState) {\n state = __assign(__assign({}, state), { perf: {\n count: 0,\n duration: 0\n }, runState: {\n flushTimer: 0,\n mode: 0 /* Mode.sync */,\n buffer: []\n } });\n }\n if (!state.registeredThemableStyles) {\n state = __assign(__assign({}, state), { registeredThemableStyles: [] });\n }\n _root.__themeState__ = state;\n return state;\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load\n * event is fired.\n * @param {string | ThemableArray} styles Themable style text to register.\n * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.\n */\nexport function loadStyles(styles, loadAsync) {\n if (loadAsync === void 0) { loadAsync = false; }\n measure(function () {\n var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);\n var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;\n if (loadAsync || mode === 1 /* Mode.async */) {\n buffer.push(styleParts);\n if (!flushTimer) {\n _themeState.runState.flushTimer = asyncLoadStyles();\n }\n }\n else {\n applyThemableStyles(styleParts);\n }\n });\n}\n/**\n * Allows for customizable loadStyles logic. e.g. for server side rendering application\n * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}\n * a loadStyles callback that gets called when styles are loaded or reloaded\n */\nexport function configureLoadStyles(loadStylesFn) {\n _themeState.loadStyles = loadStylesFn;\n}\n/**\n * Configure run mode of load-themable-styles\n * @param mode load-themable-styles run mode, async or sync\n */\nexport function configureRunMode(mode) {\n _themeState.runState.mode = mode;\n}\n/**\n * external code can call flush to synchronously force processing of currently buffered styles\n */\nexport function flush() {\n measure(function () {\n var styleArrays = _themeState.runState.buffer.slice();\n _themeState.runState.buffer = [];\n var mergedStyleArray = [].concat.apply([], styleArrays);\n if (mergedStyleArray.length > 0) {\n applyThemableStyles(mergedStyleArray);\n }\n });\n}\n/**\n * register async loadStyles\n */\nfunction asyncLoadStyles() {\n return setTimeout(function () {\n _themeState.runState.flushTimer = 0;\n flush();\n }, 0);\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load event\n * is fired.\n * @param {string} styleText Style to register.\n * @param {IStyleRecord} styleRecord Existing style record to re-apply.\n */\nfunction applyThemableStyles(stylesArray, styleRecord) {\n if (_themeState.loadStyles) {\n _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);\n }\n else {\n registerStyles(stylesArray);\n }\n}\n/**\n * Registers a set theme tokens to find and replace. If styles were already registered, they will be\n * replaced.\n * @param {theme} theme JSON object of theme tokens to values.\n */\nexport function loadTheme(theme) {\n _themeState.theme = theme;\n // reload styles.\n reloadStyles();\n}\n/**\n * Clear already registered style elements and style records in theme_State object\n * @param option - specify which group of registered styles should be cleared.\n * Default to be both themable and non-themable styles will be cleared\n */\nexport function clearStyles(option) {\n if (option === void 0) { option = 3 /* ClearStyleOptions.all */; }\n if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */) {\n clearStylesInternal(_themeState.registeredStyles);\n _themeState.registeredStyles = [];\n }\n if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */) {\n clearStylesInternal(_themeState.registeredThemableStyles);\n _themeState.registeredThemableStyles = [];\n }\n}\nfunction clearStylesInternal(records) {\n records.forEach(function (styleRecord) {\n var styleElement = styleRecord && styleRecord.styleElement;\n if (styleElement && styleElement.parentElement) {\n styleElement.parentElement.removeChild(styleElement);\n }\n });\n}\n/**\n * Reloads styles.\n */\nfunction reloadStyles() {\n if (_themeState.theme) {\n var themableStyles = [];\n for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {\n var styleRecord = _a[_i];\n themableStyles.push(styleRecord.themableStyle);\n }\n if (themableStyles.length > 0) {\n clearStyles(1 /* ClearStyleOptions.onlyThemable */);\n applyThemableStyles([].concat.apply([], themableStyles));\n }\n }\n}\n/**\n * Find theme tokens and replaces them with provided theme values.\n * @param {string} styles Tokenized styles to fix.\n */\nexport function detokenize(styles) {\n if (styles) {\n styles = resolveThemableArray(splitStyles(styles)).styleString;\n }\n return styles;\n}\n/**\n * Resolves ThemingInstruction objects in an array and joins the result into a string.\n * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.\n */\nfunction resolveThemableArray(splitStyleArray) {\n var theme = _themeState.theme;\n var themable = false;\n // Resolve the array of theming instructions to an array of strings.\n // Then join the array to produce the final CSS string.\n var resolvedArray = (splitStyleArray || []).map(function (currentValue) {\n var themeSlot = currentValue.theme;\n if (themeSlot) {\n themable = true;\n // A theming annotation. Resolve it.\n var themedValue = theme ? theme[themeSlot] : undefined;\n var defaultValue = currentValue.defaultValue || 'inherit';\n // Warn to console if we hit an unthemed value even when themes are provided, but only if \"DEBUG\" is true.\n // Allow the themedValue to be undefined to explicitly request the default value.\n if (theme &&\n !themedValue &&\n console &&\n !(themeSlot in theme) &&\n typeof DEBUG !== 'undefined' &&\n DEBUG) {\n console.warn(\"Theming value not provided for \\\"\".concat(themeSlot, \"\\\". Falling back to \\\"\").concat(defaultValue, \"\\\".\"));\n }\n return themedValue || defaultValue;\n }\n else {\n // A non-themable string. Preserve it.\n return currentValue.rawString;\n }\n });\n return {\n styleString: resolvedArray.join(''),\n themable: themable\n };\n}\n/**\n * Split tokenized CSS into an array of strings and theme specification objects\n * @param {string} styles Tokenized styles to split.\n */\nexport function splitStyles(styles) {\n var result = [];\n if (styles) {\n var pos = 0; // Current position in styles.\n var tokenMatch = void 0;\n while ((tokenMatch = _themeTokenRegex.exec(styles))) {\n var matchIndex = tokenMatch.index;\n if (matchIndex > pos) {\n result.push({\n rawString: styles.substring(pos, matchIndex)\n });\n }\n result.push({\n theme: tokenMatch[1],\n defaultValue: tokenMatch[2] // May be undefined\n });\n // index of the first character after the current match\n pos = _themeTokenRegex.lastIndex;\n }\n // Push the rest of the string after the last match.\n result.push({\n rawString: styles.substring(pos)\n });\n }\n return result;\n}\n/**\n * Registers a set of style text. If it is registered too early, we will register it when the\n * window.load event is fired.\n * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.\n * @param {IStyleRecord} styleRecord May specify a style Element to update.\n */\nfunction registerStyles(styleArray) {\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.getElementsByTagName('head')[0];\n var styleElement = document.createElement('style');\n var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;\n styleElement.setAttribute('data-load-themed-styles', 'true');\n if (_styleNonce) {\n styleElement.setAttribute('nonce', _styleNonce);\n }\n styleElement.appendChild(document.createTextNode(styleString));\n _themeState.perf.count++;\n head.appendChild(styleElement);\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);\n ev.args = {\n newStyle: styleElement\n };\n document.dispatchEvent(ev);\n var record = {\n styleElement: styleElement,\n themableStyle: styleArray\n };\n if (themable) {\n _themeState.registeredThemableStyles.push(record);\n }\n else {\n _themeState.registeredStyles.push(record);\n }\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nexport { createTheme } from '@fluentui/theme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n var _a;\n var _b, _c;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var win = getWindow();\n if ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n }\n else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if ((_c = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _c === void 0 ? void 0 : _c.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n // Set the default theme.\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n }\n}\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n if (depComments === void 0) { depComments = false; }\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n var i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n var _a;\n if (depComments === void 0) { depComments = false; }\n _theme = createTheme(theme, depComments);\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n _onThemeChangeCallbacks.forEach(function (callback) {\n try {\n callback(_theme);\n }\n catch (e) {\n // don't let a bad callback break everything else\n }\n });\n return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n var lines = {};\n for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n var fontName = _a[_i];\n var font = theme.fonts[fontName];\n for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n var propName = _c[_b];\n var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n var value = font[propName];\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name_1] = value;\n }\n }\n return lines;\n}\n//# sourceMappingURL=theme.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\nexport var noWrap = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","/**\n * Generates placeholder style for each of the browsers supported by `@fluentui/react`.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles) {\n return {\n selectors: {\n '::placeholder': styles,\n ':-ms-input-placeholder': styles,\n '::-ms-input-placeholder': styles, // Edge\n },\n };\n}\n//# sourceMappingURL=getPlaceholderStyles.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","export var FLUENT_CDN_BASE_URL = 'https://res.cdn.office.net/files/fabric-cdn-prod_20230524.001';\n//# sourceMappingURL=cdn.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/style-utilities', '8.9.15');\n//# sourceMappingURL=version.js.map","export * from './classNames/index';\nexport * from './styles/index';\nexport * from './utilities/index';\nexport * from './interfaces/index';\nexport * from './MergeStyles';\nexport * from './cdn';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n if (maintainSize === void 0) { maintainSize = true; }\n var difference = _getEdgeValue(rect, edge) - newValue;\n var returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n var total = 0;\n for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n var edge = breakingEdges_1[_i];\n total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n }\n return total;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // keep track of least bad option, in case no sides fit\n var oobDegree;\n var bestEdge = currentEdge;\n var bestAlignment = currentAlignment;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // update least-bad edges\n var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n var edgeAttempt = void 0;\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n }\n else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n elementEstimate.elementRectangle = edgeAttempt;\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n }\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n // only show the beak if the callout is not fully covering the target\n var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n // eslint-disable-next-line deprecation/deprecation\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = rectOrPointTarget.top || rectOrPointTarget.y;\n var right = rectOrPointTarget.right || left;\n var bottom = rectOrPointTarget.bottom || top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var asyncRef = React.useRef();\n if (!asyncRef.current) {\n asyncRef.current = new Async();\n }\n React.useEffect(function () {\n return function () {\n var _a;\n (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n asyncRef.current = undefined;\n };\n }, []);\n return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n var setTrue = useConst(function () { return function () {\n setValue(true);\n }; });\n var setFalse = useConst(function () { return function () {\n setValue(false);\n }; });\n var toggle = useConst(function () { return function () {\n setValue(function (currentValue) { return !currentValue; });\n }; });\n return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value;\n // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n });\n // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n if (!isControlled) {\n setValue(newValue);\n }\n }; });\n return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs, true));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n var timeoutIds = useConst({});\n // Cleanup function.\n React.useEffect(function () { return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearTimeout(id);\n }\n }; }, \n // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]);\n // Return wrapper which will auto cleanup.\n return useConst({\n setTimeout: function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n },\n clearTimeout: function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n },\n });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n var async = useAsync();\n var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var _a;\n // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n if (props.style && props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = root.current.clientHeight;\n var firstChildHeight = root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n setNeedsVerticalScrollBar(needsVerticalScrollBar);\n }\n });\n return function () { return async.dispose(); };\n });\n return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== getWindow()) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n setTimeout(function () {\n var _a;\n (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n }, 0);\n }\n}\nfunction useRestoreFocus(props, root) {\n var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n var originalFocusedElement = React.useRef();\n var containsFocus = React.useRef(false);\n React.useEffect(function () {\n originalFocusedElement.current = getDocument().activeElement;\n if (doesElementContainFocus(root.current)) {\n containsFocus.current = true;\n }\n return function () {\n var _a;\n onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n originalElement: originalFocusedElement.current,\n containsFocus: containsFocus.current,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n originalFocusedElement.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []);\n useOnEvent(root, 'focus', React.useCallback(function () {\n containsFocus.current = true;\n }, []), true);\n useOnEvent(root, 'blur', React.useCallback(function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occurred and focus didn't change\n */\n if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n containsFocus.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n React.useEffect(function () {\n if (!(shouldHideSiblings && root.current)) {\n return;\n }\n var unmodalize = modalize(root.current);\n return unmodalize;\n }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n var root = React.useRef();\n var mergedRootRef = useMergedRefs(root, forwardedRef);\n useHideSiblingNodes(props, root);\n useRestoreFocus(props, root);\n var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n var needsVerticalScrollBar = useScrollbarAsync(props, root);\n var onKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n if (onDismiss) {\n onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n }, [onDismiss]);\n var win = useWindow();\n useOnEvent(win, 'keydown', onKeyDown);\n return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n var cachedBounds = React.useRef();\n var getBounds = React.useCallback(function () {\n if (!cachedBounds.current || targetWindowResized) {\n var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right - minPagePadding,\n bottom: currentBounds.bottom - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n var async = useAsync();\n useOnEvent(targetWindow, 'resize', async.debounce(function () {\n setTargetWindowResized(true);\n }, 500, { leading: true }));\n return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, positions) {\n var _b;\n var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden;\n var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n React.useEffect(function () {\n var _a;\n var _b = (_a = getBounds()) !== null && _a !== void 0 ? _a : {}, topBounds = _b.top, bottomBounds = _b.bottom;\n var calculatedHeight;\n if (typeof top === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - top;\n }\n else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - topBounds - bottom;\n }\n if ((!calloutMaxHeight && !hidden) ||\n (calloutMaxHeight && calculatedHeight && calloutMaxHeight > calculatedHeight)) {\n setMaxHeight(calculatedHeight);\n }\n else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n }\n else {\n setMaxHeight(undefined);\n }\n }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds) {\n var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n var positionAttempts = React.useRef(0);\n var previousTarget = React.useRef();\n var async = useAsync();\n var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint;\n React.useEffect(function () {\n if (!hidden) {\n var timerId_1 = async.requestAnimationFrame(function () {\n var _a, _b;\n if (hostElement.current && calloutElement) {\n var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n var dupeCalloutElement = calloutElement.cloneNode(true);\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\".concat(calloutMaxHeight) : '';\n dupeCalloutElement.style.visibility = 'hidden';\n (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n var previousPositions = previousTarget.current === target ? positions : undefined;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n // clean up duplicate calloutElement\n (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n }\n else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n }\n }\n }, calloutElement);\n previousTarget.current = target;\n return function () {\n async.cancelAnimationFrame(timerId_1);\n previousTarget.current = undefined;\n };\n }\n else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n ]);\n return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n var async = useAsync();\n var hasPositions = !!positions;\n React.useEffect(function () {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n return function () { return async.cancelAnimationFrame(timerId_2); };\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n var hidden = _a.hidden, onDismiss = _a.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll = _a.preventDismissOnScroll, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize = _a.preventDismissOnResize, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n var isMouseDownOnPopup = React.useRef(false);\n var async = useAsync();\n var mouseDownHandlers = useConst([\n function () {\n isMouseDownOnPopup.current = true;\n },\n function () {\n isMouseDownOnPopup.current = false;\n },\n ]);\n var positionsExists = !!positions;\n React.useEffect(function () {\n var dismissOnScroll = function (ev) {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnResize = function (ev) {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnLostFocus = function (ev) {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnClickOrScroll = function (ev) {\n var eventPaths = ev.composedPath ? ev.composedPath() : [];\n var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n if ((!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnTargetWindowBlur = function (ev) {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n ev.relatedTarget === null) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n var disposablesPromise = new Promise(function (resolve) {\n async.setTimeout(function () {\n if (!hidden && targetWindow) {\n var disposables_1 = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n resolve(function () {\n disposables_1.forEach(function (dispose) { return dispose(); });\n });\n }\n }, 0);\n });\n return function () {\n disposablesPromise.then(function (dispose) { return dispose(); });\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n var hostElement = React.useRef(null);\n var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n var calloutCallback = React.useCallback(function (calloutEl) {\n setCalloutElement(calloutEl);\n }, []);\n var rootRef = useMergedRefs(hostElement, forwardedRef);\n var _d = useTarget(props.target, {\n current: calloutElement,\n }), targetRef = _d[0], targetWindow = _d[1];\n var getBounds = useBounds(props, targetRef, targetWindow);\n var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n var maxHeight = useMaxHeight(props, getBounds, positions);\n var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n useAutoFocus(props, positions, calloutElement);\n React.useEffect(function () {\n if (!hidden) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMaxWidth: calloutMaxWidth,\n calloutMinWidth: calloutMinWidth,\n doNotLayer: doNotLayer,\n });\n var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: calloutCallback }),\n beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n React.createElement(Popup\n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n , __assign({ \n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps), children))));\n}), function (previousProps, nextProps) {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n var _a, _b;\n var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n for (var key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n var oldPositionEdge = prevElementPositions[key];\n var newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import * as React from 'react';\nconst PortalCompatContext = /*#__PURE__*/React.createContext(undefined);\nconst portalCompatContextDefaultValue = () => () => undefined;\nexport const PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n var _React_useContext;\n return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n//# sourceMappingURL=PortalCompatContext.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n var theme = _a.theme, dir = _a.dir;\n var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n var pageDir = getRTL() ? 'rtl' : 'ltr';\n var componentDir = dir ? dir : contextDir;\n return {\n // If Fabric dir !== contextDir\n // Or If contextDir !== pageDir\n // Then we need to set dir of the Fabric root\n rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n // If dir !== contextDir || pageDir\n // then set contextual theme around content\n needsTheme: componentDir !== contextDir,\n };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n var rootElement = React.useRef(null);\n useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n var root = _a.root;\n var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n var divProps = getNativeProps(props, divProperties, ['dir']);\n var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n // Create the contextual theme if component direction does not match parent direction.\n if (needsTheme) {\n // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n renderedContent = (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n var bodyThemed = _a.bodyThemed;\n React.useEffect(function () {\n if (applyThemeToBody) {\n var currentDoc_1 = getDocument(rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(bodyThemed);\n return function () {\n currentDoc_1.body.classList.remove(bodyThemed);\n };\n }\n }\n }, [bodyThemed, applyThemeToBody, rootElement]);\n return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n },\n !preventBlanketFontInheritance && {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\n // apply theme to only if applyTheme is true\n applyTheme && {\n color: theme.semanticColors.bodyText,\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n className,\n ],\n bodyThemed: [\n {\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n ],\n };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\".concat(defaultHostId);\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc) {\n var host = doc.createElement('div');\n host.setAttribute('id', defaultHostId);\n host.style.cssText = 'position:fixed;z-index:1000000';\n doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc) {\n var host = doc.querySelector(\"#\".concat(defaultHostId));\n if (host) {\n doc.removeChild(host);\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, FocusRectsContext, IsFocusVisibleClassName, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFocusVisibility = function (providerRef) {\n if (providerRef === null || providerRef === void 0 ? void 0 : providerRef.current) {\n return providerRef.current.classList.contains(IsFocusVisibleClassName);\n }\n return false;\n};\nexport var LayerBase = React.forwardRef(function (props, ref) {\n var registerPortalEl = usePortalCompat();\n var rootRef = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var layerRef = React.useRef();\n var fabricElementRef = React.useRef(null);\n var focusContext = React.useContext(FocusRectsContext);\n // Tracks if the layer mount events need to be raised.\n // Required to allow the DOM to render after the layer element is added.\n var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n // Sets the focus visible className when the FocusRectsProvider for the layer is rendered\n // This allows the current focus visibility style to be carried over to the layer content\n var focusRectsRef = React.useCallback(function (el) {\n var isFocusVisible = getFocusVisibility(focusContext === null || focusContext === void 0 ? void 0 : focusContext.providerRef);\n if (el && isFocusVisible) {\n el.classList.add(IsFocusVisibleClassName);\n }\n }, [focusContext]);\n var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onLayerMounted, \n // eslint-disable-next-line deprecation/deprecation\n onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref, focusRectsRef);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !hostId,\n });\n // Returns the user provided hostId props element, the default target selector,\n // or undefined if document doesn't exist.\n var getHost = function (doc) {\n var _a, _b;\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n }\n return (_b = doc.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n // Find the host.\n var host = defaultHostSelector ? doc.querySelector(defaultHostSelector) : null;\n // If no host is available, create a container for injecting layers in.\n // Having a container scopes layout computation.\n if (!host) {\n host = createDefaultLayerHost(doc);\n }\n return host;\n }\n };\n // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n var removeLayerElement = function () {\n onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n var elem = layerRef.current;\n // Clear ref before removing from the DOM\n layerRef.current = undefined;\n if (elem && elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n };\n // If a doc or host exists, it will remove and update layer parentNodes.\n var createLayerElement = function () {\n var _a;\n var doc = getDocument(rootRef.current);\n if (!doc) {\n return;\n }\n var host = getHost(doc);\n if (!host) {\n return;\n }\n // Remove and re-create any previous existing layer elements.\n removeLayerElement();\n var el = ((_a = host.ownerDocument) !== null && _a !== void 0 ? _a : doc).createElement('div');\n el.className = classNames.root;\n setPortalAttribute(el);\n setVirtualParent(el, rootRef.current);\n insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n layerRef.current = el;\n setNeedRaiseLayerMount(true);\n };\n useIsomorphicLayoutEffect(function () {\n createLayerElement();\n // Check if the user provided a hostId prop and register the layer with the ID.\n if (hostId) {\n registerLayer(hostId, createLayerElement);\n }\n var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n return function () {\n if (unregisterPortalEl) {\n unregisterPortalEl();\n }\n removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, createLayerElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n }, [hostId]);\n React.useEffect(function () {\n if (layerRef.current && needRaiseLayerMount) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n setNeedRaiseLayerMount(false);\n }\n }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n useDebugWarnings(props);\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nfunction getFilteredEvents() {\n if (!filteredEventProps) {\n filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n }\n return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Layer',\n props: props,\n deprecations: { onLayerMounted: 'onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Layer.base.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n disabled: false,\n disableFirstFocus: false,\n forceFocusInsideTrap: true,\n isClickableOutsideFocusTrap: false,\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n React.useImperativeHandle(componentRef, function () { return ({\n get previouslyFocusedElement() {\n return previouslyFocusedElement;\n },\n focus: focusFTZ,\n }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a;\n var root = React.useRef(null);\n var firstBumper = React.useRef(null);\n var lastBumper = React.useRef(null);\n var mergedRootRef = useMergedRefs(root, ref);\n var doc = useDocument();\n var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var internalState = useConst({\n hasFocus: false,\n focusStackId: useId('ftz-', props.id),\n });\n var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n 'data-is-focus-trap-zone-bumper': true,\n };\n var focusElementAsync = React.useCallback(function (element) {\n if (element !== firstBumper.current && element !== lastBumper.current) {\n focusAsync(element);\n }\n }, []);\n /**\n * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n * useEventCallback always returns the same callback reference but updates the implementation\n * every render to avoid stale captured values.\n */\n var focusFTZ = useEventCallback(function () {\n if (!root.current) {\n return; // not done mounting\n }\n var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n if (focusPreviouslyFocusedInnerElement &&\n previouslyFocusedElementInTrapZone &&\n elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n focusElementAsync(previouslyFocusedElementInTrapZone);\n return;\n }\n var firstFocusableChild = null;\n if (typeof firstFocusableTarget === 'string') {\n firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n firstFocusableChild = firstFocusableTarget(root.current);\n }\n else if (firstFocusableSelector) {\n var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n firstFocusableChild = root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!firstFocusableChild) {\n firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true);\n }\n if (firstFocusableChild) {\n focusElementAsync(firstFocusableChild);\n }\n });\n /** Used in root div focus/blur handlers */\n var focusBumper = function (isFirstBumper) {\n if (disabled || !root.current) {\n return;\n }\n var nextFocusable = isFirstBumper === internalState.hasFocus\n ? getLastTabbable(root.current, lastBumper.current, true, false)\n : getFirstTabbable(root.current, firstBumper.current, true, false);\n if (nextFocusable) {\n if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n // This can happen when FTZ contains no tabbable elements.\n // focusFTZ() will take care of finding a focusable element in FTZ.\n focusFTZ();\n }\n else {\n nextFocusable.focus();\n }\n }\n };\n /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n var onRootBlurCapture = function (ev) {\n var _a;\n (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the root\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = doc.activeElement;\n }\n if (!elementContains(root.current, relatedTarget)) {\n internalState.hasFocus = false;\n }\n };\n /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n var onRootFocusCapture = function (ev) {\n var _a;\n (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n if (ev.target === firstBumper.current) {\n focusBumper(true);\n }\n else if (ev.target === lastBumper.current) {\n focusBumper(false);\n }\n internalState.hasFocus = true;\n if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n internalState.previouslyFocusedElementInTrapZone = ev.target;\n }\n };\n /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n if (!doc) {\n return;\n }\n var activeElement = doc.activeElement;\n if (!disableRestoreFocus &&\n typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n (elementContains(root.current, activeElement) || activeElement === doc.body)) {\n focusElementAsync(elementToFocusOnDismiss);\n }\n });\n /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n // be sure to use the latest values here\n if (disabled) {\n return;\n }\n if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n var targetElement = ev.target;\n if (targetElement && !elementContains(root.current, targetElement)) {\n if (doc && doc.activeElement === doc.body) {\n setTimeout(function () {\n if (doc && doc.activeElement === doc.body) {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n }, 0);\n }\n else {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n });\n // Update window event handlers when relevant props change\n React.useEffect(function () {\n var disposables = [];\n if (forceFocusInsideTrap) {\n disposables.push(on(window, 'focus', forceFocusOrClickInTrap, true));\n }\n if (!isClickableOutsideFocusTrap) {\n disposables.push(on(window, 'click', forceFocusOrClickInTrap, true));\n }\n return function () {\n disposables.forEach(function (dispose) { return dispose(); });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, isClickableOutsideFocusTrap]);\n // On prop change or first render, focus the FTZ and update focusStack if appropriate\n React.useEffect(function () {\n // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n // is false, though it's debatable whether it should do this)\n if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n return;\n }\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n FocusTrapZone.focusStack.push(internalState.focusStackId);\n var elementToFocusOnDismiss = props.elementToFocusOnDismiss || doc.activeElement;\n if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n focusFTZ();\n }\n // To match existing behavior, always return focus on cleanup (even if we didn't handle\n // initial focus), but it's debatable whether that's correct\n return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, disabled]);\n // Handle modalization separately from first focus\n React.useEffect(function () {\n if (!disabled && enableAriaHiddenSiblings) {\n var unmodalize = modalize(root.current);\n return unmodalize;\n }\n }, [disabled, enableAriaHiddenSiblings, root]);\n // Cleanup lifecyle method for internalState.\n useUnmount(function () {\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete internalState.previouslyFocusedElementInTrapZone;\n });\n useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n if (typeof props.content === 'string') {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n }\n else {\n return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n }\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.isBeakVisible ? calloutProps.beakWidth : 0,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the <p> tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n _this._onTooltipFocus = function (ev) {\n if (_this._ignoreNextFocusEvent) {\n _this._ignoreNextFocusEvent = false;\n return;\n }\n _this._onTooltipMouseEnter(ev);\n };\n _this._onTooltipContentFocus = function (ev) {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n };\n _this._onTooltipBlur = function (ev) {\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement,\n // and ignoring when it next gets focus back.\n // See https://github.com/microsoft/fluentui/issues/13541\n _this._ignoreNextFocusEvent = (document === null || document === void 0 ? void 0 : document.activeElement) === ev.target;\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._hideTooltip();\n }, 0);\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n _this._async = new Async(_this);\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.setAriaDescribedBy, \n // eslint-disable-next-line deprecation/deprecation\n setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var tooltipRenderProps = __assign(__assign({ id: \"\".concat(tooltipId, \"--tooltip\"), content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onFocus: this._onTooltipContentFocus,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n // Get the content of the tooltip for use in the hidden div used for screen readers\n var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n : content;\n var showTooltip = isTooltipVisible && !!tooltipContent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipFocus }, { onBlurCapture: this._onTooltipBlur }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy }),\n children,\n showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n useIsomorphicLayoutEffect(function () {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(function () {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src))\n : false;\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n React.useEffect(function () {\n onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n var onImageLoaded = React.useCallback(function (ev) {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n }, [src, onLoad]);\n var onImageError = React.useCallback(function (ev) {\n onError === null || onError === void 0 ? void 0 : onError(ev);\n setLoadState(ImageLoadState.error);\n }, [onError]);\n return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n var frameElement = React.useRef();\n var imageElement = React.useRef();\n var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n var imageProps = getNativeProps(props, imgProperties, [\n 'width',\n 'height',\n ]);\n var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n var previousLoadState = React.useRef(loadState);\n var coverStyle = React.useRef();\n if (coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n previousLoadState.current = loadState;\n return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n }\n else if (loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined &&\n // eslint-disable-next-line @fluentui/max-len\n // cast needed as vendor prefixed `msMaxTouchPoints` api is no longer part of TS lib declaration - introduced with TS 4.4\n window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n var altText = imageProps.alt || props['aria-label'];\n var hasName = altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n // move naming or describing attributes from the container (where they are invalid) to the image\n var imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n var containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size24` instead.\n */\n PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size32` instead.\n */\n PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size40` instead.\n */\n PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size48` instead.\n */\n PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size72` instead.\n */\n PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size100` instead.\n */\n PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * No `PersonaCoin` is rendered.\n */\n PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n /**\n * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n /**\n * Renders a 16px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n /**\n * Renders a 24px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n /**\n * Renders a 28px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n /**\n * Renders a 32px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n /**\n * Renders a 40px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n /**\n * Renders a 48px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n /**\n * Renders a 56px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n /**\n * Renders a 72px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n /**\n * Renders a 100px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n /**\n * Renders a 120px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n /**\n * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n /**\n * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n * can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n /**\n * `gray` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n personaSize.size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size16 = '16px';\n personaSize.size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size28 = '28px';\n personaSize.size32 = '32px';\n personaSize.size40 = '40px';\n personaSize.size48 = '48px';\n personaSize.size56 = '56px';\n personaSize.size72 = '72px';\n personaSize.size100 = '100px';\n personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n personaPresenceSize.size6 = '6px';\n personaPresenceSize.size8 = '8px';\n personaPresenceSize.size12 = '12px';\n personaPresenceSize.size16 = '16px';\n personaPresenceSize.size20 = '20px';\n personaPresenceSize.size28 = '28px';\n personaPresenceSize.size32 = '32px';\n /**\n * @deprecated This is now unused\n */\n personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n // Old deprecated sizes\n _a[PersonaSize.tiny] = 10,\n _a[PersonaSize.extraExtraSmall] = 24,\n _a[PersonaSize.extraSmall] = 28,\n _a[PersonaSize.small] = 40,\n _a[PersonaSize.regular] = 48,\n _a[PersonaSize.large] = 72,\n _a[PersonaSize.extraLarge] = 100,\n // New sizes\n _a[PersonaSize.size8] = 8,\n _a[PersonaSize.size10] = 10,\n _a[PersonaSize.size16] = 16,\n _a[PersonaSize.size24] = 24,\n _a[PersonaSize.size28] = 28,\n /* eslint-enable deprecation/deprecation */\n _a[PersonaSize.size32] = 32,\n _a[PersonaSize.size40] = 40,\n _a[PersonaSize.size48] = 48,\n _a[PersonaSize.size56] = 56,\n _a[PersonaSize.size72] = 72,\n _a[PersonaSize.size100] = 100,\n _a[PersonaSize.size120] = 120,\n _a);\nexport var presenceBoolean = function (presence) { return ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n // There can be many PersonaPresence rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var size = sizeBoolean(props.size);\n // Render Presence Icon if Persona is above size 32.\n var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n (coinSize ? coinSize > 32 : true);\n var presenceHeightWidth = coinSize\n ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n ? coinSize / coinSizePresenceScaleFactor + 'px'\n : presenceMaxSize + 'px'\n : '';\n var presenceFontSize = coinSize\n ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n ? coinSize / coinSizeFontScaleFactor + 'px'\n : presenceFontMaxSize + 'px'\n : '';\n var coinSizeWithPresenceIconStyle = coinSize\n ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n : undefined;\n var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n presence: presence,\n size: props.size,\n isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors,\n });\n if (presence === PersonaPresenceEnum.none) {\n return null;\n }\n return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n if (!presence) {\n return undefined;\n }\n var oofIcon = 'SkypeArrow';\n switch (PersonaPresenceEnum[presence]) {\n case 'online':\n return 'SkypeCheck';\n case 'away':\n return isOutOfOffice ? oofIcon : 'SkypeClock';\n case 'dnd':\n return 'SkypeMinus';\n case 'offline':\n return isOutOfOffice ? oofIcon : '';\n }\n return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n presence: 'ms-Persona-presence',\n presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var theme = props.theme, presenceColors = props.presenceColors;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n // Presence colors\n var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n var isOpenCirclePresence = presence.isOffline ||\n (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n var borderSizeForSmallPersonas = '1px';\n var borderSizeForLargePersonas = '2px';\n var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n return {\n presence: [\n classNames.presence,\n __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \".concat(presenceColorBackground), textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n backgroundColor: 'WindowText',\n },\n _a) }),\n (size.isSize8 || size.isSize10) && {\n right: 'auto',\n top: '7px',\n left: 0,\n border: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n top: '9px',\n border: '1px solid WindowText',\n },\n _b),\n },\n (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n makeSizeStyle(personaPresenceSize.size8),\n (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n size.isSize16 && {\n height: personaPresenceSize.size6,\n width: personaPresenceSize.size6,\n borderWidth: '1.5px',\n },\n size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n presence.isAvailable && {\n backgroundColor: presenceColorAvailable,\n selectors: (_c = {},\n _c[HighContrastSelector] = backgroundColor('Highlight'),\n _c),\n },\n presence.isAway && backgroundColor(presenceColorAway),\n presence.isBlocked && [\n {\n selectors: (_d = {\n // Only show :after at larger sizes\n ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n ? {\n content: '\"\"',\n width: '100%',\n height: borderSize,\n backgroundColor: presenceColorBusy,\n transform: 'translateY(-50%) rotate(-45deg)',\n position: 'absolute',\n top: '50%',\n left: 0,\n }\n : undefined\n },\n _d[HighContrastSelector] = {\n selectors: {\n ':after': {\n width: \"calc(100% - 4px)\",\n left: '2px',\n backgroundColor: 'Window',\n },\n },\n },\n _d),\n },\n ],\n presence.isBusy && backgroundColor(presenceColorBusy),\n presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n presence.isOffline && backgroundColor(presenceColorOffline),\n (isOpenCirclePresence || presence.isBlocked) && [\n {\n backgroundColor: presenceColorBackground,\n selectors: (_e = {\n ':before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n border: \"\".concat(borderSize, \" solid \").concat(presenceColorBusy),\n borderRadius: '50%',\n boxSizing: 'border-box',\n }\n },\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n selectors: {\n ':before': {\n width: \"calc(100% - 2px)\",\n height: \"calc(100% - 2px)\",\n top: '1px',\n left: '1px',\n borderColor: 'Window',\n },\n },\n },\n _e),\n },\n ],\n isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n isOpenCirclePresence &&\n presence.isOffline &&\n props.isOutOfOffice &&\n makeBeforeBorderStyle(borderSize, presenceColorOof),\n ],\n presenceIcon: [\n classNames.presenceIcon,\n {\n color: presenceColorBackground,\n fontSize: '6px',\n lineHeight: personaPresenceSize.size12,\n verticalAlign: 'top',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'Window',\n },\n _f),\n },\n size.isSize56 && {\n fontSize: '8px',\n lineHeight: personaPresenceSize.size16,\n },\n size.isSize72 && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaPresenceSize.size20,\n },\n size.isSize100 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size28,\n },\n size.isSize120 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size32,\n },\n presence.isAway && {\n position: 'relative',\n left: isOpenCirclePresence ? undefined : '1px',\n },\n isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n ],\n };\n};\nfunction makeOpenCircleIconStyle(color) {\n return {\n color: color,\n borderColor: color,\n };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n return {\n selectors: {\n ':before': {\n border: \"\".concat(borderSize, \" solid \").concat(color),\n },\n },\n };\n}\nfunction makeSizeStyle(size) {\n return {\n height: size,\n width: size,\n };\n}\nfunction backgroundColor(color) {\n return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n * its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n PersonaInitialsColor.lightBlue,\n PersonaInitialsColor.blue,\n PersonaInitialsColor.darkBlue,\n PersonaInitialsColor.teal,\n PersonaInitialsColor.green,\n PersonaInitialsColor.darkGreen,\n PersonaInitialsColor.lightPink,\n PersonaInitialsColor.pink,\n PersonaInitialsColor.magenta,\n PersonaInitialsColor.purple,\n PersonaInitialsColor.orange,\n PersonaInitialsColor.lightRed,\n PersonaInitialsColor.darkRed,\n PersonaInitialsColor.violet,\n PersonaInitialsColor.gold,\n PersonaInitialsColor.burgundy,\n PersonaInitialsColor.warmGray,\n PersonaInitialsColor.cyan,\n PersonaInitialsColor.rust,\n PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n var color = PersonaInitialsColor.blue;\n if (!displayName) {\n return color;\n }\n var hashCode = 0;\n for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n var ch = displayName.charCodeAt(iLen);\n var shift = iLen % 8;\n // eslint-disable-next-line no-bitwise\n hashCode ^= (ch << shift) + (ch >> (8 - shift));\n }\n color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n switch (personaInitialsColor) {\n case PersonaInitialsColor.lightBlue:\n return '#4F6BED';\n case PersonaInitialsColor.blue:\n return '#0078D4';\n case PersonaInitialsColor.darkBlue:\n return '#004E8C';\n case PersonaInitialsColor.teal:\n return '#038387';\n case PersonaInitialsColor.lightGreen:\n case PersonaInitialsColor.green:\n return '#498205';\n case PersonaInitialsColor.darkGreen:\n return '#0B6A0B';\n case PersonaInitialsColor.lightPink:\n return '#C239B3';\n case PersonaInitialsColor.pink:\n return '#E3008C';\n case PersonaInitialsColor.magenta:\n return '#881798';\n case PersonaInitialsColor.purple:\n return '#5C2E91';\n case PersonaInitialsColor.orange:\n return '#CA5010';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.red:\n return '#EE1111';\n case PersonaInitialsColor.lightRed:\n return '#D13438';\n case PersonaInitialsColor.darkRed:\n return '#A4262C';\n case PersonaInitialsColor.transparent:\n return 'transparent';\n case PersonaInitialsColor.violet:\n return '#8764B8';\n case PersonaInitialsColor.gold:\n return '#986F0B';\n case PersonaInitialsColor.burgundy:\n return '#750B1C';\n case PersonaInitialsColor.warmGray:\n return '#7A7574';\n case PersonaInitialsColor.cyan:\n return '#005B70';\n case PersonaInitialsColor.rust:\n return '#8E562E';\n case PersonaInitialsColor.coolGray:\n return '#69797E';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.black:\n return '#1D1D1D';\n case PersonaInitialsColor.gray:\n return '#393939';\n }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n // eslint-disable-next-line deprecation/deprecation\n var primaryText = props.primaryText, text = props.text;\n var initialsColor = props.initialsColor;\n var initialsColorCode;\n if (typeof initialsColor === 'string') {\n initialsColorCode = initialsColor;\n }\n else {\n initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n }\n return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n // There can be many PersonaCoin rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n return mergeStyles(className, !showUnknownPersonaCoin && {\n backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n color: initialsTextColor,\n });\n});\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'PersonaCoin',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\nfunction useImageLoadState(_a) {\n var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n React.useEffect(function () {\n setImageLoadstate(ImageLoadState.notLoaded);\n }, [imageUrl]);\n var onLoadingStateChange = function (loadState) {\n setImageLoadstate(loadState);\n onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n };\n return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n var renderCoin = getCoinRenderer(onLoadingStateChange);\n var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.onRenderCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = _b === void 0 ? renderCoin : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onRenderPersonaCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n var divProps = getNativeProps(props, divProperties);\n var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n var hideImage = showUnknownPersonaCoin;\n var personaPresenceProps = {\n coinSize: coinSize,\n isOutOfOffice: isOutOfOffice,\n presence: presence,\n presenceTitle: presenceTitle,\n presenceColors: presenceColors,\n size: size,\n theme: theme,\n };\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n className: coinProps && coinProps.className ? coinProps.className : className,\n size: size,\n coinSize: coinSize,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n // eslint-disable-next-line deprecation/deprecation\n size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n !hideImage && onRenderPersonaCoin(props, renderCoin),\n React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n // Just render Contact Icon if there isn't a Presence prop.\n React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) {\n return function (_a) {\n var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n // Render the Image component only if an image URL is provided\n if (!imageUrl) {\n return null;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: size,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var dimension = coinSize || sizeToPixels[size];\n return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n };\n};\nvar renderPersonaCoinInitials = function (_a) {\n var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = _a.primaryText, theme = _a.theme;\n if (showUnknownPersonaCoin) {\n return React.createElement(Icon, { iconName: \"Help\" });\n }\n var isRTL = getRTL(theme);\n imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n coin: 'ms-Persona-coin',\n imageArea: 'ms-Persona-imageArea',\n image: 'ms-Persona-image',\n initials: 'ms-Persona-initials',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, coinSize = props.coinSize;\n var palette = theme.palette, fonts = theme.fonts;\n var size = sizeBoolean(props.size);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Static colors used when displaying 'unknown persona' coin\n var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n return {\n coin: [\n classNames.coin,\n fonts.medium,\n size.isSize8 && classNames.size8,\n size.isSize10 && classNames.size10,\n size.isSize16 && classNames.size16,\n size.isSize24 && classNames.size24,\n size.isSize28 && classNames.size28,\n size.isSize32 && classNames.size32,\n size.isSize40 && classNames.size40,\n size.isSize48 && classNames.size48,\n size.isSize56 && classNames.size56,\n size.isSize72 && classNames.size72,\n size.isSize100 && classNames.size100,\n size.isSize120 && classNames.size120,\n className,\n ],\n size10WithoutPresenceIcon: {\n fontSize: fonts.xSmall.fontSize,\n position: 'absolute',\n top: '5px',\n right: 'auto',\n left: 0,\n },\n imageArea: [\n classNames.imageArea,\n {\n position: 'relative',\n textAlign: 'center',\n flex: '0 0 auto',\n height: dimension,\n width: dimension,\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n ],\n image: [\n classNames.image,\n {\n marginRight: '10px',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n borderRadius: '50%',\n perspective: '1px',\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n dimension > 10 && {\n height: dimension,\n width: dimension,\n },\n ],\n initials: [\n classNames.initials,\n {\n borderRadius: '50%',\n color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n fontSize: fonts.large.fontSize,\n fontWeight: FontWeights.semibold,\n // copying the logic for the dimensions; defaulted to 46 for size48\n lineHeight: dimension === 48 ? 46 : dimension,\n height: dimension,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n _a.i = {\n fontWeight: FontWeights.semibold,\n },\n _a),\n },\n props.showUnknownPersonaCoin && {\n backgroundColor: unknownPersonaBackgroundColor,\n },\n dimension < 32 && {\n fontSize: fonts.xSmall.fontSize,\n },\n dimension >= 32 &&\n dimension < 40 && {\n fontSize: fonts.medium.fontSize,\n },\n dimension >= 40 &&\n dimension < 56 && {\n fontSize: fonts.mediumPlus.fontSize,\n },\n dimension >= 56 &&\n dimension < 72 && {\n fontSize: fonts.xLarge.fontSize,\n },\n dimension >= 72 &&\n dimension < 100 && {\n fontSize: fonts.xxLarge.fontSize,\n },\n dimension >= 100 && {\n fontSize: fonts.superLarge.fontSize,\n },\n ],\n };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Persona',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n /**\n * Deprecation helper for getting text.\n */\n var getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return props.text || props.primaryText || '';\n };\n /**\n * Renders various types of Text (primaryText, secondaryText, etc)\n * based on the classNames passed\n * @param elementClassNames - element className\n * @param renderFunction - render function\n * @param defaultRenderFunction - default render function\n */\n var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n var content = renderFunction && renderFunction(props, defaultRenderFunction);\n return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n };\n /**\n * using closure to wrap the default render behavior\n * to make it independent of the type of text passed\n * @param text - text to render\n */\n var onRenderText = function (text, tooltip) {\n if (tooltip === void 0) { tooltip = true; }\n // return default render behavior for valid text or undefined\n return text\n ? tooltip\n ? function () {\n // default onRender behavior\n return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n }\n : function () { return React.createElement(React.Fragment, null, text); }\n : undefined;\n };\n var onInternalRenderPersonaCoin = function (providedCoinProps) {\n return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n };\n // wrapping default render behavior based on various props properties\n var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n var size = props.size;\n // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showSecondaryText: showSecondaryText,\n presence: presence,\n size: size,\n });\n var divProps = getNativeProps(props, divProperties);\n var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n props.children));\n return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n /* eslint-disable deprecation/deprecation */\n (!hidePersonaDetails ||\n size === PersonaSize.size8 ||\n size === PersonaSize.size10 ||\n size === PersonaSize.tiny) &&\n personaDetails\n /* eslint-enable deprecation/deprecation */\n ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n root: 'ms-Persona',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n available: 'ms-Persona--online',\n away: 'ms-Persona--away',\n blocked: 'ms-Persona--blocked',\n busy: 'ms-Persona--busy',\n doNotDisturb: 'ms-Persona--donotdisturb',\n offline: 'ms-Persona--offline',\n details: 'ms-Persona-details',\n primaryText: 'ms-Persona-primaryText',\n secondaryText: 'ms-Persona-secondaryText',\n tertiaryText: 'ms-Persona-tertiaryText',\n optionalText: 'ms-Persona-optionalText',\n textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n var showSecondaryTextDefaultHeight = '16px';\n var sharedTextStyles = {\n color: semanticColors.bodySubtext,\n fontWeight: FontWeights.regular,\n fontSize: fonts.small.fontSize,\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n normalize,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n height: personaSize.size48,\n minWidth: personaSize.size48,\n display: 'flex',\n alignItems: 'center',\n selectors: {\n '.contextualHost': {\n display: 'none',\n },\n },\n },\n size.isSize8 && [\n classNames.size8,\n {\n height: personaSize.size8,\n minWidth: personaSize.size8,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize10 && [\n classNames.size10,\n {\n height: personaSize.size10,\n minWidth: personaSize.size10,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize16 && [\n classNames.size16,\n {\n height: personaSize.size16,\n minWidth: personaSize.size16,\n },\n ],\n size.isSize24 && [\n classNames.size24,\n {\n height: personaSize.size24,\n minWidth: personaSize.size24,\n },\n ],\n size.isSize24 &&\n showSecondaryText && {\n height: '36px',\n },\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize28 && [\n classNames.size28,\n {\n height: personaSize.size28,\n minWidth: personaSize.size28,\n },\n ],\n size.isSize28 &&\n showSecondaryText && {\n height: '32px',\n },\n size.isSize32 && [\n classNames.size32,\n {\n height: personaSize.size32,\n minWidth: personaSize.size32,\n },\n ],\n size.isSize40 && [\n classNames.size40,\n {\n height: personaSize.size40,\n minWidth: personaSize.size40,\n },\n ],\n size.isSize48 && classNames.size48,\n size.isSize56 && [\n classNames.size56,\n {\n height: personaSize.size56,\n minWidth: personaSize.size56,\n },\n ],\n size.isSize72 && [\n classNames.size72,\n {\n height: personaSize.size72,\n minWidth: personaSize.size72,\n },\n ],\n size.isSize100 && [\n classNames.size100,\n {\n height: personaSize.size100,\n minWidth: personaSize.size100,\n },\n ],\n size.isSize120 && [\n classNames.size120,\n {\n height: personaSize.size120,\n minWidth: personaSize.size120,\n },\n ],\n /**\n * Modifiers: presence\n */\n presence.isAvailable && classNames.available,\n presence.isAway && classNames.away,\n presence.isBlocked && classNames.blocked,\n presence.isBusy && classNames.busy,\n presence.isDoNotDisturb && classNames.doNotDisturb,\n presence.isOffline && classNames.offline,\n className,\n ],\n details: [\n classNames.details,\n {\n padding: '0 24px 0 16px',\n minWidth: 0,\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n },\n (size.isSize8 || size.isSize10) && {\n paddingLeft: 17, // increased padding because we don't render a coin at this size\n },\n (size.isSize24 || size.isSize28 || size.isSize32) && {\n padding: '0 8px',\n },\n (size.isSize40 || size.isSize48) && {\n padding: '0 12px',\n },\n ],\n primaryText: [\n classNames.primaryText,\n noWrap,\n {\n color: semanticColors.bodyText,\n fontWeight: FontWeights.regular,\n fontSize: fonts.medium.fontSize,\n selectors: {\n ':hover': {\n color: semanticColors.inputTextHovered,\n },\n },\n },\n showSecondaryText && {\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n (size.isSize8 || size.isSize10) && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaSize.size8,\n },\n size.isSize16 && {\n lineHeight: personaSize.size28,\n },\n (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.xLarge.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 22,\n },\n ],\n secondaryText: [\n classNames.secondaryText,\n noWrap,\n sharedTextStyles,\n (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n display: 'none',\n },\n showSecondaryText && {\n display: 'block',\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n size.isSize24 &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 18,\n },\n ],\n tertiaryText: [\n classNames.tertiaryText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize72 || size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n optionalText: [\n classNames.optionalText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n textContent: [classNames.textContent, noWrap],\n };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n event = document.createEvent('MouseEvents');\n // eslint-disable-next-line deprecation/deprecation\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _this = this;\n var _a, _b, _c, _d;\n _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n activeRect, \n // eslint-disable-next-line deprecation/deprecation\n targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var root = this._root.current;\n _allInstances[this._id] = this;\n if (root) {\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n // reset those variables (and update tab indexes) to avoid memory leaks\n if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n (this._defaultFocusElement &&\n !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n this._activeElement = null;\n this._defaultFocusElement = null;\n this._updateTabIndexes();\n }\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement) &&\n (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n get: function () {\n return this._defaultFocusElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n get: function () {\n return this._activeElement;\n },\n enumerable: false,\n configurable: true\n });\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SUMMARY') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n // eslint-disable-next-line deprecation/deprecation\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n };\n return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n var item = props.item, classNames = props.classNames;\n var iconProps = item.iconProps;\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: (_d = {},\n _d[MediumScreenSelector] = {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n _d),\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small,\n selectors: (_e = {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n }\n },\n _e[MediumScreenSelector] = {\n fontSize: IconFontSizes.medium, // 16px\n },\n _e),\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n var _a;\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28,\n selectors: (_a = {},\n _a[MediumScreenSelector] = {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n _a),\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n});\nvar GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n var _a, _b, _c, _d;\n var styles = getMenuItemStyles(theme);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_a = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _a[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH, \")\"),\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n // when hovering over the splitPrimary also affect the splitMenu\n _b[\":hover ~ .\".concat(classNames.splitMenu)] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _b[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _b),\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_c = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _c[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _c[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _c),\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: (_d = {},\n _d[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _d),\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n __extends(ContextualMenuItemWrapper, _super);\n function ContextualMenuItemWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._onItemMouseEnter = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget);\n }\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget);\n }\n };\n _this._onItemMouseLeave = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._onItemMouseMove = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget);\n }\n };\n _this._getSubmenuTarget = function () {\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n return !shallowCompare(newProps, this.props);\n };\n return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArray([], keytipProps.keySequences, true);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArray([], overflowKeySequences, true).pop();\n var newKeySequences = __spreadArray([], keySequences, true);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(function () {\n if (uniqueId.current &&\n keytipProps &&\n ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArray([], newKeytipProps.keySequences, true);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n __extends(ContextualMenuAnchor, _super);\n function ContextualMenuAnchor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._anchor = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._getSubmenuTarget = function () {\n return _this._anchor.current ? _this._anchor.current : undefined;\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n return _this;\n }\n ContextualMenuAnchor.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n var itemHasSubmenu = hasSubmenu(item);\n var nativeProps = getNativeProps(item, anchorProperties);\n var disabled = isItemDisabled(item);\n var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n var additionalItemProperties = {\n 'aria-describedby': ariaDescribedByIds,\n };\n return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n __extends(ContextualMenuButton, _super);\n function ContextualMenuButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._btn = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._getSubmenuTarget = function () {\n return _this._btn.current ? _this._btn.current : undefined;\n };\n return _this;\n }\n ContextualMenuButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n var defaultRole = getMenuItemAriaRole(item);\n var itemHasSubmenu = hasSubmenu(item);\n var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n var buttonNativeProperties = getNativeProps(item, buttonProperties);\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n var itemRole = item.role || defaultRole;\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n var itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n // eslint-disable-next-line deprecation/deprecation\n var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, getMenuItemAriaRole, hasSubmenu, isItemDisabled } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n __extends(ContextualMenuSplitButton, _super);\n function ContextualMenuSplitButton(props) {\n var _this = _super.call(this, props) || this;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._getSubmenuTarget = function () {\n return _this._splitButton;\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._onItemMouseEnterPrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseEnterIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, _this._splitButton);\n }\n };\n _this._onItemMouseMovePrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseMoveIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, _this._splitButton);\n }\n };\n _this._onIconItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n }\n };\n _this._executeItemClick = function (ev) {\n var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (_this._processingTouch && onItemClick) {\n return onItemClick(item, ev);\n }\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n _this._onTouchStart = function (ev) {\n if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n _this._handleTouchAndPointerEvent(ev);\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n return _this;\n }\n ContextualMenuSplitButton.prototype.componentDidMount = function () {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n };\n ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ContextualMenuSplitButton.prototype.render = function () {\n var _this = this;\n var _a;\n var _b = this.props, item = _b.item, classNames = _b.classNames, index = _b.index, focusableElementIndex = _b.focusableElementIndex, totalItemCount = _b.totalItemCount, hasCheckmarks = _b.hasCheckmarks, hasIcons = _b.hasIcons, onItemMouseLeave = _b.onItemMouseLeave, expandedMenuItemKey = _b.expandedMenuItemKey;\n var itemHasSubmenu = hasSubmenu(item);\n var keytipProps = item.keytipProps;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n var ariaDescription = item.ariaDescription;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaChecked = (_a = getIsChecked(item)) !== null && _a !== void 0 ? _a : undefined;\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": ariaChecked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n _this._renderSplitDivider(item),\n _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n var itemProps = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n };\n ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, keytipAttributes) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var itemProps = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n };\n var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-hidden': true,\n });\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, buttonProps),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n var _this = this;\n var onTap = this.props.onTap;\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /** Width \\<= 479px */\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n /** Width \\> 479px and \\<= 639px */\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n /** Width \\> 639px and \\<= 1023px */\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n /** Width \\> 1023px and \\<= 1365px */\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n /** Width \\> 1365px and \\<= 1919px */\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n /** Width \\> 1919px */\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n var currentWindow = getWindow(element);\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n // Setting the same value should not cause a re-render.\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n var win = useWindow();\n useOnEvent(win, 'resize', onResize);\n // Call resize function initially on mount, or if the override changes from defined to undefined\n // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n React.useEffect(function () {\n if (overrideResponsiveMode === undefined) {\n onResize();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n }, [overrideResponsiveMode]);\n return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n};\n/* return number of menu items, excluding headers and dividers */\nfunction getItemCount(items) {\n var totalItemCount = 0;\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n return totalItemCount;\n}\nexport function getSubmenuItems(item, options) {\n var target = options === null || options === void 0 ? void 0 : options.target;\n // eslint-disable-next-line deprecation/deprecation\n var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n if (items) {\n var overrideItems = [];\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var subItem = items_2[_i];\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n }\n else {\n overrideItems.push(subItem);\n }\n }\n return overrideItems;\n }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n return items.some(function (item) {\n if (item.canCheck) {\n return true;\n }\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n return true;\n }\n return false;\n });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n var styles = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styles[_i] = arguments[_i];\n }\n return function (styleProps) {\n return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles, false));\n };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n var previousHidden = usePrevious(hidden);\n var onMenuOpenedRef = React.useRef(onMenuOpened);\n var onMenuClosedRef = React.useRef(onMenuDismissed);\n var propsRef = React.useRef(props);\n onMenuOpenedRef.current = onMenuOpened;\n onMenuClosedRef.current = onMenuDismissed;\n propsRef.current = props;\n React.useEffect(function () {\n var _a, _b;\n // Don't issue dismissed callbacks on initial mount\n if (hidden && previousHidden === false) {\n (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n }\n else if (!hidden && previousHidden !== false) {\n (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n }\n }, [hidden, previousHidden]);\n // Issue onDismissedCallback on unmount\n React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n var subMenuId = useId(COMPONENT_NAME, id);\n var closeSubMenu = React.useCallback(function () {\n setShouldFocusOnContainer(undefined);\n setExpandedMenuItemKey(undefined);\n setSubmenuTarget(undefined);\n }, []);\n var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n var submenuItemKey = _a.key;\n if (expandedMenuItemKey === submenuItemKey) {\n return;\n }\n target.focus();\n setShouldFocusOnContainer(focusContainer);\n setExpandedMenuItemKey(submenuItemKey);\n setSubmenuTarget(target);\n }, [expandedMenuItemKey]);\n React.useEffect(function () {\n if (hidden) {\n closeSubMenu();\n }\n }, [hidden, closeSubMenu]);\n var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n var getSubmenuProps = function () {\n var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n var submenuProps = null;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: onSubMenuDismiss,\n isSubMenu: true,\n id: subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: shouldFocusOnContainer,\n directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n if (item.preferMenuTargetAsEventTarget) {\n var onItemClick = item.onItemClick;\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n var gotMouseMove = React.useRef(false);\n React.useEffect(function () {\n shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n }, [delayUpdateFocusOnHover, hidden]);\n var onMenuFocusCapture = React.useCallback(function () {\n if (delayUpdateFocusOnHover) {\n shouldUpdateFocusOnMouseEvent.current = false;\n }\n }, [delayUpdateFocusOnHover]);\n return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n var previousActiveElement = React.useRef();\n var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n var _a, _b;\n if (onRestoreFocus) {\n onRestoreFocus(options);\n }\n else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n }, [onRestoreFocus]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (!hidden) {\n var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n previousActiveElement.current = newElement;\n }\n }\n else if (previousActiveElement.current) {\n tryFocusPreviousActiveElement({\n originalElement: previousActiveElement.current,\n containsFocus: true,\n documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n });\n previousActiveElement.current = undefined;\n }\n }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n var lastKeyDownWasAltOrMeta = React.useRef();\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n return handled;\n };\n /**\n * Checks if the submenu should be closed\n */\n var shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which !== submenuCloseKey || !isSubMenu) {\n return false;\n }\n return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n var shouldHandleKeyDown = function (ev) {\n return (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.escape ||\n shouldCloseSubMenu(ev) ||\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n var onKeyDown = function (ev) {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in shouldHandleKeyUp for reasoning.\n lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n // eslint-disable-next-line deprecation/deprecation\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n var shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n lastKeyDownWasAltOrMeta.current = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n var onKeyUp = function (ev) {\n return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n var onMenuKeyDown = function (ev) {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n var handled = onKeyDown(ev);\n if (handled || !hostElement.current) {\n return;\n }\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n var hasModifier = !!(ev.altKey || ev.metaKey);\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n var onItemKeyDown = function (item, ev) {\n var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n openSubMenu(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n var isScrollIdle = React.useRef(true);\n var scrollIdleTimeoutId = React.useRef();\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n var onScroll = function () {\n if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n scrollIdleTimeoutId.current = undefined;\n }\n else {\n isScrollIdle.current = false;\n }\n scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n isScrollIdle.current = true;\n }, NavigationIdleDelay);\n };\n return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n var isMountedRef = React.useRef(false);\n React.useEffect(function () {\n isMountedRef.current = true;\n return function () {\n isMountedRef.current = false;\n };\n }, []);\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The isMountedRef is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n var onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n dismiss(ev, dismissAll);\n }\n else if (isMountedRef.current) {\n closeSubMenu();\n }\n };\n return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n var enterTimerRef = React.useRef(undefined);\n var cancelSubMenuTimer = function () {\n if (enterTimerRef.current !== undefined) {\n asyncTracker.clearTimeout(enterTimerRef.current);\n enterTimerRef.current = undefined;\n }\n };\n var startSubmenuTimer = function (onTimerExpired) {\n enterTimerRef.current = asyncTracker.setTimeout(function () {\n onTimerExpired();\n cancelSubMenuTimer();\n }, subMenuHoverDelay);\n };\n return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n var menuTarget = props.target;\n var onItemMouseEnterBase = function (item, ev, target) {\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var onItemMouseMoveBase = function (item, ev, target) {\n var targetElement = ev.currentTarget;\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n else {\n return;\n }\n if (!isScrollIdle.current ||\n subMenuEntryTimer.current !== undefined ||\n targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var shouldIgnoreMouseEvent = function () {\n return !isScrollIdle.current || !gotMouseMove.current;\n };\n var onMouseItemLeave = function (item, ev) {\n var _a;\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n cancelSubMenuTimer();\n if (expandedMenuItemKey !== undefined) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (hostElement.current.setActive) {\n try {\n hostElement.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n var updateFocusOnMouseEvent = function (item, ev, target) {\n var targetElement = target ? target : ev.currentTarget;\n if (item.key === expandedMenuItemKey) {\n return;\n }\n cancelSubMenuTimer();\n // If the menu is not expanded we can update focus without any delay\n if (expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n startSubmenuTimer(function () {\n targetElement.focus();\n openSubMenu(item, targetElement, true);\n });\n }\n else {\n startSubmenuTimer(function () {\n onSubMenuDismiss(ev);\n targetElement.focus();\n });\n }\n };\n var onItemClick = function (item, ev) {\n onItemClickBase(item, ev, ev.currentTarget);\n };\n var onItemClickBase = function (item, ev, target) {\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel an async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n executeItemClick(item, ev);\n }\n else {\n if (item.key !== expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n ? props.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n openSubMenu(item, target, shouldFocusOnContainer);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n var onAnchorClick = function (item, ev) {\n executeItemClick(item, ev);\n ev.stopPropagation();\n };\n var executeItemClick = function (item, ev) {\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var shouldDismiss = false;\n if (item.onClick) {\n shouldDismiss = !!item.onClick(ev, item);\n }\n else if (props.onItemClick) {\n shouldDismiss = !!props.onItemClick(ev, item);\n }\n if (shouldDismiss || !ev.defaultPrevented) {\n dismiss(ev, true);\n }\n };\n return [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a;\n var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n var hostElement = React.useRef(null);\n var asyncTracker = useAsync();\n var menuId = useId(COMPONENT_NAME, props.id);\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: {\n getMenuClassNames: 'styles',\n },\n });\n var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n useVisibility(props, targetWindow);\n var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n //#region Render helpers\n var onDefaultRenderMenuList = function (menuListProps, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, defaultRender) {\n var indexCorrection = 0;\n var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })));\n };\n var renderFocusZone = function (children, adjustedFocusZoneProps) {\n var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n };\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var _a;\n var renderedItems = [];\n var iconProps = item.iconProps || { iconName: 'None' };\n var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps = item.itemProps;\n var styles = itemProps ? itemProps.styles : undefined;\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n // eslint-disable-next-line deprecation/deprecation\n var itemClassNames;\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n }\n else {\n var itemStyleProps = {\n theme: props.theme,\n disabled: isItemDisabled(item),\n expanded: expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName: dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(renderSeparator(index, itemClassNames));\n var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var defaultRenderNormalItem = function () {\n return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n var menuItem = props.onRenderContextualMenuItem\n ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n : defaultRenderNormalItem();\n renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n };\n var defaultMenuItemRenderer = function (item, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n };\n var renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n var headerItem;\n var groupProps;\n if (sectionProps.title) {\n var headerContextualMenuItem = undefined;\n var ariaLabelledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\".concat(sectionProps.title, \"-title\"),\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id_1,\n };\n ariaLabelledby = id_1;\n }\n else {\n var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n ariaLabelledby = id_2;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabelledby,\n };\n headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n }\n }\n if (sectionProps.items && sectionProps.items.length > 0) {\n var correctedIndex_1 = 0;\n return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\".concat(index) },\n React.createElement(\"div\", __assign({}, groupProps),\n React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n var menuItem = renderMenuItem(contextualMenuItem, itemsIndex, correctedIndex_1, getItemCount(sectionProps.items), hasCheckmarks, hasIcons, menuClassNames);\n if (contextualMenuItem.itemType !== ContextualMenuItemType.Divider &&\n contextualMenuItem.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = contextualMenuItem.customOnRenderListLength\n ? contextualMenuItem.customOnRenderListLength\n : 1;\n correctedIndex_1 += indexIncrease;\n }\n return menuItem;\n }),\n sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n }\n };\n var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n title) {\n return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n };\n var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n top, fromSection) {\n if (fromSection || index > 0) {\n return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n }\n return null;\n };\n var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n if (item.onRender) {\n return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n }\n var contextualMenuItemAs = props.contextualMenuItemAs;\n var commonProps = {\n item: item,\n classNames: classNames,\n index: index,\n focusableElementIndex: focusableElementIndex,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n contextualMenuItemAs: contextualMenuItemAs,\n onItemMouseEnter: onItemMouseEnterBase,\n onItemMouseLeave: onMouseItemLeave,\n onItemMouseMove: onItemMouseMoveBase,\n onItemMouseDown: onItemMouseDown,\n executeItemClick: executeItemClick,\n onItemKeyDown: onItemKeyDown,\n expandedMenuItemKey: expandedMenuItemKey,\n openSubMenu: openSubMenu,\n dismissSubMenu: onSubMenuDismiss,\n dismissMenu: dismiss,\n };\n if (item.href) {\n return React.createElement(ContextualMenuAnchor, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n }\n if (item.split && hasSubmenu(item)) {\n return (React.createElement(ContextualMenuSplitButton, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n }\n return React.createElement(ContextualMenuButton, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n };\n var renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var _a = props.contextualMenuItemAs, ChildrenRenderer = _a === void 0 ? ContextualMenuItem : _a;\n var itemProps = item.itemProps, id = item.id;\n var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n //#endregion\n //#region Main render\n var isBeakVisible = props.isBeakVisible;\n var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = props.getMenuClassNames;\n var classNames = getMenuClassNames\n ? getMenuClassNames(theme, className)\n : getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var hasIcons = itemsHaveIcons(items);\n function itemsHaveIcons(contextualMenuItems) {\n for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n var item = contextualMenuItems_1[_i];\n if (item.iconProps) {\n return true;\n }\n if (item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)) {\n return true;\n }\n }\n return false;\n }\n var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n var contextMenuStyle;\n var targetAsHtmlElement = targetRef.current;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n }\n else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n var totalItemCount_1 = getItemCount(items);\n var calloutStyles_1 = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length\n ? renderFocusZone(onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount_1,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: function (item) {\n return defaultMenuItemRenderer(item, classNames);\n },\n labelElementId: labelElementId,\n }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n : null,\n submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n React.createElement(FocusRects, null))); }));\n }\n else {\n return null;\n }\n //#endregion\n}), function (prevProps, newProps) {\n if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n var _a;\n (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n var match = findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n }\n else if (item.key && item.key === key) {\n return item;\n }\n }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n return onClick\n ? function (ev, item) {\n overrideTarget(ev, target);\n return onClick(ev, item);\n }\n : onClick;\n}\nfunction overrideTarget(ev, target) {\n if (ev && target) {\n ev.persist();\n if (target instanceof Event) {\n ev.target = target.target;\n }\n else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: (_a = {},\n _a[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\".concat(classNames.msButtonLabel)] = styles.labelHovered,\n _b[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconHovered,\n _b[\":hover .\".concat(classNames.msButtonDescription)] = styles.descriptionHovered,\n _b[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\".concat(classNames.msButtonIcon)] = styles.iconPressed,\n _b[\":active .\".concat(classNames.msButtonDescription)] = styles.descriptionPressed,\n _b[\":active .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconPressed,\n _b),\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ], !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n if (!_this._processingTouch && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (_this._processingTouch) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n var _a;\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n if (!ev.defaultPrevented) {\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: false,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n var ariaLabelledBy = undefined;\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n var _e = this.props.menuProps.id, id = _e === void 0 ? \"\".concat(this._labelId, \"-menu\") : _e;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n var _a, _b;\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(React.Fragment, null,\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n // Only focus the button if a splitbutton menu is not open\n if (_this.state.menuHidden) {\n _this.focus();\n }\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n // needed to access registeredProviders when manually setting focus visibility\n BaseButton.contextType = FocusRectsContext;\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n border: '1px solid ' + border,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 16px',\n textDecoration: 'none',\n textAlign: 'center',\n userSelect: 'none',\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n iconDisabled: {\n color: disabledText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n menuIconDisabled: {\n color: disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n flexGrow: '1',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n flexGrow: '1',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n _a[':hover'] = {\n border: 'none',\n },\n _a[':active'] = {\n border: 'none',\n },\n _a),\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n _b),\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n _c),\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_g = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _g[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _g),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h) }),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _j) }),\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: (_k = {\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _l),\n },\n '.ms-Button-menuIcon': {\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'GrayText',\n },\n _m),\n }\n },\n _k[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\nexport function standardStyles(theme) {\n var _a, _b, _c, _d, _e;\n var s = theme.semanticColors, p = theme.palette;\n var buttonBackground = s.buttonBackground;\n var buttonBackgroundPressed = s.buttonBackgroundPressed;\n var buttonBackgroundHovered = s.buttonBackgroundHovered;\n var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n var buttonText = s.buttonText;\n var buttonTextHovered = s.buttonTextHovered;\n var buttonTextDisabled = s.buttonTextDisabled;\n var buttonTextChecked = s.buttonTextChecked;\n var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n rootHovered: {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n rootDisabled: {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _b),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n border: 'none',\n },\n _c),\n },\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLight,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.neutralTertiaryAlt, selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _e) }),\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\nexport function primaryStyles(theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var p = theme.palette, s = theme.semanticColors;\n return {\n root: {\n backgroundColor: s.primaryButtonBackground,\n border: \"1px solid \".concat(s.primaryButtonBackground),\n color: s.primaryButtonText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n selectors: {\n ':after': {\n border: \"none\",\n outlineColor: p.white,\n },\n },\n },\n _a),\n },\n rootHovered: {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: \"1px solid \".concat(s.primaryButtonBackgroundHovered),\n color: s.primaryButtonTextHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n _b),\n },\n rootPressed: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: \"1px solid \".concat(s.primaryButtonBackgroundPressed),\n color: s.primaryButtonTextPressed,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootDisabled: {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n },\n _e),\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.white, selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _f) }),\n splitButtonMenuButton: {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n backgroundColor: 'Canvas',\n },\n _g[':hover'] = {\n backgroundColor: s.primaryButtonBackgroundHovered,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n color: 'Highlight',\n },\n _h),\n },\n _g),\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n color: 'GrayText',\n },\n _j),\n },\n };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var defaultButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n height: DEFAULT_BUTTON_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n __extends(DefaultButton, _super);\n function DefaultButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n };\n DefaultButton = __decorate([\n customizable('DefaultButton', ['theme', 'styles'], true)\n ], DefaultButton);\n return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b),\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n __extends(PrimaryButton, _super);\n function PrimaryButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryButton.prototype.render = function () {\n return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n };\n PrimaryButton = __decorate([\n customizable('PrimaryButton', ['theme', 'styles'], true)\n ], PrimaryButton);\n return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n // Label is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Label.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n __extends(LabelBase, _super);\n function LabelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LabelBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n required: required,\n theme: theme,\n });\n return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n };\n return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n var semanticColors = theme.semanticColors;\n // Tokens\n var labelFontWeight = FontWeights.semibold;\n var labelColor = semanticColors.bodyText;\n var labelDisabledColor = semanticColors.disabledBodyText;\n var labelRequiredStarColor = semanticColors.errorText;\n return {\n root: [\n 'ms-Label',\n theme.fonts.medium,\n {\n fontWeight: labelFontWeight,\n color: labelColor,\n boxSizing: 'border-box',\n boxShadow: 'none',\n margin: 0,\n display: 'block',\n padding: '5px 0',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n disabled && {\n color: labelDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n required && {\n selectors: {\n '::after': {\n content: \"' *'\",\n color: labelRequiredStarColor,\n paddingRight: 12,\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Label.styles.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../../../Image';\nimport { Icon } from '../../../Icon';\nimport { classNamesFunction, getNativeProps, inputProperties, css, composeRenderFunction, getPropsWithDefaults, } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nvar LARGE_IMAGE_SIZE = 71;\nvar DEFAULT_PROPS = {\n // This ensures default imageSize value doesn't mutate. Mutation can cause style re-calcuation.\n imageSize: { width: 32, height: 32 },\n};\nexport var ChoiceGroupOptionBase = function (propsWithoutDefaults) {\n // Mix the `key` prop back in since custom render functions may be expecting it\n // (React uses `key` internally rather than passing it through to the component)\n var props = getPropsWithDefaults(__assign(__assign({}, DEFAULT_PROPS), { key: propsWithoutDefaults.itemKey }), propsWithoutDefaults);\n var ariaLabel = props.ariaLabel, focused = props.focused, required = props.required, theme = props.theme, iconProps = props.iconProps, imageSrc = props.imageSrc, imageSize = props.imageSize, disabled = props.disabled, checked = props.checked, id = props.id, styles = props.styles, name = props.name, rest = __rest(props, [\"ariaLabel\", \"focused\", \"required\", \"theme\", \"iconProps\", \"imageSrc\", \"imageSize\", \"disabled\", \"checked\", \"id\", \"styles\", \"name\"]);\n var classNames = getClassNames(styles, {\n theme: theme,\n hasIcon: !!iconProps,\n hasImage: !!imageSrc,\n checked: checked,\n disabled: disabled,\n imageIsLarge: !!imageSrc && (imageSize.width > LARGE_IMAGE_SIZE || imageSize.height > LARGE_IMAGE_SIZE),\n imageSize: imageSize,\n focused: focused,\n });\n var _a = getNativeProps(rest, inputProperties), className = _a.className, nativeProps = __rest(_a, [\"className\"]);\n var defaultOnRenderLabel = function () {\n return (React.createElement(\"span\", { id: props.labelId, className: \"ms-ChoiceFieldLabel\" }, props.text));\n };\n var defaultOnRenderField = function () {\n var _a = props.imageAlt, imageAlt = _a === void 0 ? '' : _a, selectedImageSrc = props.selectedImageSrc;\n var onRenderLabel = props.onRenderLabel\n ? composeRenderFunction(props.onRenderLabel, defaultOnRenderLabel)\n : defaultOnRenderLabel;\n var label = onRenderLabel(__assign(__assign({}, props), { key: props.itemKey }));\n return (React.createElement(\"label\", { htmlFor: id, className: classNames.field },\n imageSrc && (React.createElement(\"div\", { className: classNames.innerField },\n React.createElement(\"div\", { className: classNames.imageWrapper },\n React.createElement(Image, __assign({ src: imageSrc, alt: imageAlt }, imageSize))),\n React.createElement(\"div\", { className: classNames.selectedImageWrapper },\n React.createElement(Image, __assign({ src: selectedImageSrc, alt: imageAlt }, imageSize))))),\n iconProps && (React.createElement(\"div\", { className: classNames.innerField },\n React.createElement(\"div\", { className: classNames.iconWrapper },\n React.createElement(Icon, __assign({}, iconProps))))),\n imageSrc || iconProps ? React.createElement(\"div\", { className: classNames.labelWrapper }, label) : label));\n };\n var _b = props.onRenderField, onRenderField = _b === void 0 ? defaultOnRenderField : _b;\n var onChange = function (evt) {\n var _a;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n };\n var onBlur = function (evt) {\n var _a;\n (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, evt);\n };\n var onFocus = function (evt) {\n var _a;\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n };\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.choiceFieldWrapper },\n React.createElement(\"input\", __assign({ \"aria-label\": ariaLabel, id: id, className: css(classNames.input, className), type: \"radio\", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: onChange, onFocus: onFocus, onBlur: onBlur })),\n onRenderField(__assign(__assign({}, props), { key: props.itemKey }), defaultOnRenderField))));\n};\nChoiceGroupOptionBase.displayName = 'ChoiceGroupOption';\n//# sourceMappingURL=ChoiceGroupOption.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-ChoiceField',\n choiceFieldWrapper: 'ms-ChoiceField-wrapper',\n input: 'ms-ChoiceField-input',\n field: 'ms-ChoiceField-field',\n innerField: 'ms-ChoiceField-innerField',\n imageWrapper: 'ms-ChoiceField-imageWrapper',\n iconWrapper: 'ms-ChoiceField-iconWrapper',\n labelWrapper: 'ms-ChoiceField-labelWrapper',\n checked: 'is-checked',\n};\nvar labelWrapperLineHeight = 15;\nvar labelWrapperHeight = labelWrapperLineHeight * 2 + 2; // adding 2px height to ensure text doesn't get cutoff\nvar iconSize = 32;\nvar choiceFieldSize = 20;\nvar choiceFieldTransitionDuration = '200ms';\nvar choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';\nvar radioButtonSpacing = 3;\nvar radioButtonInnerSize = 5;\nfunction getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {\n var _a, _b;\n return [\n 'is-inFocus',\n {\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n position: 'relative',\n outline: 'transparent',\n selectors: {\n '::-moz-focus-inner': {\n border: 0,\n },\n ':after': {\n content: '\"\"',\n top: -2,\n right: -2,\n bottom: -2,\n left: -2,\n pointerEvents: 'none',\n border: \"1px solid \".concat(focusBorderColor),\n position: 'absolute',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'WindowText',\n borderWidth: hasIconOrImage ? 1 : 2,\n },\n _b),\n },\n },\n },\n _a),\n },\n ];\n}\nfunction getImageWrapperStyle(isSelectedImageWrapper, className, checked) {\n return [\n className,\n {\n paddingBottom: 2,\n transitionProperty: 'opacity',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n selectors: {\n '.ms-Image': {\n display: 'inline-block',\n borderStyle: 'none',\n },\n },\n },\n (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [\n 'is-hidden',\n {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n opacity: 0,\n },\n ],\n ];\n}\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var circleBorderColor = palette.neutralPrimary;\n var circleHoveredBorderColor = semanticColors.inputBorderHovered;\n var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var circleCheckedHoveredBorderColor = palette.themeDark;\n var circleDisabledBorderColor = semanticColors.disabledBodySubtext;\n var circleBackgroundColor = semanticColors.bodyBackground;\n var dotUncheckedHoveredColor = palette.neutralSecondary;\n var dotCheckedColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var dotCheckedHoveredColor = palette.themeDark;\n var dotDisabledColor = semanticColors.disabledBodySubtext;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked\n var labelHoverFocusColor = palette.neutralDark;\n var focusBorderColor = semanticColors.focusBorder;\n var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;\n var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;\n var iconOrImageChoiceBackgroundColor = palette.neutralLighter;\n var fieldHoverOrFocusProperties = {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: labelHoverFocusColor,\n },\n ':before': {\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n ':after': [\n !hasIcon &&\n !hasImage &&\n !checked && {\n content: '\"\"',\n transitionProperty: 'background-color',\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n backgroundColor: dotUncheckedHoveredColor,\n },\n checked && {\n borderColor: dotCheckedHoveredColor,\n background: dotCheckedHoveredColor,\n },\n ],\n },\n };\n var enabledFieldWithImageHoverOrFocusProperties = {\n borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,\n selectors: {\n ':before': {\n opacity: 1,\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n },\n };\n var circleAreaProperties = [\n {\n content: '\"\"',\n display: 'inline-block',\n backgroundColor: circleBackgroundColor,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: circleBorderColor,\n width: choiceFieldSize,\n height: choiceFieldSize,\n fontWeight: 'normal',\n position: 'absolute',\n top: 0,\n left: 0,\n boxSizing: 'border-box',\n transitionProperty: 'border-color',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n borderRadius: '50%',\n },\n disabled && {\n borderColor: circleDisabledBorderColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderColor: 'GrayText', background: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n checked && {\n borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n background: 'Window',\n forcedColorAdjust: 'none',\n },\n _b),\n },\n (hasIcon || hasImage) && {\n top: radioButtonSpacing,\n right: radioButtonSpacing,\n left: 'auto',\n opacity: checked ? 1 : 0,\n },\n ];\n var dotAreaProperties = [\n {\n content: '\"\"',\n width: 0,\n height: 0,\n borderRadius: '50%',\n position: 'absolute',\n left: choiceFieldSize / 2,\n right: 0,\n transitionProperty: 'border-width',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n boxSizing: 'border-box',\n },\n checked && {\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? dotDisabledColor : dotCheckedColor,\n background: dotCheckedColor,\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n checked &&\n (hasIcon || hasImage) && {\n top: radioButtonSpacing + radioButtonInnerSize,\n right: radioButtonSpacing + radioButtonInnerSize,\n left: 'auto', // To reset the value of 'left' to its default value, so that 'right' works\n },\n ];\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n color: semanticColors.bodyText,\n minHeight: 26,\n border: 'none',\n position: 'relative',\n marginTop: 8,\n selectors: {\n '.ms-ChoiceFieldLabel': {\n display: 'inline-block',\n },\n },\n },\n !hasIcon &&\n !hasImage && {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n paddingLeft: '26px',\n },\n },\n },\n hasImage && 'ms-ChoiceField--image',\n hasIcon && 'ms-ChoiceField--icon',\n (hasIcon || hasImage) && {\n display: 'inline-flex',\n fontSize: 0,\n margin: '0 4px 4px 0',\n paddingLeft: 0,\n backgroundColor: iconOrImageChoiceBackgroundColor,\n height: '100%',\n },\n ],\n choiceFieldWrapper: [\n classNames.choiceFieldWrapper,\n focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage),\n ],\n // The hidden input\n input: [\n classNames.input,\n {\n position: 'absolute',\n opacity: 0,\n top: 0,\n right: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n },\n disabled && 'is-disabled',\n ],\n field: [\n classNames.field,\n checked && classNames.checked,\n {\n display: 'inline-block',\n cursor: 'pointer',\n marginTop: 0,\n position: 'relative',\n verticalAlign: 'top',\n userSelect: 'none',\n minHeight: 20,\n selectors: {\n ':hover': !disabled && fieldHoverOrFocusProperties,\n ':focus': !disabled && fieldHoverOrFocusProperties,\n // The circle\n ':before': circleAreaProperties,\n // The dot\n ':after': dotAreaProperties,\n },\n },\n hasIcon && 'ms-ChoiceField--icon',\n hasImage && 'ms-ChoiceField-field--image',\n (hasIcon || hasImage) && {\n boxSizing: 'content-box',\n cursor: 'pointer',\n paddingTop: 22,\n margin: 0,\n textAlign: 'center',\n transitionProperty: 'all',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n border: '1px solid transparent',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n checked && {\n borderColor: iconOrImageChoiceBorderCheckedColor,\n },\n (hasIcon || hasImage) &&\n !disabled && {\n selectors: {\n ':hover': enabledFieldWithImageHoverOrFocusProperties,\n ':focus': enabledFieldWithImageHoverOrFocusProperties,\n },\n },\n disabled && {\n cursor: 'default',\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: semanticColors.disabledBodyText,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n },\n },\n checked &&\n disabled && {\n borderColor: iconOrImageChoiceBackgroundColor,\n },\n ],\n innerField: [\n classNames.innerField,\n hasImage && {\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n height: imageSize.height,\n width: imageSize.width,\n },\n (hasIcon || hasImage) && {\n position: 'relative',\n display: 'inline-block',\n paddingLeft: 30,\n paddingRight: 30,\n },\n (hasIcon || hasImage) &&\n imageIsLarge && {\n paddingLeft: 24,\n paddingRight: 24,\n },\n (hasIcon || hasImage) &&\n disabled && {\n opacity: 0.25,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _e),\n },\n ],\n imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),\n selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),\n iconWrapper: [\n classNames.iconWrapper,\n {\n fontSize: iconSize,\n lineHeight: iconSize,\n height: iconSize,\n },\n ],\n labelWrapper: [\n classNames.labelWrapper,\n fonts.medium,\n (hasIcon || hasImage) && {\n display: 'block',\n position: 'relative',\n margin: '4px 8px 2px 8px',\n height: labelWrapperHeight,\n lineHeight: labelWrapperLineHeight,\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n maxWidth: imageSize.width * 2,\n overflow: 'hidden',\n whiteSpace: 'pre-wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroupOption.styles.js.map","import { styled } from '../../../Utilities';\nimport { ChoiceGroupOptionBase } from './ChoiceGroupOption.base';\nimport { getStyles } from './ChoiceGroupOption.styles';\nexport var ChoiceGroupOption = styled(ChoiceGroupOptionBase, getStyles, undefined, { scope: 'ChoiceGroupOption' });\n//# sourceMappingURL=ChoiceGroupOption.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { classNamesFunction, find, FocusRectsContext, getNativeProps, divProperties, setFocusVisibility, useFocusRects, } from '../../Utilities';\nimport { ChoiceGroupOption } from './ChoiceGroupOption/index';\nimport { useId, useControllableValue, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getOptionId = function (option, id) {\n return \"\".concat(id, \"-\").concat(option.key);\n};\nvar findOption = function (options, key) {\n return key === undefined ? undefined : find(options, function (value) { return value.key === key; });\n};\nvar focusSelectedOption = function (options, keyChecked, id, focusProviders) {\n var optionToFocus = findOption(options, keyChecked) || options.filter(function (option) { return !option.disabled; })[0];\n var elementToFocus = optionToFocus && document.getElementById(getOptionId(optionToFocus, id));\n if (elementToFocus) {\n elementToFocus.focus();\n setFocusVisibility(true, elementToFocus, focusProviders);\n }\n};\nvar focusFromFocusTrapZone = function (evt) {\n return evt.relatedTarget instanceof HTMLElement && evt.relatedTarget.dataset.isFocusTrapZoneBumper === 'true';\n};\nvar useComponentRef = function (options, keyChecked, id, componentRef, focusProviders) {\n React.useImperativeHandle(componentRef, function () { return ({\n get checkedOption() {\n return findOption(options, keyChecked);\n },\n focus: function () {\n focusSelectedOption(options, keyChecked, id, focusProviders);\n },\n }); }, [options, keyChecked, id, focusProviders]);\n};\nvar COMPONENT_NAME = 'ChoiceGroup';\nexport var ChoiceGroupBase = React.forwardRef(function (props, forwardedRef) {\n var className = props.className, theme = props.theme, styles = props.styles, _a = props.options, options = _a === void 0 ? [] : _a, label = props.label, required = props.required, disabled = props.disabled, name = props.name, defaultSelectedKey = props.defaultSelectedKey, componentRef = props.componentRef, onChange = props.onChange;\n var id = useId('ChoiceGroup');\n var labelId = useId('ChoiceGroupLabel');\n var divProps = getNativeProps(props, divProperties, [\n 'onChange',\n 'className',\n 'required',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); }),\n });\n var ariaLabelledBy = props.ariaLabelledBy || (label ? labelId : props['aria-labelledby']);\n var _b = useControllableValue(props.selectedKey, defaultSelectedKey), keyChecked = _b[0], setKeyChecked = _b[1];\n var _c = React.useState(), keyFocused = _c[0], setKeyFocused = _c[1];\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n var focusContext = React.useContext(FocusRectsContext);\n useDebugWarnings(props);\n useComponentRef(options, keyChecked, id, componentRef, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n useFocusRects(rootRef);\n var onFocus = React.useCallback(function (ev, option) {\n var _a;\n if (option) {\n setKeyFocused(option.itemKey);\n (_a = option.onFocus) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n }\n }, []);\n var onBlur = React.useCallback(function (ev, option) {\n var _a;\n setKeyFocused(undefined);\n (_a = option === null || option === void 0 ? void 0 : option.onBlur) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n }, []);\n var onOptionChange = React.useCallback(function (evt, option) {\n var _a;\n if (!option) {\n return;\n }\n setKeyChecked(option.itemKey);\n (_a = option.onChange) === null || _a === void 0 ? void 0 : _a.call(option, evt);\n onChange === null || onChange === void 0 ? void 0 : onChange(evt, findOption(options, option.itemKey));\n }, [onChange, options, setKeyChecked]);\n var onRadioFocus = React.useCallback(function (evt) {\n // Handles scenarios like this bug: https://github.com/microsoft/fluentui/issues/20173\n if (focusFromFocusTrapZone(evt)) {\n focusSelectedOption(options, keyChecked, id, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n }\n }, [options, keyChecked, id, focusContext]);\n return (React.createElement(\"div\", __assign({ className: classNames.root }, divProps, { ref: mergedRootRefs }),\n React.createElement(\"div\", __assign({ role: \"radiogroup\" }, (ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }), { onFocus: onRadioFocus }),\n label && (React.createElement(Label, { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),\n React.createElement(\"div\", { className: classNames.flexContainer }, options.map(function (option) {\n return (React.createElement(ChoiceGroupOption, __assign({ itemKey: option.key }, option, { key: option.key, onBlur: onBlur, onFocus: onFocus, onChange: onOptionChange, focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: getOptionId(option, id), labelId: option.labelId || \"\".concat(labelId, \"-\").concat(option.key), name: name || id, required: required })));\n })))));\n});\nChoiceGroupBase.displayName = COMPONENT_NAME;\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n mutuallyExclusive: {\n selectedKey: 'defaultSelectedKey',\n },\n });\n }\n}\n//# sourceMappingURL=ChoiceGroup.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ChoiceFieldGroup',\n flexContainer: 'ms-ChoiceFieldGroup-flexContainer',\n};\nexport var getStyles = function (props) {\n var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n className,\n classNames.root,\n theme.fonts.medium,\n {\n display: 'block',\n },\n ],\n flexContainer: [\n classNames.flexContainer,\n optionsContainIconOrImage && {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroup.styles.js.map","import { styled } from '../../Utilities';\nimport { ChoiceGroupBase } from './ChoiceGroup.base';\nimport { getStyles } from './ChoiceGroup.styles';\nexport var ChoiceGroup = styled(ChoiceGroupBase, getStyles, undefined, { scope: 'ChoiceGroup' });\n//# sourceMappingURL=ChoiceGroup.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { Async, classNamesFunction, DelayedRender, getId, getNativeProps, getWindow, initializeComponentRef, inputProperties, isControlled, isIE11, textAreaProperties, warn, warnControlledUsage, warnMutuallyExclusive, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STATE_VALUE = '';\nvar COMPONENT_NAME = 'TextField';\nvar REVEAL_ICON_NAME = 'RedEye';\nvar HIDE_ICON_NAME = 'Hide';\nvar TextFieldBase = /** @class */ (function (_super) {\n __extends(TextFieldBase, _super);\n function TextFieldBase(props) {\n var _this = _super.call(this, props) || this;\n _this._textElement = React.createRef();\n _this._onFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this.setState({ isFocused: true }, function () {\n if (_this.props.validateOnFocusIn) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n _this.setState({ isFocused: false }, function () {\n if (_this.props.validateOnFocusOut) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required;\n // IProcessedStyleSet definition requires casting for what Label expects as its styles prop\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n if (label) {\n return (React.createElement(Label, { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));\n }\n return null;\n };\n _this._onRenderDescription = function (props) {\n if (props.description) {\n return React.createElement(\"span\", { className: _this._classNames.description }, props.description);\n }\n return null;\n };\n _this._onRevealButtonClick = function (event) {\n _this.setState(function (prevState) { return ({ isRevealingPassword: !prevState.isRevealingPassword }); });\n };\n _this._onInputChange = function (event) {\n // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,\n // which have *probably* been fixed now:\n // - https://github.com/microsoft/fluentui/issues/744 (likely fixed)\n // - https://github.com/microsoft/fluentui/issues/824 (confirmed fixed)\n var _a, _b;\n // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for\n // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.\n var element = event.target;\n var value = element.value;\n // Ignore this event if any of the following are true:\n // - the value is undefined (in case one of the IE bugs comes back)\n // - it's a duplicate event (important since onInputChange is called twice per actual user event)\n // - it's the same as the previous value\n var previousValue = _getValue(_this.props, _this.state) || '';\n if (value === undefined || value === _this._lastChangeValue || value === previousValue) {\n _this._lastChangeValue = undefined;\n return;\n }\n _this._lastChangeValue = value;\n (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, event, value);\n if (!_this._isControlled) {\n // ONLY if this is an uncontrolled component, update the displayed value.\n // (Controlled components must update the `value` prop from `onChange`.)\n _this.setState({ uncontrolledValue: value });\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n errorMessage: 'onGetErrorMessage',\n });\n }\n _this._fallbackId = getId(COMPONENT_NAME);\n _this._descriptionId = getId(COMPONENT_NAME + 'Description');\n _this._labelId = getId(COMPONENT_NAME + 'Label');\n _this._prefixId = getId(COMPONENT_NAME + 'Prefix');\n _this._suffixId = getId(COMPONENT_NAME + 'Suffix');\n _this._warnControlledUsage();\n var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;\n if (typeof defaultValue === 'number') {\n // This isn't allowed per the props, but happens anyway.\n defaultValue = String(defaultValue);\n }\n _this.state = {\n uncontrolledValue: _this._isControlled ? undefined : defaultValue,\n isFocused: false,\n errorMessage: '',\n };\n _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);\n _this._lastValidation = 0;\n return _this;\n }\n Object.defineProperty(TextFieldBase.prototype, \"value\", {\n /**\n * Gets the current value of the text field.\n */\n get: function () {\n return _getValue(this.props, this.state);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype.componentDidMount = function () {\n this._adjustInputHeight();\n if (this.props.validateOnLoad) {\n this._validate(this.value);\n }\n };\n TextFieldBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {\n return {\n selection: [this.selectionStart, this.selectionEnd],\n };\n };\n TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {\n var props = this.props;\n var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;\n var start = selection[0], end = selection[1];\n if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {\n // The text field has just changed between single- and multi-line, so we need to reset focus\n // and selection/cursor.\n this.focus();\n if (start !== null && end !== null && start >= 0 && end >= 0) {\n this.setSelectionRange(start, end);\n }\n }\n if (prevProps.value !== props.value) {\n // Only if the value in props changed, reset the record of the last value seen by a\n // change/input event (don't do this if the value in state changed, since at least in tests\n // the state update may happen before the second event in a series)\n this._lastChangeValue = undefined;\n }\n var prevValue = _getValue(prevProps, prevState);\n var value = this.value;\n if (prevValue !== value) {\n // Handle controlled/uncontrolled warnings and status\n this._warnControlledUsage(prevProps);\n // Clear error message if needed\n // TODO: is there any way to do this without an extra render?\n if (this.state.errorMessage && !props.errorMessage) {\n this.setState({ errorMessage: '' });\n }\n // Adjust height if needed based on new value\n this._adjustInputHeight();\n // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.\n // This seems a bit odd and hard to integrate with the new approach.\n // (Starting to think we should just put the validation logic in a separate wrapper component...?)\n if (_shouldValidateAllChanges(props)) {\n this._delayedValidate(value);\n }\n }\n };\n TextFieldBase.prototype.render = function () {\n var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, invalid = _a.invalid, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, canRevealPassword = _a.canRevealPassword, revealPasswordAriaLabel = _a.revealPasswordAriaLabel, type = _a.type, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;\n var _f = this.state, isFocused = _f.isFocused, isRevealingPassword = _f.isRevealingPassword;\n var errorMessage = this._errorMessage;\n var isInvalid = typeof invalid === 'boolean' ? invalid : !!errorMessage;\n var hasRevealButton = !!canRevealPassword && type === 'password' && _browserNeedsRevealButton();\n var classNames = (this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n focused: isFocused,\n required: required,\n multiline: multiline,\n hasLabel: !!label,\n hasErrorMessage: isInvalid,\n borderless: borderless,\n resizable: resizable,\n hasIcon: !!iconProps,\n underlined: underlined,\n inputClassName: inputClassName,\n autoAdjustHeight: autoAdjustHeight,\n hasRevealButton: hasRevealButton,\n }));\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", { ref: this.props.elementRef, className: classNames.root },\n React.createElement(\"div\", { className: classNames.wrapper },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", { className: classNames.fieldGroup },\n (prefix !== undefined || this.props.onRenderPrefix) && (React.createElement(\"div\", { className: classNames.prefix, id: this._prefixId }, onRenderPrefix(this.props, this._onRenderPrefix))),\n multiline ? this._renderTextArea() : this._renderInput(),\n iconProps && React.createElement(Icon, __assign({ className: classNames.icon }, iconProps)),\n hasRevealButton && (\n // Explicitly set type=\"button\" since the default button type within a form is \"submit\"\n React.createElement(\"button\", { \"aria-label\": revealPasswordAriaLabel, className: classNames.revealButton, onClick: this._onRevealButtonClick, \"aria-pressed\": !!isRevealingPassword, type: \"button\" },\n React.createElement(\"span\", { className: classNames.revealSpan },\n React.createElement(Icon, { className: classNames.revealIcon, iconName: isRevealingPassword ? HIDE_ICON_NAME : REVEAL_ICON_NAME })))),\n (suffix !== undefined || this.props.onRenderSuffix) && (React.createElement(\"div\", { className: classNames.suffix, id: this._suffixId }, onRenderSuffix(this.props, this._onRenderSuffix))))),\n this._isDescriptionAvailable && (React.createElement(\"span\", { id: this._descriptionId },\n onRenderDescription(this.props, this._onRenderDescription),\n errorMessage && (React.createElement(\"div\", { role: \"alert\" },\n React.createElement(DelayedRender, null, this._renderErrorMessage())))))));\n };\n /**\n * Sets focus on the text field\n */\n TextFieldBase.prototype.focus = function () {\n if (this._textElement.current) {\n this._textElement.current.focus();\n }\n };\n /**\n * Blurs the text field.\n */\n TextFieldBase.prototype.blur = function () {\n if (this._textElement.current) {\n this._textElement.current.blur();\n }\n };\n /**\n * Selects the text field\n */\n TextFieldBase.prototype.select = function () {\n if (this._textElement.current) {\n this._textElement.current.select();\n }\n };\n /**\n * Sets the selection start of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionStart = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionStart = value;\n }\n };\n /**\n * Sets the selection end of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionEnd = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionEnd = value;\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"selectionStart\", {\n /**\n * Gets the selection start of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"selectionEnd\", {\n /**\n * Gets the selection end of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start - Index of the start of the selection.\n * @param end - Index of the end of the selection.\n */\n TextFieldBase.prototype.setSelectionRange = function (start, end) {\n if (this._textElement.current) {\n this._textElement.current.setSelectionRange(start, end);\n }\n };\n TextFieldBase.prototype._warnControlledUsage = function (prevProps) {\n // Show warnings if props are being used in an invalid way\n warnControlledUsage({\n componentId: this._id,\n componentName: COMPONENT_NAME,\n props: this.props,\n oldProps: prevProps,\n valueProp: 'value',\n defaultValueProp: 'defaultValue',\n onChangeProp: 'onChange',\n readOnlyProp: 'readOnly',\n });\n if (this.props.value === null && !this._hasWarnedNullValue) {\n this._hasWarnedNullValue = true;\n warn(\"Warning: 'value' prop on '\".concat(COMPONENT_NAME, \"' should not be null. Consider using an \") +\n 'empty string to clear the component or undefined to indicate an uncontrolled component.');\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"_id\", {\n /** Returns `props.id` if available, or a fallback if not. */\n get: function () {\n return this.props.id || this._fallbackId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"_isControlled\", {\n get: function () {\n return isControlled(this.props, 'value');\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._onRenderPrefix = function (props) {\n var prefix = props.prefix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, prefix);\n };\n TextFieldBase.prototype._onRenderSuffix = function (props) {\n var suffix = props.suffix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, suffix);\n };\n Object.defineProperty(TextFieldBase.prototype, \"_errorMessage\", {\n /**\n * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.\n *\n * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.\n * - If we have done the validation and there is validation error, errorMessage is the validation error message.\n */\n get: function () {\n var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;\n return errorMessage || '';\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Renders error message based on the type of the message.\n *\n * - If error message is string, it will render using the built in styles.\n * - If error message is an element, user has full control over how it's rendered.\n */\n TextFieldBase.prototype._renderErrorMessage = function () {\n var errorMessage = this._errorMessage;\n return errorMessage ? (typeof errorMessage === 'string' ? (React.createElement(\"p\", { className: this._classNames.errorMessage },\n React.createElement(\"span\", { \"data-automation-id\": \"error-message\" }, errorMessage))) : (React.createElement(\"div\", { className: this._classNames.errorMessage, \"data-automation-id\": \"error-message\" }, errorMessage))) : null;\n };\n Object.defineProperty(TextFieldBase.prototype, \"_isDescriptionAvailable\", {\n /**\n * If a custom description render function is supplied then treat description as always available.\n * Otherwise defer to the presence of description or error message text.\n */\n get: function () {\n var props = this.props;\n return !!(props.onRenderDescription || props.description || this._errorMessage);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._renderTextArea = function () {\n var _a = this.props.invalid, invalid = _a === void 0 ? !!this._errorMessage : _a;\n var textAreaProps = getNativeProps(this.props, textAreaProperties, ['defaultValue']);\n var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);\n return (React.createElement(\"textarea\", __assign({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], \"aria-invalid\": invalid, \"aria-label\": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));\n };\n TextFieldBase.prototype._renderInput = function () {\n var _a = this.props, ariaLabel = _a.ariaLabel, _b = _a.invalid, invalid = _b === void 0 ? !!this._errorMessage : _b, onRenderPrefix = _a.onRenderPrefix, onRenderSuffix = _a.onRenderSuffix, prefix = _a.prefix, suffix = _a.suffix, _c = _a.type, type = _c === void 0 ? 'text' : _c, label = _a.label;\n // build aria-labelledby list from label, prefix, and suffix\n var labelIds = [];\n label && labelIds.push(this._labelId);\n (prefix !== undefined || onRenderPrefix) && labelIds.push(this._prefixId);\n (suffix !== undefined || onRenderSuffix) && labelIds.push(this._suffixId);\n var inputProps = __assign(__assign({ type: this.state.isRevealingPassword ? 'text' : type, id: this._id }, getNativeProps(this.props, inputProperties, ['defaultValue', 'type'])), { 'aria-labelledby': this.props['aria-labelledby'] || (labelIds.length > 0 ? labelIds.join(' ') : undefined), ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, 'aria-label': ariaLabel, 'aria-describedby': this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], 'aria-invalid': invalid, onFocus: this._onFocus, onBlur: this._onBlur });\n var defaultRender = function (updatedInputProps) {\n return React.createElement(\"input\", __assign({}, updatedInputProps));\n };\n var onRenderInput = this.props.onRenderInput || defaultRender;\n return onRenderInput(inputProps, defaultRender);\n };\n TextFieldBase.prototype._validate = function (value) {\n var _this = this;\n // In case _validate is called again while validation promise is executing\n if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {\n return;\n }\n this._latestValidateValue = value;\n var onGetErrorMessage = this.props.onGetErrorMessage;\n var result = onGetErrorMessage && onGetErrorMessage(value || '');\n if (result !== undefined) {\n if (typeof result === 'string' || !('then' in result)) {\n this.setState({ errorMessage: result });\n this._notifyAfterValidate(value, result);\n }\n else {\n var currentValidation_1 = ++this._lastValidation;\n result.then(function (errorMessage) {\n if (currentValidation_1 === _this._lastValidation) {\n _this.setState({ errorMessage: errorMessage });\n }\n _this._notifyAfterValidate(value, errorMessage);\n });\n }\n }\n else {\n this._notifyAfterValidate(value, '');\n }\n };\n TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {\n if (value === this.value && this.props.onNotifyValidationResult) {\n this.props.onNotifyValidationResult(errorMessage, value);\n }\n };\n TextFieldBase.prototype._adjustInputHeight = function () {\n if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {\n var textField = this._textElement.current;\n textField.style.height = '';\n textField.style.height = textField.scrollHeight + 'px';\n }\n };\n TextFieldBase.defaultProps = {\n resizable: true,\n deferredValidationTime: 200,\n validateOnLoad: true,\n };\n return TextFieldBase;\n}(React.Component));\nexport { TextFieldBase };\n/** Get the value from the given state and props (converting from number to string if needed) */\nfunction _getValue(props, state) {\n var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;\n if (typeof value === 'number') {\n // not allowed per typings, but happens anyway\n return String(value);\n }\n return value;\n}\n/**\n * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.\n * Otherwise, validation should run on every change.\n */\nfunction _shouldValidateAllChanges(props) {\n return !(props.validateOnFocusIn || props.validateOnFocusOut);\n}\n// Only calculate this once across all TextFields, since will stay the same\nvar __browserNeedsRevealButton;\nfunction _browserNeedsRevealButton() {\n if (typeof __browserNeedsRevealButton !== 'boolean') {\n var win = getWindow();\n if (win === null || win === void 0 ? void 0 : win.navigator) {\n // Edge, Chromium Edge\n var isEdge = /Edg/.test(win.navigator.userAgent || '');\n __browserNeedsRevealButton = !(isIE11() || isEdge);\n }\n else {\n __browserNeedsRevealButton = true;\n }\n }\n return __browserNeedsRevealButton;\n}\n//# sourceMappingURL=TextField.base.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, getFocusStyle, getGlobalClassNames, getInputFocusStyle, HighContrastSelector, normalize, getPlaceholderStyles, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar globalClassNames = {\n root: 'ms-TextField',\n description: 'ms-TextField-description',\n errorMessage: 'ms-TextField-errorMessage',\n field: 'ms-TextField-field',\n fieldGroup: 'ms-TextField-fieldGroup',\n prefix: 'ms-TextField-prefix',\n suffix: 'ms-TextField-suffix',\n wrapper: 'ms-TextField-wrapper',\n revealButton: 'ms-TextField-reveal',\n multiline: 'ms-TextField--multiline',\n borderless: 'ms-TextField--borderless',\n underlined: 'ms-TextField--underlined',\n unresizable: 'ms-TextField--unresizable',\n required: 'is-required',\n disabled: 'is-disabled',\n active: 'is-active',\n};\nfunction getLabelStyles(props) {\n var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n return function () {\n var _a;\n return ({\n root: [\n underlined &&\n disabled && {\n color: palette.neutralTertiary,\n },\n underlined && {\n fontSize: fonts.medium.fontSize,\n marginRight: 8,\n paddingLeft: 12,\n paddingRight: 0,\n lineHeight: '22px',\n height: 32,\n },\n underlined &&\n focused && {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n height: 31, // -1px to prevent jumpiness in HC with the increased border-width to 2px\n },\n _a),\n },\n ],\n });\n };\n}\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight, hasRevealButton = props.hasRevealButton;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var fieldPrefixSuffix = {\n // Suffix/Prefix are not editable so the disabled slot perfectly fits.\n background: semanticColors.disabledBackground,\n color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n lineHeight: 1,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _a),\n };\n // placeholder style constants\n var placeholderStyles = [\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n required && classNames.required,\n disabled && classNames.disabled,\n focused && classNames.active,\n multiline && classNames.multiline,\n borderless && classNames.borderless,\n underlined && classNames.underlined,\n normalize,\n {\n position: 'relative',\n },\n className,\n ],\n wrapper: [\n classNames.wrapper,\n underlined && [\n {\n display: 'flex',\n borderBottom: \"1px solid \".concat(!hasErrorMessage ? semanticColors.inputBorder : semanticColors.errorText),\n width: '100%',\n },\n disabled && {\n borderBottomColor: semanticColors.disabledBackground,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n !disabled && {\n selectors: {\n ':hover': {\n borderBottomColor: !hasErrorMessage ? semanticColors.inputBorderHovered : semanticColors.errorText,\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ borderBottomColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n focused && [\n {\n position: 'relative',\n },\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, 0, 'borderBottom'),\n ],\n ],\n ],\n fieldGroup: [\n classNames.fieldGroup,\n normalize,\n {\n border: \"1px solid \".concat(semanticColors.inputBorder),\n borderRadius: effects.roundedCorner2,\n background: semanticColors.inputBackground,\n cursor: 'text',\n height: 32,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n },\n multiline && {\n minHeight: '60px',\n height: 'auto',\n display: 'flex',\n },\n !focused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n focused &&\n !underlined &&\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, effects.roundedCorner2),\n disabled && {\n borderColor: semanticColors.disabledBackground,\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _g),\n cursor: 'default',\n },\n borderless && {\n border: 'none',\n },\n borderless &&\n focused && {\n border: 'none',\n selectors: {\n ':after': {\n border: 'none',\n },\n },\n },\n underlined && {\n flex: '1 1 0px',\n border: 'none',\n textAlign: 'left',\n },\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasErrorMessage &&\n !underlined && {\n borderColor: semanticColors.errorText,\n selectors: {\n '&:hover': {\n borderColor: semanticColors.errorText,\n },\n },\n },\n !hasLabel &&\n required && {\n selectors: (_h = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _h[HighContrastSelector] = {\n selectors: {\n ':before': {\n color: 'WindowText',\n right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n },\n },\n },\n _h),\n },\n ],\n field: [\n fonts.medium,\n classNames.field,\n normalize,\n {\n borderRadius: 0,\n border: 'none',\n background: 'none',\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n padding: '0 8px',\n width: '100%',\n minWidth: 0,\n textOverflow: 'ellipsis',\n outline: 0,\n selectors: (_j = {\n '&:active, &:focus, &:hover': { outline: 0 },\n '::-ms-clear': {\n display: 'none',\n }\n },\n _j[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _j),\n },\n getPlaceholderStyles(placeholderStyles),\n multiline &&\n !resizable && [\n classNames.unresizable,\n {\n resize: 'none',\n },\n ],\n multiline && {\n minHeight: 'inherit',\n lineHeight: 17,\n flexGrow: 1,\n paddingTop: 6,\n paddingBottom: 6,\n overflow: 'auto',\n width: '100%',\n },\n multiline &&\n autoAdjustHeight && {\n overflow: 'hidden',\n },\n hasIcon &&\n !hasRevealButton && {\n paddingRight: 24,\n },\n multiline &&\n hasIcon && {\n paddingRight: 40,\n },\n disabled && [\n {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n borderColor: semanticColors.disabledBackground,\n },\n getPlaceholderStyles(disabledPlaceholderStyles),\n ],\n underlined && {\n textAlign: 'left',\n },\n focused &&\n !borderless && {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n paddingLeft: 11,\n paddingRight: 11,\n },\n _k),\n },\n focused &&\n multiline &&\n !borderless && {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n paddingTop: 4, // take into consideration the 2px increased border-width (not when borderless).\n },\n _l),\n },\n inputClassName,\n ],\n icon: [\n multiline && {\n paddingRight: 24,\n alignItems: 'flex-end',\n },\n {\n pointerEvents: 'none',\n position: 'absolute',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n description: [\n classNames.description,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.xSmall.fontSize,\n },\n ],\n errorMessage: [\n classNames.errorMessage,\n AnimationClassNames.slideDownIn20,\n fonts.small,\n {\n color: semanticColors.errorText,\n margin: 0,\n paddingTop: 5,\n display: 'flex',\n alignItems: 'center',\n },\n ],\n prefix: [classNames.prefix, fieldPrefixSuffix],\n suffix: [classNames.suffix, fieldPrefixSuffix],\n revealButton: [\n classNames.revealButton,\n 'ms-Button',\n 'ms-Button--icon',\n getFocusStyle(theme, { inset: 1 }),\n {\n height: 30,\n width: 32,\n border: 'none',\n padding: '0px 4px',\n backgroundColor: 'transparent',\n color: semanticColors.link,\n selectors: {\n ':hover': {\n outline: 0,\n color: semanticColors.primaryButtonBackgroundHovered,\n backgroundColor: semanticColors.buttonBackgroundHovered,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _m),\n },\n ':focus': { outline: 0 },\n },\n },\n hasIcon && {\n marginRight: 28,\n },\n ],\n revealSpan: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n revealIcon: {\n margin: '0px 4px',\n pointerEvents: 'none',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n subComponentStyles: {\n label: getLabelStyles(props),\n },\n };\n}\n//# sourceMappingURL=TextField.styles.js.map","import { styled } from '../../Utilities';\nimport { TextFieldBase } from './TextField.base';\nimport { getStyles } from './TextField.styles';\nexport var TextField = styled(TextFieldBase, getStyles, undefined, {\n scope: 'TextField',\n});\n//# sourceMappingURL=TextField.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n /**\n * 12px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n /**\n * 16px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n /**\n * 20px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n /**\n * 28px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n __extends(SpinnerBase, _super);\n function SpinnerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SpinnerBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n var statusMessage = ariaLabel;\n var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n // finally goes away we should delete this.\n var styleSize = size;\n if (styleSize === undefined && type !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: styleSize,\n className: className,\n labelPosition: labelPosition,\n });\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { className: classNames.circle }),\n label && React.createElement(\"div\", { className: classNames.label }, label),\n statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n };\n SpinnerBase.defaultProps = {\n size: SpinnerSize.medium,\n ariaLive: 'polite',\n labelPosition: 'bottom',\n };\n return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Spinner',\n circle: 'ms-Spinner-circle',\n label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n labelPosition === 'top' && {\n flexDirection: 'column-reverse',\n },\n labelPosition === 'right' && {\n flexDirection: 'row',\n },\n labelPosition === 'left' && {\n flexDirection: 'row-reverse',\n },\n className,\n ],\n circle: [\n classNames.circle,\n {\n boxSizing: 'border-box',\n borderRadius: '50%',\n border: '1.5px solid ' + palette.themeLight,\n borderTopColor: palette.themePrimary,\n animationName: spinAnimation(),\n animationDuration: '1.3s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n size === SpinnerSize.xSmall && [\n 'ms-Spinner--xSmall',\n {\n width: 12,\n height: 12,\n },\n ],\n size === SpinnerSize.small && [\n 'ms-Spinner--small',\n {\n width: 16,\n height: 16,\n },\n ],\n size === SpinnerSize.medium && [\n 'ms-Spinner--medium',\n {\n width: 20,\n height: 20,\n },\n ],\n size === SpinnerSize.large && [\n 'ms-Spinner--large',\n {\n width: 28,\n height: 28,\n },\n ],\n ],\n label: [\n classNames.label,\n theme.fonts.small,\n {\n color: palette.themePrimary,\n margin: '8px 0 0',\n textAlign: 'center',\n },\n labelPosition === 'top' && {\n margin: '0 0 8px',\n },\n labelPosition === 'right' && {\n margin: '0 0 0 8px',\n },\n labelPosition === 'left' && {\n margin: '0 8px 0 0',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","/**\n * {@docCategory Dialog}\n */\nexport var DialogType;\n(function (DialogType) {\n /** Standard dialog */\n DialogType[DialogType[\"normal\"] = 0] = \"normal\";\n /** Dialog with large header banner */\n DialogType[DialogType[\"largeHeader\"] = 1] = \"largeHeader\";\n /** Dialog with an 'x' close button in the upper-right corner */\n DialogType[DialogType[\"close\"] = 2] = \"close\";\n})(DialogType || (DialogType = {}));\n//# sourceMappingURL=DialogContent.types.js.map","import { AnimationVariables, getGlobalClassNames, ZIndexes } from '../../Styling';\nexport var animationDuration = AnimationVariables.durationValue2;\nvar globalClassNames = {\n root: 'ms-Modal',\n main: 'ms-Dialog-main',\n scrollableContent: 'ms-Modal-scrollableContent',\n isOpen: 'is-open',\n layer: 'ms-Modal-Layer',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle, windowInnerHeight = props.windowInnerHeight;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n backgroundColor: 'transparent',\n position: 'fixed',\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n opacity: 0,\n pointerEvents: 'none',\n transition: \"opacity \".concat(animationDuration),\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n alignItems: 'flex-start',\n },\n isOpen && classNames.isOpen,\n isVisible && {\n opacity: 1,\n },\n isVisible &&\n !isModeless && {\n pointerEvents: 'auto',\n },\n className,\n ],\n main: [\n classNames.main,\n {\n boxShadow: effects.elevation64,\n borderRadius: effects.roundedCorner2,\n backgroundColor: palette.white,\n boxSizing: 'border-box',\n position: 'relative',\n textAlign: 'left',\n outline: '3px solid transparent',\n maxHeight: 'calc(100% - 32px)',\n maxWidth: 'calc(100% - 32px)',\n minHeight: '176px',\n minWidth: '288px',\n overflowY: 'auto',\n zIndex: isModeless ? ZIndexes.Layer : undefined,\n },\n isModeless && {\n pointerEvents: 'auto',\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n top: modalRectangleTop,\n },\n isDefaultDragHandle && {\n cursor: 'move',\n },\n containerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n flexGrow: 1,\n maxHeight: '100vh',\n selectors: (_a = {},\n _a['@supports (-webkit-overflow-scrolling: touch)'] = {\n maxHeight: windowInnerHeight,\n },\n _a),\n },\n scrollableContentClassName,\n ],\n layer: isModeless && [layerClassName, classNames.layer, { pointerEvents: 'none' }],\n keyboardMoveIconContainer: {\n position: 'absolute',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n padding: '3px 0px',\n },\n keyboardMoveIcon: {\n // eslint-disable-next-line deprecation/deprecation\n fontSize: fonts.xLargePlus.fontSize,\n width: '24px',\n },\n };\n};\n//# sourceMappingURL=Modal.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (className, isDragging) {\n return {\n root: mergeStyles(className, isDragging && {\n touchAction: 'none',\n selectors: {\n '& *': {\n userSelect: 'none',\n },\n },\n }),\n };\n});\n//# sourceMappingURL=DraggableZone.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './DraggableZone.styles';\nimport { on } from '../../Utilities';\nvar eventMapping = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend',\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup',\n },\n};\nvar DraggableZone = /** @class */ (function (_super) {\n __extends(DraggableZone, _super);\n function DraggableZone(props) {\n var _this = _super.call(this, props) || this;\n _this._currentEventType = eventMapping.mouse;\n _this._events = [];\n _this._onMouseDown = function (event) {\n var onMouseDown = React.Children.only(_this.props.children).props.onMouseDown;\n if (onMouseDown) {\n onMouseDown(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStart(event);\n };\n _this._onMouseUp = function (event) {\n var onMouseUp = React.Children.only(_this.props.children).props.onMouseUp;\n if (onMouseUp) {\n onMouseUp(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStop(event);\n };\n _this._onTouchStart = function (event) {\n var onTouchStart = React.Children.only(_this.props.children).props.onTouchStart;\n if (onTouchStart) {\n onTouchStart(event);\n }\n _this._currentEventType = eventMapping.touch;\n return _this._onDragStart(event);\n };\n _this._onTouchEnd = function (event) {\n var onTouchEnd = React.Children.only(_this.props.children).props.onTouchEnd;\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n _this._currentEventType = eventMapping.touch;\n _this._onDragStop(event);\n };\n _this._onDragStart = function (event) {\n // Only handle left click for dragging\n if (typeof event.button === 'number' && event.button !== 0) {\n return false;\n }\n // If the target doesn't match the handleSelector OR\n // if the target does match the preventDragSelector, bail out\n if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||\n (_this.props.preventDragSelector &&\n _this._matchesSelector(event.target, _this.props.preventDragSelector))) {\n return;\n }\n // Remember the touch identifier if this is a touch event so we can\n // distinguish between individual touches in multitouch scenarios\n // by remembering which touch point we were given\n _this._touchId = _this._getTouchId(event);\n var position = _this._getControlPosition(event);\n if (position === undefined) {\n return;\n }\n var dragData = _this._createDragDataFromPosition(position);\n _this.props.onStart && _this.props.onStart(event, dragData);\n _this.setState({\n isDragging: true,\n lastPosition: position,\n });\n // hook up the appropriate mouse/touch events to the body to ensure\n // smooth dragging\n _this._events = [\n on(document.body, _this._currentEventType.move, _this._onDrag, true /* use capture phase */),\n on(document.body, _this._currentEventType.stop, _this._onDragStop, true /* use capture phase */),\n ];\n };\n _this._onDrag = function (event) {\n // Prevent scrolling on mobile devices\n if (event.type === 'touchmove') {\n event.preventDefault();\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n // create the updated drag data from the position data\n var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));\n var updatedPosition = updatedData.position;\n _this.props.onDragChange && _this.props.onDragChange(event, updatedData);\n _this.setState({\n position: updatedPosition,\n lastPosition: position,\n });\n };\n _this._onDragStop = function (event) {\n if (!_this.state.isDragging) {\n return;\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n var baseDragData = _this._createDragDataFromPosition(position);\n // Set dragging to false and reset the lastPosition\n _this.setState({\n isDragging: false,\n lastPosition: undefined,\n });\n _this.props.onStop && _this.props.onStop(event, baseDragData);\n if (_this.props.position) {\n _this.setState({\n position: _this.props.position,\n });\n }\n // Remove event handlers\n _this._events.forEach(function (dispose) { return dispose(); });\n };\n _this.state = {\n isDragging: false,\n position: _this.props.position || { x: 0, y: 0 },\n lastPosition: undefined,\n };\n return _this;\n }\n DraggableZone.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {\n this.setState({ position: this.props.position });\n }\n };\n DraggableZone.prototype.componentWillUnmount = function () {\n this._events.forEach(function (dispose) { return dispose(); });\n };\n DraggableZone.prototype.render = function () {\n var child = React.Children.only(this.props.children);\n var props = child.props;\n var position = this.props.position;\n var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;\n var x = statePosition.x;\n var y = statePosition.y;\n if (position && !isDragging) {\n x = position.x;\n y = position.y;\n }\n return React.cloneElement(child, {\n style: __assign(__assign({}, props.style), { transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\") }),\n className: getClassNames(props.className, this.state.isDragging).root,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onTouchStart: this._onTouchStart,\n onTouchEnd: this._onTouchEnd,\n });\n };\n /**\n * Get the control position based off the event that fired\n * @param event - The event to get offsets from\n */\n DraggableZone.prototype._getControlPosition = function (event) {\n var touchObj = this._getActiveTouch(event);\n // did we get the right touch?\n if (this._touchId !== undefined && !touchObj) {\n return undefined;\n }\n var eventToGetOffset = touchObj || event;\n return {\n x: eventToGetOffset.clientX,\n y: eventToGetOffset.clientY,\n };\n };\n /**\n * Get the active touch point that we have saved from the event's TouchList\n * @param event - The event used to get the TouchList for the active touch point\n */\n DraggableZone.prototype._getActiveTouch = function (event) {\n return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||\n (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));\n };\n /**\n * Get the initial touch identifier associated with the given event\n * @param event - The event that contains the TouchList\n */\n DraggableZone.prototype._getTouchId = function (event) {\n var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);\n if (touch) {\n return touch.identifier;\n }\n };\n /**\n * Returns if an element (or any of the element's parents) match the given selector\n */\n DraggableZone.prototype._matchesSelector = function (element, selector) {\n if (!element || element === document.body) {\n return false;\n }\n var matchesSelectorFn = \n // eslint-disable-next-line deprecation/deprecation\n element.matches || element.webkitMatchesSelector || element.msMatchesSelector; /* for IE */\n if (!matchesSelectorFn) {\n return false;\n }\n return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);\n };\n /**\n * Attempts to find the Touch that matches the identifier we stored in dragStart\n * @param touchList The TouchList to look for the stored identifier from dragStart\n */\n DraggableZone.prototype._findTouchInTouchList = function (touchList) {\n if (this._touchId === undefined) {\n return;\n }\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this._touchId) {\n return touchList[i];\n }\n }\n return undefined;\n };\n /**\n * Create DragData based off of the last known position and the new position passed in\n * @param position The new position as part of the drag\n */\n DraggableZone.prototype._createDragDataFromPosition = function (position) {\n var lastPosition = this.state.lastPosition;\n // If we have no lastPosition, use the given position\n // for last position\n if (lastPosition === undefined) {\n return {\n delta: { x: 0, y: 0 },\n lastPosition: position,\n position: position,\n };\n }\n return {\n delta: {\n x: position.x - lastPosition.x,\n y: position.y - lastPosition.y,\n },\n lastPosition: lastPosition,\n position: position,\n };\n };\n /**\n * Creates an updated DragData based off the current position and given baseDragData\n * @param baseDragData The base DragData (from _createDragDataFromPosition) used to calculate the updated positions\n */\n DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {\n var position = this.state.position;\n return {\n position: {\n x: position.x + baseDragData.delta.x,\n y: position.y + baseDragData.delta.y,\n },\n delta: baseDragData.delta,\n lastPosition: position,\n };\n };\n return DraggableZone;\n}(React.Component));\nexport { DraggableZone };\n//# sourceMappingURL=DraggableZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, allowScrollOnElement, allowOverscrollOnElement, getPropsWithDefaults, KeyCodes, elementContains, EventGroup, } from '../../Utilities';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { animationDuration } from './Modal.styles';\nimport { Overlay } from '../../Overlay';\nimport { Layer } from '../../Layer';\nimport { Popup } from '../../Popup';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Icon } from '../../Icon';\nimport { DraggableZone } from '../../utilities/DraggableZone/index';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport { useBoolean, useMergedRefs, useWarnings, useConst, useSetTimeout, useId, useUnmount, } from '@fluentui/react-hooks';\nvar ZERO = { x: 0, y: 0 };\nvar DEFAULT_PROPS = {\n isOpen: false,\n isDarkOverlay: true,\n className: '',\n containerClassName: '',\n enableAriaHiddenSiblings: true,\n};\nvar getClassNames = classNamesFunction();\nvar getMoveDelta = function (ev) {\n var delta = 10;\n if (ev.shiftKey) {\n if (!ev.ctrlKey) {\n delta = 50;\n }\n }\n else if (ev.ctrlKey) {\n delta = 1;\n }\n return delta;\n};\nvar useComponentRef = function (props, focusTrapZone) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n },\n }); }, [focusTrapZone]);\n};\nexport var ModalBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a, _b, _c, _d, _e;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var allowTouchBodyScroll = props.allowTouchBodyScroll, className = props.className, children = props.children, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, focusTrapZoneProps = props.focusTrapZoneProps, forceFocusInsideTrap = props.forceFocusInsideTrap, \n // eslint-disable-next-line deprecation/deprecation\n _f = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _f === void 0 ? props.ignoreExternalFocusing : _f, isBlocking = props.isBlocking, isAlert = props.isAlert, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, onDismiss = props.onDismiss, layerProps = props.layerProps, overlay = props.overlay, isOpen = props.isOpen, titleAriaId = props.titleAriaId, styles = props.styles, subtitleAriaId = props.subtitleAriaId, theme = props.theme, topOffsetFixed = props.topOffsetFixed, responsiveMode = props.responsiveMode, \n // eslint-disable-next-line deprecation/deprecation\n onLayerDidMount = props.onLayerDidMount, isModeless = props.isModeless, dragOptions = props.dragOptions, onDismissed = props.onDismissed, \n // eslint-disable-next-line deprecation/deprecation\n enableAriaHiddenSiblings = props.enableAriaHiddenSiblings, popupProps = props.popupProps;\n var rootRef = React.useRef(null);\n var focusTrapZone = React.useRef(null);\n var focusTrapZoneRef = useMergedRefs(focusTrapZone, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.componentRef);\n var focusTrapZoneElm = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var modalResponsiveMode = useResponsiveMode(mergedRef);\n var focusTrapZoneId = useId('ModalFocusTrapZone', focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.id);\n var win = useWindow();\n var _g = useSetTimeout(), setTimeout = _g.setTimeout, clearTimeout = _g.clearTimeout;\n var _h = React.useState(isOpen), isModalOpen = _h[0], setIsModalOpen = _h[1];\n var _j = React.useState(isOpen), isVisible = _j[0], setIsVisible = _j[1];\n var _k = React.useState(ZERO), coordinates = _k[0], setCoordinates = _k[1];\n var _l = React.useState(), modalRectangleTop = _l[0], setModalRectangleTop = _l[1];\n var _m = useBoolean(false), isModalMenuOpen = _m[0], _o = _m[1], toggleModalMenuOpen = _o.toggle, setModalMenuClose = _o.setFalse;\n var internalState = useConst(function () { return ({\n onModalCloseTimer: 0,\n allowTouchBodyScroll: allowTouchBodyScroll,\n scrollableContent: null,\n lastSetCoordinates: ZERO,\n events: new EventGroup({}),\n }); });\n var keepInBounds = (dragOptions || {}).keepInBounds;\n var isAlertRole = isAlert !== null && isAlert !== void 0 ? isAlert : (isBlocking && !isModeless);\n var layerClassName = layerProps === undefined ? '' : layerProps.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n containerClassName: containerClassName,\n scrollableContentClassName: scrollableContentClassName,\n isOpen: isOpen,\n isVisible: isVisible,\n hasBeenOpened: internalState.hasBeenOpened,\n modalRectangleTop: modalRectangleTop,\n topOffsetFixed: topOffsetFixed,\n isModeless: isModeless,\n layerClassName: layerClassName,\n windowInnerHeight: win === null || win === void 0 ? void 0 : win.innerHeight,\n isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector,\n });\n var mergedLayerProps = __assign(__assign({ eventBubblingEnabled: false }, layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: (layerProps === null || layerProps === void 0 ? void 0 : layerProps.insertFirst) || isModeless, className: classNames.layer });\n // Allow the user to scroll within the modal but not on the body\n var allowScrollOnModal = React.useCallback(function (elt) {\n if (elt) {\n if (internalState.allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, internalState.events);\n }\n else {\n allowScrollOnElement(elt, internalState.events);\n }\n }\n else {\n internalState.events.off(internalState.scrollableContent);\n }\n internalState.scrollableContent = elt;\n }, [internalState]);\n var registerInitialModalPosition = function () {\n var dialogMain = focusTrapZoneElm.current;\n var modalRectangle = dialogMain === null || dialogMain === void 0 ? void 0 : dialogMain.getBoundingClientRect();\n if (modalRectangle) {\n if (topOffsetFixed) {\n setModalRectangleTop(modalRectangle.top);\n }\n if (keepInBounds) {\n // x/y are unavailable in IE, so use the equivalent left/top\n internalState.minPosition = { x: -modalRectangle.left, y: -modalRectangle.top };\n internalState.maxPosition = { x: modalRectangle.left, y: modalRectangle.top };\n }\n }\n };\n /**\n * Clamps an axis to a specified min and max position.\n *\n * @param axis A string that represents the axis (x/y).\n * @param position The position on the axis.\n */\n var getClampedAxis = React.useCallback(function (axis, position) {\n var minPosition = internalState.minPosition, maxPosition = internalState.maxPosition;\n if (keepInBounds && minPosition && maxPosition) {\n position = Math.max(minPosition[axis], position);\n position = Math.min(maxPosition[axis], position);\n }\n return position;\n }, [keepInBounds, internalState]);\n var handleModalClose = function () {\n var _a;\n internalState.lastSetCoordinates = ZERO;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n setIsModalOpen(false);\n setCoordinates(ZERO);\n (_a = internalState.disposeOnKeyUp) === null || _a === void 0 ? void 0 : _a.call(internalState);\n onDismissed === null || onDismissed === void 0 ? void 0 : onDismissed();\n };\n var handleDragStart = React.useCallback(function () {\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n }, [internalState, setModalMenuClose]);\n var handleDrag = React.useCallback(function (ev, dragData) {\n setCoordinates(function (prevValue) { return ({\n x: getClampedAxis('x', prevValue.x + dragData.delta.x),\n y: getClampedAxis('y', prevValue.y + dragData.delta.y),\n }); });\n }, [getClampedAxis]);\n var handleDragStop = React.useCallback(function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n }, []);\n var handleEnterKeyboardMoveMode = function () {\n // We need a global handleKeyDown event when we are in the move mode so that we can\n // handle the key presses and the components inside the modal do not get the events\n var handleKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n // CTRL + ALT + SPACE is handled during keyUp\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var newLocal = ev.altKey || ev.keyCode === KeyCodes.escape;\n if (isModalMenuOpen && newLocal) {\n setModalMenuClose();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (internalState.isInKeyboardMoveMode && (ev.keyCode === KeyCodes.escape || ev.keyCode === KeyCodes.enter)) {\n internalState.isInKeyboardMoveMode = false;\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (internalState.isInKeyboardMoveMode) {\n var handledEvent = true;\n var delta_1 = getMoveDelta(ev);\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.keyCode) {\n /* eslint-disable no-fallthrough */\n case KeyCodes.escape:\n setCoordinates(internalState.lastSetCoordinates);\n case KeyCodes.enter: {\n // TODO: determine if fallthrough was intentional\n /* eslint-enable no-fallthrough */\n internalState.lastSetCoordinates = ZERO;\n // setIsInKeyboardMoveMode(false);\n break;\n }\n case KeyCodes.up: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y - delta_1) }); });\n break;\n }\n case KeyCodes.down: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y + delta_1) }); });\n break;\n }\n case KeyCodes.left: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x - delta_1), y: prevValue.y }); });\n break;\n }\n case KeyCodes.right: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x + delta_1), y: prevValue.y }); });\n break;\n }\n default: {\n handledEvent = false;\n }\n }\n if (handledEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n internalState.lastSetCoordinates = coordinates;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = true;\n internalState.events.on(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = function () {\n internalState.events.off(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = undefined;\n };\n };\n var handleExitKeyboardMoveMode = function (ev) {\n var _a, _b;\n (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(focusTrapZoneProps, ev);\n internalState.lastSetCoordinates = ZERO;\n internalState.isInKeyboardMoveMode = false;\n (_b = internalState.disposeOnKeyDown) === null || _b === void 0 ? void 0 : _b.call(internalState);\n };\n var registerForKeyUp = function () {\n var handleKeyUp = function (ev) {\n // Needs to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n if (elementContains(internalState.scrollableContent, ev.target)) {\n toggleModalMenuOpen();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n if (!internalState.disposeOnKeyUp) {\n internalState.events.on(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = function () {\n internalState.events.off(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = undefined;\n };\n }\n };\n React.useEffect(function () {\n clearTimeout(internalState.onModalCloseTimer);\n // Opening the dialog\n if (isOpen) {\n // This must be done after the modal content has rendered\n requestAnimationFrame(function () { return setTimeout(registerInitialModalPosition, 0); });\n setIsModalOpen(true);\n // Add a keyUp handler for all key up events once the dialog is open.\n if (dragOptions) {\n registerForKeyUp();\n }\n internalState.hasBeenOpened = true;\n setIsVisible(true);\n }\n // Closing the dialog\n if (!isOpen && isModalOpen) {\n internalState.onModalCloseTimer = setTimeout(handleModalClose, parseFloat(animationDuration) * 1000);\n setIsVisible(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if isModalOpen or isOpen mutates.\n }, [isModalOpen, isOpen]);\n useUnmount(function () {\n internalState.events.dispose();\n });\n useComponentRef(props, focusTrapZone);\n useDebugWarnings(props);\n var modalContent = (React.createElement(FocusTrapZone, __assign({}, focusTrapZoneProps, { id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZoneRef, className: css(classNames.main, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.className), elementToFocusOnDismiss: (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.elementToFocusOnDismiss) !== null && _a !== void 0 ? _a : elementToFocusOnDismiss, isClickableOutsideFocusTrap: (_b = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.isClickableOutsideFocusTrap) !== null && _b !== void 0 ? _b : (isModeless || isClickableOutsideFocusTrap || !isBlocking), disableRestoreFocus: (_c = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.disableRestoreFocus) !== null && _c !== void 0 ? _c : disableRestoreFocus, forceFocusInsideTrap: ((_d = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.forceFocusInsideTrap) !== null && _d !== void 0 ? _d : forceFocusInsideTrap) && !isModeless, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector: (focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.firstFocusableSelector) || firstFocusableSelector, focusPreviouslyFocusedInnerElement: (_e = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.focusPreviouslyFocusedInnerElement) !== null && _e !== void 0 ? _e : true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined }),\n dragOptions && internalState.isInKeyboardMoveMode && (React.createElement(\"div\", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React.createElement(Icon, __assign({}, dragOptions.keyboardMoveIconProps))) : (React.createElement(Icon, { iconName: \"move\", className: classNames.keyboardMoveIcon })))),\n React.createElement(\"div\", { ref: allowScrollOnModal, className: classNames.scrollableContent, \"data-is-scrollable\": true },\n dragOptions && isModalMenuOpen && (React.createElement(dragOptions.menu, { items: [\n { key: 'move', text: dragOptions.moveMenuItemText, onClick: handleEnterKeyboardMoveMode },\n { key: 'close', text: dragOptions.closeMenuItemText, onClick: handleModalClose },\n ], onDismiss: setModalMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: DirectionalHint.topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: internalState.scrollableContent })),\n children)));\n return ((isModalOpen && modalResponsiveMode >= (responsiveMode || ResponsiveMode.small) && (React.createElement(Layer, __assign({ ref: mergedRef }, mergedLayerProps),\n React.createElement(Popup, __assign({ role: isAlertRole ? 'alertdialog' : 'dialog', ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss, shouldRestoreFocus: !disableRestoreFocus, \n // Modeless modals shouldn't hide siblings.\n // Popup will automatically handle this based on the aria-modal setting.\n enableAriaHiddenSiblings: enableAriaHiddenSiblings, \"aria-modal\": !isModeless }, popupProps),\n React.createElement(\"div\", { className: classNames.root, role: !isModeless ? 'document' : undefined },\n !isModeless && (React.createElement(Overlay, __assign({ \"aria-hidden\": true, isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss, allowTouchBodyScroll: allowTouchBodyScroll }, overlay))),\n dragOptions ? (React.createElement(DraggableZone, { handleSelector: dragOptions.dragHandleSelector || \"#\".concat(focusTrapZoneId), preventDragSelector: \"button\", onStart: handleDragStart, onDragChange: handleDrag, onStop: handleDragStop, position: coordinates }, modalContent)) : (modalContent)))))) ||\n null);\n});\nModalBase.displayName = 'Modal';\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Modal',\n props: props,\n deprecations: { onLayerDidMount: 'layerProps.onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Modal.base.js.map","import { styled } from '../../Utilities';\nimport { ModalBase } from './Modal.base';\nimport { getStyles } from './Modal.styles';\nexport var Modal = styled(ModalBase, getStyles, undefined, {\n scope: 'Modal',\n fields: ['theme', 'styles', 'enableAriaHiddenSiblings'],\n});\nModal.displayName = 'Modal';\n//# sourceMappingURL=Modal.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DialogFooterBase = /** @class */ (function (_super) {\n __extends(DialogFooterBase, _super);\n function DialogFooterBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DialogFooterBase.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.actions },\n React.createElement(\"div\", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));\n };\n DialogFooterBase.prototype._renderChildrenAsActions = function () {\n var _this = this;\n return React.Children.map(this.props.children, function (child) {\n return child ? React.createElement(\"span\", { className: _this._classNames.action }, child) : null;\n });\n };\n return DialogFooterBase;\n}(React.Component));\nexport { DialogFooterBase };\n//# sourceMappingURL=DialogFooter.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n actions: 'ms-Dialog-actions',\n action: 'ms-Dialog-action',\n actionsRight: 'ms-Dialog-actionsRight',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n actions: [\n classNames.actions,\n {\n position: 'relative',\n width: '100%',\n minHeight: '24px',\n lineHeight: '24px',\n margin: '16px 0 0',\n fontSize: '0',\n selectors: {\n '.ms-Button': {\n lineHeight: 'normal',\n verticalAlign: 'middle',\n },\n },\n },\n className,\n ],\n action: [\n classNames.action,\n {\n margin: '0 4px',\n },\n ],\n actionsRight: [\n classNames.actionsRight,\n {\n alignItems: 'center',\n display: 'flex',\n fontSize: '0',\n justifyContent: 'flex-end',\n marginRight: '-4px',\n },\n ],\n };\n};\n//# sourceMappingURL=DialogFooter.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nexport var DialogFooter = styled(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\n//# sourceMappingURL=DialogFooter.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, warnDeprecations, initializeComponentRef } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { IconButton } from '../../Button';\nimport { DialogFooter } from './DialogFooter';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nvar DialogFooterType = (React.createElement(DialogFooter, null)).type;\nvar COMPONENT_NAME = 'DialogContent';\n// eslint-disable-next-line deprecation/deprecation\nvar DialogContentBase = /** @class */ (function (_super) {\n __extends(DialogContentBase, _super);\n function DialogContentBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n titleId: 'titleProps.id',\n });\n return _this;\n }\n DialogContentBase.prototype.render = function () {\n var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, _b = _a.titleProps, titleProps = _b === void 0 ? {} : _b, \n // eslint-disable-next-line deprecation/deprecation\n titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isLargeHeader: type === DialogType.largeHeader,\n isClose: type === DialogType.close,\n draggableHeaderClassName: draggableHeaderClassName,\n });\n var groupings = this._groupChildren();\n var subTextContent;\n if (subText) {\n subTextContent = (React.createElement(\"p\", { className: classNames.subText, id: subTextId }, subText));\n }\n return (React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(\"div\", __assign({ id: titleId, role: \"heading\", \"aria-level\": 1 }, titleProps, { className: css(classNames.title, titleProps.className) }), title),\n React.createElement(\"div\", { className: classNames.topButton },\n this.props.topButtonsProps.map(function (props, index) { return (React.createElement(IconButton, __assign({ key: props.uniqueId || index }, props))); }),\n (type === DialogType.close || (showCloseButton && type !== DialogType.largeHeader)) && (React.createElement(IconButton, { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),\n React.createElement(\"div\", { className: classNames.inner },\n React.createElement(\"div\", { className: classNames.innerContent },\n subTextContent,\n groupings.contents),\n groupings.footers)));\n };\n // @TODO - typing the footers as an array of DialogFooter is difficult because\n // casing \"child as DialogFooter\" causes a problem because\n // \"Neither type 'ReactElement<any>' nor type 'DialogFooter' is assignable to the other.\"\n DialogContentBase.prototype._groupChildren = function () {\n var groupings = {\n footers: [],\n contents: [],\n };\n React.Children.map(this.props.children, function (child) {\n if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {\n groupings.footers.push(child);\n }\n else {\n groupings.contents.push(child);\n }\n });\n return groupings;\n };\n DialogContentBase.defaultProps = {\n showCloseButton: false,\n className: '',\n topButtonsProps: [],\n closeButtonAriaLabel: 'Close',\n };\n DialogContentBase = __decorate([\n withResponsiveMode\n ], DialogContentBase);\n return DialogContentBase;\n}(React.Component));\nexport { DialogContentBase };\n//# sourceMappingURL=DialogContent.base.js.map","import { FontWeights, getGlobalClassNames, IconFontSizes, ScreenWidthMinSmall, ScreenWidthMaxSmall, } from '../../Styling';\nvar GlobalClassNames = {\n contentLgHeader: 'ms-Dialog-lgHeader',\n close: 'ms-Dialog--close',\n subText: 'ms-Dialog-subText',\n header: 'ms-Dialog-header',\n headerLg: 'ms-Dialog--lgHeader',\n button: 'ms-Dialog-button ms-Dialog-button--close',\n inner: 'ms-Dialog-inner',\n content: 'ms-Dialog-content',\n title: 'ms-Dialog-title',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n content: [\n isLargeHeader && [\n classNames.contentLgHeader,\n {\n borderTop: \"4px solid \".concat(palette.themePrimary),\n },\n ],\n isClose && classNames.close,\n {\n flexGrow: 1,\n overflowY: 'hidden', // required for allowScrollOnElement\n },\n className,\n ],\n subText: [\n classNames.subText,\n fonts.medium,\n {\n margin: '0 0 24px 0',\n color: semanticColors.bodySubtext,\n lineHeight: '1.5',\n wordWrap: 'break-word',\n fontWeight: FontWeights.regular,\n },\n ],\n header: [\n classNames.header,\n {\n position: 'relative',\n width: '100%',\n boxSizing: 'border-box',\n },\n isClose && classNames.close,\n draggableHeaderClassName && [\n draggableHeaderClassName,\n {\n cursor: 'move',\n },\n ],\n ],\n button: [\n classNames.button,\n hidden && {\n selectors: {\n '.ms-Icon.ms-Icon--Cancel': {\n color: semanticColors.buttonText,\n fontSize: IconFontSizes.medium,\n },\n },\n },\n ],\n inner: [\n classNames.inner,\n {\n padding: '0 24px 24px',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '0 16px 16px',\n },\n _a),\n },\n ],\n innerContent: [\n classNames.content,\n {\n position: 'relative',\n width: '100%',\n },\n ],\n title: [\n classNames.title,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n margin: '0',\n minHeight: fonts.xLarge.fontSize,\n padding: '16px 46px 20px 24px',\n lineHeight: 'normal',\n selectors: (_b = {},\n _b[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '16px 46px 16px 16px',\n },\n _b),\n },\n isLargeHeader && {\n color: semanticColors.menuHeader,\n },\n isMultiline && { fontSize: fonts.xxLarge.fontSize },\n ],\n topButton: [\n {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n position: 'absolute',\n top: '0',\n right: '0',\n padding: '15px 15px 0 0',\n selectors: (_c = {\n '> *': {\n flex: '0 0 auto',\n },\n '.ms-Dialog-button': {\n color: semanticColors.buttonText,\n },\n '.ms-Dialog-button:hover': {\n color: semanticColors.buttonTextHovered,\n borderRadius: effects.roundedCorner2,\n }\n },\n _c[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '15px 8px 0 0',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=DialogContent.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogContentBase } from './DialogContent.base';\nimport { getStyles } from './DialogContent.styles';\nexport var DialogContent = styled(DialogContentBase, getStyles, undefined, { scope: 'DialogContent' });\n//# sourceMappingURL=DialogContent.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, getId } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { Modal } from '../../Modal';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nimport { DialogContent } from './DialogContent';\nvar DefaultModalProps = {\n isDarkOverlay: false,\n isBlocking: false,\n className: '',\n containerClassName: '',\n topOffsetFixed: false,\n enableAriaHiddenSiblings: true,\n};\nvar DefaultDialogContentProps = {\n type: DialogType.normal,\n className: '',\n topButtonsProps: [],\n};\n// eslint-disable-next-line deprecation/deprecation\nvar DialogBase = /** @class */ (function (_super) {\n __extends(DialogBase, _super);\n function DialogBase(props) {\n var _this = _super.call(this, props) || this;\n _this._getSubTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;\n var id = (modalProps && modalProps.subtitleAriaId) || ariaDescribedById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.subText) || subText) && _this._defaultSubTextId;\n }\n return id;\n };\n _this._getTitleTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;\n var id = (modalProps && modalProps.titleAriaId) || ariaLabelledById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.title) || title) && _this._defaultTitleTextId;\n }\n return id;\n };\n _this._id = getId('Dialog');\n _this._defaultTitleTextId = _this._id + '-title';\n _this._defaultSubTextId = _this._id + '-subText';\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Dialog', props, {\n isOpen: 'hidden',\n type: 'dialogContentProps.type',\n subText: 'dialogContentProps.subText',\n contentClassName: 'dialogContentProps.className',\n topButtonsProps: 'dialogContentProps.topButtonsProps',\n className: 'modalProps.className',\n isDarkOverlay: 'modalProps.isDarkOverlay',\n isBlocking: 'modalProps.isBlocking',\n containerClassName: 'modalProps.containerClassName',\n onDismissed: 'modalProps.onDismissed',\n onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',\n ariaDescribedById: 'modalProps.subtitleAriaId',\n ariaLabelledById: 'modalProps.titleAriaId',\n });\n }\n return _this;\n }\n DialogBase.prototype.render = function () {\n var _a, _b, _c;\n var props = this.props;\n var \n /* eslint-disable deprecation/deprecation */\n className = props.className, containerClassName = props.containerClassName, contentClassName = props.contentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, forceFocusInsideTrap = props.forceFocusInsideTrap, styles = props.styles, hidden = props.hidden, _d = props.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? props.ignoreExternalFocusing : _d, isBlocking = props.isBlocking, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, _e = props.isOpen, isOpen = _e === void 0 ? !hidden : _e, onDismiss = props.onDismiss, onDismissed = props.onDismissed, onLayerDidMount = props.onLayerDidMount, responsiveMode = props.responsiveMode, subText = props.subText, theme = props.theme, title = props.title, topButtonsProps = props.topButtonsProps, type = props.type, \n /* eslint-enable deprecation/deprecation */\n minWidth = props.minWidth, maxWidth = props.maxWidth, modalProps = props.modalProps;\n var mergedLayerProps = __assign({ onLayerDidMount: onLayerDidMount }, modalProps === null || modalProps === void 0 ? void 0 : modalProps.layerProps);\n var dialogDraggableClassName;\n var dragOptions;\n // If dragOptions are provided, but no drag handle is specified, we supply a drag handle,\n // and inform dialog contents to add class to draggable class to the header\n if ((modalProps === null || modalProps === void 0 ? void 0 : modalProps.dragOptions) && !((_a = modalProps.dragOptions) === null || _a === void 0 ? void 0 : _a.dragHandleSelector)) {\n // spread options to avoid mutating props\n dragOptions = __assign({}, modalProps.dragOptions);\n dialogDraggableClassName = 'ms-Dialog-draggable-header';\n dragOptions.dragHandleSelector = \".\".concat(dialogDraggableClassName);\n }\n var mergedModalProps = __assign(__assign(__assign(__assign({}, DefaultModalProps), { elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, disableRestoreFocus: disableRestoreFocus, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, responsiveMode: responsiveMode, className: className, containerClassName: containerClassName, isBlocking: isBlocking, isDarkOverlay: isDarkOverlay, onDismissed: onDismissed }), modalProps), { dragOptions: dragOptions, layerProps: mergedLayerProps, isOpen: isOpen });\n var dialogContentProps = __assign(__assign(__assign({ className: contentClassName, subText: subText, title: title, topButtonsProps: topButtonsProps, type: type }, DefaultDialogContentProps), props.dialogContentProps), { draggableHeaderClassName: dialogDraggableClassName, titleProps: __assign({ \n // eslint-disable-next-line deprecation/deprecation\n id: ((_b = props.dialogContentProps) === null || _b === void 0 ? void 0 : _b.titleId) || this._defaultTitleTextId }, (_c = props.dialogContentProps) === null || _c === void 0 ? void 0 : _c.titleProps) });\n var classNames = getClassNames(styles, {\n theme: theme,\n className: mergedModalProps.className,\n containerClassName: mergedModalProps.containerClassName,\n hidden: hidden,\n dialogDefaultMinWidth: minWidth,\n dialogDefaultMaxWidth: maxWidth,\n });\n return (React.createElement(Modal, __assign({}, mergedModalProps, { className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss || mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),\n React.createElement(DialogContent, __assign({ subTextId: this._defaultSubTextId, showCloseButton: mergedModalProps.isBlocking, onDismiss: onDismiss }, dialogContentProps), props.children)));\n };\n DialogBase.defaultProps = {\n hidden: true,\n };\n DialogBase = __decorate([\n withResponsiveMode\n ], DialogBase);\n return DialogBase;\n}(React.Component));\nexport { DialogBase };\n//# sourceMappingURL=Dialog.base.js.map","import { ScreenWidthMinMedium, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dialog',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, // eslint-disable-line deprecation/deprecation\n _b = props.dialogDefaultMinWidth, // eslint-disable-line deprecation/deprecation\n dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [classNames.root, theme.fonts.medium, className],\n main: [\n {\n width: dialogDefaultMinWidth,\n outline: '3px solid transparent',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n width: 'auto',\n maxWidth: dialogDefaultMaxWidth,\n minWidth: dialogDefaultMinWidth,\n },\n _a),\n },\n !hidden && { display: 'flex' },\n containerClassName,\n ],\n };\n};\n//# sourceMappingURL=Dialog.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogBase } from './Dialog.base';\nimport { getStyles } from './Dialog.styles';\nexport var Dialog = styled(DialogBase, getStyles, undefined, { scope: 'Dialog' });\nDialog.displayName = 'Dialog';\n//# sourceMappingURL=Dialog.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none',\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-a13498cf.woff') format('woff')\"),\n },\n icons: {\n GlobalNavButton: '\\uE700',\n ChevronDown: '\\uE70D',\n ChevronUp: '\\uE70E',\n Edit: '\\uE70F',\n Add: '\\uE710',\n Cancel: '\\uE711',\n More: '\\uE712',\n Settings: '\\uE713',\n Mail: '\\uE715',\n Filter: '\\uE71C',\n Search: '\\uE721',\n Share: '\\uE72D',\n BlockedSite: '\\uE72F',\n FavoriteStar: '\\uE734',\n FavoriteStarFill: '\\uE735',\n CheckMark: '\\uE73E',\n Delete: '\\uE74D',\n ChevronLeft: '\\uE76B',\n ChevronRight: '\\uE76C',\n Calendar: '\\uE787',\n Megaphone: '\\uE789',\n Undo: '\\uE7A7',\n Flag: '\\uE7C1',\n Page: '\\uE7C3',\n Pinned: '\\uE840',\n View: '\\uE890',\n Clear: '\\uE894',\n Download: '\\uE896',\n Upload: '\\uE898',\n Folder: '\\uE8B7',\n Sort: '\\uE8CB',\n AlignRight: '\\uE8E2',\n AlignLeft: '\\uE8E4',\n Tag: '\\uE8EC',\n AddFriend: '\\uE8FA',\n Info: '\\uE946',\n SortLines: '\\uE9D0',\n List: '\\uEA37',\n CircleRing: '\\uEA3A',\n Heart: '\\uEB51',\n HeartFill: '\\uEB52',\n Tiles: '\\uECA5',\n Embed: '\\uECCE',\n Glimmer: '\\uECF4',\n Ascending: '\\uEDC0',\n Descending: '\\uEDC1',\n SortUp: '\\uEE68',\n SortDown: '\\uEE69',\n SyncToPC: '\\uEE6E',\n LargeGrid: '\\uEECB',\n SkypeCheck: '\\uEF80',\n SkypeClock: '\\uEF81',\n SkypeMinus: '\\uEF82',\n ClearFilter: '\\uEF8F',\n Flow: '\\uEF90',\n StatusCircleCheckmark: '\\uF13E',\n MoreVertical: '\\uF2BC',\n },\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-0\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-0-467ee27f.woff') format('woff')\")\n },\n icons: {\n 'PageLink': '\\uE302',\n 'CommentSolid': '\\uE30E',\n 'ChangeEntitlements': '\\uE310',\n 'Installation': '\\uE311',\n 'WebAppBuilderModule': '\\uE313',\n 'WebAppBuilderFragment': '\\uE314',\n 'WebAppBuilderSlot': '\\uE315',\n 'BullseyeTargetEdit': '\\uE319',\n 'WebAppBuilderFragmentCreate': '\\uE31B',\n 'PageData': '\\uE31C',\n 'PageHeaderEdit': '\\uE31D',\n 'ProductList': '\\uE31E',\n 'UnpublishContent': '\\uE31F',\n 'DependencyAdd': '\\uE344',\n 'DependencyRemove': '\\uE345',\n 'EntitlementPolicy': '\\uE346',\n 'EntitlementRedemption': '\\uE347',\n 'SchoolDataSyncLogo': '\\uE34C',\n 'PinSolid12': '\\uE352',\n 'PinSolidOff12': '\\uE353',\n 'AddLink': '\\uE35E',\n 'SharepointAppIcon16': '\\uE365',\n 'DataflowsLink': '\\uE366',\n 'TimePicker': '\\uE367',\n 'UserWarning': '\\uE368',\n 'ComplianceAudit': '\\uE369',\n 'InternetSharing': '\\uE704',\n 'Brightness': '\\uE706',\n 'MapPin': '\\uE707',\n 'Airplane': '\\uE709',\n 'Tablet': '\\uE70A',\n 'QuickNote': '\\uE70B',\n 'Video': '\\uE714',\n 'People': '\\uE716',\n 'Phone': '\\uE717',\n 'Pin': '\\uE718',\n 'Shop': '\\uE719',\n 'Stop': '\\uE71A',\n 'Link': '\\uE71B',\n 'AllApps': '\\uE71D',\n 'Zoom': '\\uE71E',\n 'ZoomOut': '\\uE71F',\n 'Microphone': '\\uE720',\n 'Camera': '\\uE722',\n 'Attach': '\\uE723',\n 'Send': '\\uE724',\n 'FavoriteList': '\\uE728',\n 'PageSolid': '\\uE729',\n 'Forward': '\\uE72A',\n 'Back': '\\uE72B',\n 'Refresh': '\\uE72C',\n 'Lock': '\\uE72E',\n 'ReportHacked': '\\uE730',\n 'EMI': '\\uE731',\n 'MiniLink': '\\uE732',\n 'Blocked': '\\uE733',\n 'ReadingMode': '\\uE736',\n 'Favicon': '\\uE737',\n 'Remove': '\\uE738',\n 'Checkbox': '\\uE739',\n 'CheckboxComposite': '\\uE73A',\n 'CheckboxFill': '\\uE73B',\n 'CheckboxIndeterminate': '\\uE73C',\n 'CheckboxCompositeReversed': '\\uE73D',\n 'BackToWindow': '\\uE73F',\n 'FullScreen': '\\uE740',\n 'Print': '\\uE749',\n 'Up': '\\uE74A',\n 'Down': '\\uE74B',\n 'OEM': '\\uE74C',\n 'Save': '\\uE74E',\n 'ReturnKey': '\\uE751',\n 'Cloud': '\\uE753',\n 'Flashlight': '\\uE754',\n 'CommandPrompt': '\\uE756',\n 'Sad': '\\uE757',\n 'RealEstate': '\\uE758',\n 'SIPMove': '\\uE759',\n 'EraseTool': '\\uE75C',\n 'GripperTool': '\\uE75E',\n 'Dialpad': '\\uE75F',\n 'PageLeft': '\\uE760',\n 'PageRight': '\\uE761',\n 'MultiSelect': '\\uE762',\n 'KeyboardClassic': '\\uE765',\n 'Play': '\\uE768',\n 'Pause': '\\uE769',\n 'InkingTool': '\\uE76D',\n 'Emoji2': '\\uE76E',\n 'GripperBarHorizontal': '\\uE76F',\n 'System': '\\uE770',\n 'Personalize': '\\uE771',\n 'SearchAndApps': '\\uE773',\n 'Globe': '\\uE774',\n 'EaseOfAccess': '\\uE776',\n 'ContactInfo': '\\uE779',\n 'Unpin': '\\uE77A',\n 'Contact': '\\uE77B',\n 'Memo': '\\uE77C',\n 'IncomingCall': '\\uE77E'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-0.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-1\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-1-4d521695.woff') format('woff')\")\n },\n icons: {\n 'Paste': '\\uE77F',\n 'WindowsLogo': '\\uE782',\n 'Error': '\\uE783',\n 'GripperBarVertical': '\\uE784',\n 'Unlock': '\\uE785',\n 'Slideshow': '\\uE786',\n 'Trim': '\\uE78A',\n 'AutoEnhanceOn': '\\uE78D',\n 'AutoEnhanceOff': '\\uE78E',\n 'Color': '\\uE790',\n 'SaveAs': '\\uE792',\n 'Light': '\\uE793',\n 'Filters': '\\uE795',\n 'AspectRatio': '\\uE799',\n 'Contrast': '\\uE7A1',\n 'Redo': '\\uE7A6',\n 'Crop': '\\uE7A8',\n 'PhotoCollection': '\\uE7AA',\n 'Album': '\\uE7AB',\n 'Rotate': '\\uE7AD',\n 'PanoIndicator': '\\uE7B0',\n 'Translate': '\\uE7B2',\n 'RedEye': '\\uE7B3',\n 'ViewOriginal': '\\uE7B4',\n 'ThumbnailView': '\\uE7B6',\n 'Package': '\\uE7B8',\n 'Telemarketer': '\\uE7B9',\n 'Warning': '\\uE7BA',\n 'Financial': '\\uE7BB',\n 'Education': '\\uE7BE',\n 'ShoppingCart': '\\uE7BF',\n 'Train': '\\uE7C0',\n 'Move': '\\uE7C2',\n 'TouchPointer': '\\uE7C9',\n 'Merge': '\\uE7D5',\n 'TurnRight': '\\uE7DB',\n 'Ferry': '\\uE7E3',\n 'Highlight': '\\uE7E6',\n 'PowerButton': '\\uE7E8',\n 'Tab': '\\uE7E9',\n 'Admin': '\\uE7EF',\n 'TVMonitor': '\\uE7F4',\n 'Speakers': '\\uE7F5',\n 'Game': '\\uE7FC',\n 'HorizontalTabKey': '\\uE7FD',\n 'UnstackSelected': '\\uE7FE',\n 'StackIndicator': '\\uE7FF',\n 'Nav2DMapView': '\\uE800',\n 'StreetsideSplitMinimize': '\\uE802',\n 'Car': '\\uE804',\n 'Bus': '\\uE806',\n 'EatDrink': '\\uE807',\n 'SeeDo': '\\uE808',\n 'LocationCircle': '\\uE80E',\n 'Home': '\\uE80F',\n 'SwitcherStartEnd': '\\uE810',\n 'ParkingLocation': '\\uE811',\n 'IncidentTriangle': '\\uE814',\n 'Touch': '\\uE815',\n 'MapDirections': '\\uE816',\n 'CaretHollow': '\\uE817',\n 'CaretSolid': '\\uE818',\n 'History': '\\uE81C',\n 'Location': '\\uE81D',\n 'MapLayers': '\\uE81E',\n 'SearchNearby': '\\uE820',\n 'Work': '\\uE821',\n 'Recent': '\\uE823',\n 'Hotel': '\\uE824',\n 'Bank': '\\uE825',\n 'LocationDot': '\\uE827',\n 'Dictionary': '\\uE82D',\n 'ChromeBack': '\\uE830',\n 'FolderOpen': '\\uE838',\n 'PinnedFill': '\\uE842',\n 'RevToggleKey': '\\uE845',\n 'USB': '\\uE88E',\n 'Previous': '\\uE892',\n 'Next': '\\uE893',\n 'Sync': '\\uE895',\n 'Help': '\\uE897',\n 'Emoji': '\\uE899',\n 'MailForward': '\\uE89C',\n 'ClosePane': '\\uE89F',\n 'OpenPane': '\\uE8A0',\n 'PreviewLink': '\\uE8A1',\n 'ZoomIn': '\\uE8A3',\n 'Bookmarks': '\\uE8A4',\n 'Document': '\\uE8A5',\n 'ProtectedDocument': '\\uE8A6',\n 'OpenInNewWindow': '\\uE8A7',\n 'MailFill': '\\uE8A8',\n 'ViewAll': '\\uE8A9',\n 'Switch': '\\uE8AB',\n 'Rename': '\\uE8AC',\n 'Go': '\\uE8AD',\n 'Remote': '\\uE8AF',\n 'SelectAll': '\\uE8B3',\n 'Orientation': '\\uE8B4',\n 'Import': '\\uE8B5'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-1.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-2\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-2-63c99abf.woff') format('woff')\")\n },\n icons: {\n 'Picture': '\\uE8B9',\n 'ChromeClose': '\\uE8BB',\n 'ShowResults': '\\uE8BC',\n 'Message': '\\uE8BD',\n 'CalendarDay': '\\uE8BF',\n 'CalendarWeek': '\\uE8C0',\n 'MailReplyAll': '\\uE8C2',\n 'Read': '\\uE8C3',\n 'Cut': '\\uE8C6',\n 'PaymentCard': '\\uE8C7',\n 'Copy': '\\uE8C8',\n 'Important': '\\uE8C9',\n 'MailReply': '\\uE8CA',\n 'GotoToday': '\\uE8D1',\n 'Font': '\\uE8D2',\n 'FontColor': '\\uE8D3',\n 'FolderFill': '\\uE8D5',\n 'Permissions': '\\uE8D7',\n 'DisableUpdates': '\\uE8D8',\n 'Unfavorite': '\\uE8D9',\n 'Italic': '\\uE8DB',\n 'Underline': '\\uE8DC',\n 'Bold': '\\uE8DD',\n 'MoveToFolder': '\\uE8DE',\n 'Dislike': '\\uE8E0',\n 'Like': '\\uE8E1',\n 'AlignCenter': '\\uE8E3',\n 'OpenFile': '\\uE8E5',\n 'ClearSelection': '\\uE8E6',\n 'FontDecrease': '\\uE8E7',\n 'FontIncrease': '\\uE8E8',\n 'FontSize': '\\uE8E9',\n 'CellPhone': '\\uE8EA',\n 'RepeatOne': '\\uE8ED',\n 'RepeatAll': '\\uE8EE',\n 'Calculator': '\\uE8EF',\n 'Library': '\\uE8F1',\n 'PostUpdate': '\\uE8F3',\n 'NewFolder': '\\uE8F4',\n 'CalendarReply': '\\uE8F5',\n 'UnsyncFolder': '\\uE8F6',\n 'SyncFolder': '\\uE8F7',\n 'BlockContact': '\\uE8F8',\n 'Accept': '\\uE8FB',\n 'BulletedList': '\\uE8FD',\n 'Preview': '\\uE8FF',\n 'News': '\\uE900',\n 'Chat': '\\uE901',\n 'Group': '\\uE902',\n 'World': '\\uE909',\n 'Comment': '\\uE90A',\n 'DockLeft': '\\uE90C',\n 'DockRight': '\\uE90D',\n 'Repair': '\\uE90F',\n 'Accounts': '\\uE910',\n 'Street': '\\uE913',\n 'RadioBullet': '\\uE915',\n 'Stopwatch': '\\uE916',\n 'Clock': '\\uE917',\n 'WorldClock': '\\uE918',\n 'AlarmClock': '\\uE919',\n 'Photo': '\\uE91B',\n 'ActionCenter': '\\uE91C',\n 'Hospital': '\\uE91D',\n 'Timer': '\\uE91E',\n 'FullCircleMask': '\\uE91F',\n 'LocationFill': '\\uE920',\n 'ChromeMinimize': '\\uE921',\n 'ChromeRestore': '\\uE923',\n 'Annotation': '\\uE924',\n 'Fingerprint': '\\uE928',\n 'Handwriting': '\\uE929',\n 'ChromeFullScreen': '\\uE92D',\n 'Completed': '\\uE930',\n 'Label': '\\uE932',\n 'FlickDown': '\\uE935',\n 'FlickUp': '\\uE936',\n 'FlickLeft': '\\uE937',\n 'FlickRight': '\\uE938',\n 'MiniExpand': '\\uE93A',\n 'MiniContract': '\\uE93B',\n 'Streaming': '\\uE93E',\n 'MusicInCollection': '\\uE940',\n 'OneDriveLogo': '\\uE941',\n 'CompassNW': '\\uE942',\n 'Code': '\\uE943',\n 'LightningBolt': '\\uE945',\n 'CalculatorMultiply': '\\uE947',\n 'CalculatorAddition': '\\uE948',\n 'CalculatorSubtract': '\\uE949',\n 'CalculatorPercentage': '\\uE94C',\n 'CalculatorEqualTo': '\\uE94E',\n 'PrintfaxPrinterFile': '\\uE956',\n 'StorageOptical': '\\uE958',\n 'Communications': '\\uE95A',\n 'Headset': '\\uE95B',\n 'Health': '\\uE95E',\n 'Webcam2': '\\uE960',\n 'FrontCamera': '\\uE96B',\n 'ChevronUpSmall': '\\uE96D'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-2.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-3\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-3-089e217a.woff') format('woff')\")\n },\n icons: {\n 'ChevronDownSmall': '\\uE96E',\n 'ChevronLeftSmall': '\\uE96F',\n 'ChevronRightSmall': '\\uE970',\n 'ChevronUpMed': '\\uE971',\n 'ChevronDownMed': '\\uE972',\n 'ChevronLeftMed': '\\uE973',\n 'ChevronRightMed': '\\uE974',\n 'Devices2': '\\uE975',\n 'PC1': '\\uE977',\n 'PresenceChickletVideo': '\\uE979',\n 'Reply': '\\uE97A',\n 'HalfAlpha': '\\uE97E',\n 'ConstructionCone': '\\uE98F',\n 'DoubleChevronLeftMed': '\\uE991',\n 'Volume0': '\\uE992',\n 'Volume1': '\\uE993',\n 'Volume2': '\\uE994',\n 'Volume3': '\\uE995',\n 'Chart': '\\uE999',\n 'Robot': '\\uE99A',\n 'Manufacturing': '\\uE99C',\n 'LockSolid': '\\uE9A2',\n 'FitPage': '\\uE9A6',\n 'FitWidth': '\\uE9A7',\n 'BidiLtr': '\\uE9AA',\n 'BidiRtl': '\\uE9AB',\n 'RightDoubleQuote': '\\uE9B1',\n 'Sunny': '\\uE9BD',\n 'CloudWeather': '\\uE9BE',\n 'Cloudy': '\\uE9BF',\n 'PartlyCloudyDay': '\\uE9C0',\n 'PartlyCloudyNight': '\\uE9C1',\n 'ClearNight': '\\uE9C2',\n 'RainShowersDay': '\\uE9C3',\n 'Rain': '\\uE9C4',\n 'Thunderstorms': '\\uE9C6',\n 'RainSnow': '\\uE9C7',\n 'Snow': '\\uE9C8',\n 'BlowingSnow': '\\uE9C9',\n 'Frigid': '\\uE9CA',\n 'Fog': '\\uE9CB',\n 'Squalls': '\\uE9CC',\n 'Duststorm': '\\uE9CD',\n 'Unknown': '\\uE9CE',\n 'Precipitation': '\\uE9CF',\n 'Ribbon': '\\uE9D1',\n 'AreaChart': '\\uE9D2',\n 'Assign': '\\uE9D3',\n 'FlowChart': '\\uE9D4',\n 'CheckList': '\\uE9D5',\n 'Diagnostic': '\\uE9D9',\n 'Generate': '\\uE9DA',\n 'LineChart': '\\uE9E6',\n 'Equalizer': '\\uE9E9',\n 'BarChartHorizontal': '\\uE9EB',\n 'BarChartVertical': '\\uE9EC',\n 'Freezing': '\\uE9EF',\n 'FunnelChart': '\\uE9F1',\n 'Processing': '\\uE9F5',\n 'Quantity': '\\uE9F8',\n 'ReportDocument': '\\uE9F9',\n 'StackColumnChart': '\\uE9FC',\n 'SnowShowerDay': '\\uE9FD',\n 'HailDay': '\\uEA00',\n 'WorkFlow': '\\uEA01',\n 'HourGlass': '\\uEA03',\n 'StoreLogoMed20': '\\uEA04',\n 'TimeSheet': '\\uEA05',\n 'TriangleSolid': '\\uEA08',\n 'UpgradeAnalysis': '\\uEA0B',\n 'VideoSolid': '\\uEA0C',\n 'RainShowersNight': '\\uEA0F',\n 'SnowShowerNight': '\\uEA11',\n 'Teamwork': '\\uEA12',\n 'HailNight': '\\uEA13',\n 'PeopleAdd': '\\uEA15',\n 'Glasses': '\\uEA16',\n 'DateTime2': '\\uEA17',\n 'Shield': '\\uEA18',\n 'Header1': '\\uEA19',\n 'PageAdd': '\\uEA1A',\n 'NumberedList': '\\uEA1C',\n 'PowerBILogo': '\\uEA1E',\n 'Info2': '\\uEA1F',\n 'MusicInCollectionFill': '\\uEA36',\n 'Asterisk': '\\uEA38',\n 'ErrorBadge': '\\uEA39',\n 'CircleFill': '\\uEA3B',\n 'Record2': '\\uEA3F',\n 'AllAppsMirrored': '\\uEA40',\n 'BookmarksMirrored': '\\uEA41',\n 'BulletedListMirrored': '\\uEA42',\n 'CaretHollowMirrored': '\\uEA45',\n 'CaretSolidMirrored': '\\uEA46',\n 'ChromeBackMirrored': '\\uEA47',\n 'ClearSelectionMirrored': '\\uEA48',\n 'ClosePaneMirrored': '\\uEA49',\n 'DockLeftMirrored': '\\uEA4C',\n 'DoubleChevronLeftMedMirrored': '\\uEA4D',\n 'GoMirrored': '\\uEA4F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-3.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-4\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-4-a656cc0a.woff') format('woff')\")\n },\n icons: {\n 'HelpMirrored': '\\uEA51',\n 'ImportMirrored': '\\uEA52',\n 'ImportAllMirrored': '\\uEA53',\n 'ListMirrored': '\\uEA55',\n 'MailForwardMirrored': '\\uEA56',\n 'MailReplyMirrored': '\\uEA57',\n 'MailReplyAllMirrored': '\\uEA58',\n 'MiniContractMirrored': '\\uEA59',\n 'MiniExpandMirrored': '\\uEA5A',\n 'OpenPaneMirrored': '\\uEA5B',\n 'ParkingLocationMirrored': '\\uEA5E',\n 'SendMirrored': '\\uEA63',\n 'ShowResultsMirrored': '\\uEA65',\n 'ThumbnailViewMirrored': '\\uEA67',\n 'Media': '\\uEA69',\n 'Devices3': '\\uEA6C',\n 'Focus': '\\uEA6F',\n 'VideoLightOff': '\\uEA74',\n 'Lightbulb': '\\uEA80',\n 'StatusTriangle': '\\uEA82',\n 'VolumeDisabled': '\\uEA85',\n 'Puzzle': '\\uEA86',\n 'EmojiNeutral': '\\uEA87',\n 'EmojiDisappointed': '\\uEA88',\n 'HomeSolid': '\\uEA8A',\n 'Ringer': '\\uEA8F',\n 'PDF': '\\uEA90',\n 'HeartBroken': '\\uEA92',\n 'StoreLogo16': '\\uEA96',\n 'MultiSelectMirrored': '\\uEA98',\n 'Broom': '\\uEA99',\n 'AddToShoppingList': '\\uEA9A',\n 'Cocktails': '\\uEA9D',\n 'Wines': '\\uEABF',\n 'Articles': '\\uEAC1',\n 'Cycling': '\\uEAC7',\n 'DietPlanNotebook': '\\uEAC8',\n 'Pill': '\\uEACB',\n 'ExerciseTracker': '\\uEACC',\n 'HandsFree': '\\uEAD0',\n 'Medical': '\\uEAD4',\n 'Running': '\\uEADA',\n 'Weights': '\\uEADB',\n 'Trackers': '\\uEADF',\n 'AddNotes': '\\uEAE3',\n 'AllCurrency': '\\uEAE4',\n 'BarChart4': '\\uEAE7',\n 'CirclePlus': '\\uEAEE',\n 'Coffee': '\\uEAEF',\n 'Cotton': '\\uEAF3',\n 'Market': '\\uEAFC',\n 'Money': '\\uEAFD',\n 'PieDouble': '\\uEB04',\n 'PieSingle': '\\uEB05',\n 'RemoveFilter': '\\uEB08',\n 'Savings': '\\uEB0B',\n 'Sell': '\\uEB0C',\n 'StockDown': '\\uEB0F',\n 'StockUp': '\\uEB11',\n 'Lamp': '\\uEB19',\n 'Source': '\\uEB1B',\n 'MSNVideos': '\\uEB1C',\n 'Cricket': '\\uEB1E',\n 'Golf': '\\uEB1F',\n 'Baseball': '\\uEB20',\n 'Soccer': '\\uEB21',\n 'MoreSports': '\\uEB22',\n 'AutoRacing': '\\uEB24',\n 'CollegeHoops': '\\uEB25',\n 'CollegeFootball': '\\uEB26',\n 'ProFootball': '\\uEB27',\n 'ProHockey': '\\uEB28',\n 'Rugby': '\\uEB2D',\n 'SubstitutionsIn': '\\uEB31',\n 'Tennis': '\\uEB33',\n 'Arrivals': '\\uEB34',\n 'Design': '\\uEB3C',\n 'Website': '\\uEB41',\n 'Drop': '\\uEB42',\n 'HistoricalWeather': '\\uEB43',\n 'SkiResorts': '\\uEB45',\n 'Snowflake': '\\uEB46',\n 'BusSolid': '\\uEB47',\n 'FerrySolid': '\\uEB48',\n 'AirplaneSolid': '\\uEB4C',\n 'TrainSolid': '\\uEB4D',\n 'Ticket': '\\uEB54',\n 'WifiWarning4': '\\uEB63',\n 'Devices4': '\\uEB66',\n 'AzureLogo': '\\uEB6A',\n 'BingLogo': '\\uEB6B',\n 'MSNLogo': '\\uEB6C',\n 'OutlookLogoInverse': '\\uEB6D',\n 'OfficeLogo': '\\uEB6E',\n 'SkypeLogo': '\\uEB6F',\n 'Door': '\\uEB75',\n 'EditMirrored': '\\uEB7E',\n 'GiftCard': '\\uEB8E',\n 'DoubleBookmark': '\\uEB8F',\n 'StatusErrorFull': '\\uEB90'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-4.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-5\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-5-f95ba260.woff') format('woff')\")\n },\n icons: {\n 'Certificate': '\\uEB95',\n 'FastForward': '\\uEB9D',\n 'Rewind': '\\uEB9E',\n 'Photo2': '\\uEB9F',\n 'OpenSource': '\\uEBC2',\n 'Movers': '\\uEBCD',\n 'CloudDownload': '\\uEBD3',\n 'Family': '\\uEBDA',\n 'WindDirection': '\\uEBE6',\n 'Bug': '\\uEBE8',\n 'SiteScan': '\\uEBEC',\n 'BrowserScreenShot': '\\uEBED',\n 'F12DevTools': '\\uEBEE',\n 'CSS': '\\uEBEF',\n 'JS': '\\uEBF0',\n 'DeliveryTruck': '\\uEBF4',\n 'ReminderPerson': '\\uEBF7',\n 'ReminderGroup': '\\uEBF8',\n 'ReminderTime': '\\uEBF9',\n 'TabletMode': '\\uEBFC',\n 'Umbrella': '\\uEC04',\n 'NetworkTower': '\\uEC05',\n 'CityNext': '\\uEC06',\n 'CityNext2': '\\uEC07',\n 'Section': '\\uEC0C',\n 'OneNoteLogoInverse': '\\uEC0D',\n 'ToggleFilled': '\\uEC11',\n 'ToggleBorder': '\\uEC12',\n 'SliderThumb': '\\uEC13',\n 'ToggleThumb': '\\uEC14',\n 'Documentation': '\\uEC17',\n 'Badge': '\\uEC1B',\n 'Giftbox': '\\uEC1F',\n 'VisualStudioLogo': '\\uEC22',\n 'HomeGroup': '\\uEC26',\n 'ExcelLogoInverse': '\\uEC28',\n 'WordLogoInverse': '\\uEC29',\n 'PowerPointLogoInverse': '\\uEC2A',\n 'Cafe': '\\uEC32',\n 'SpeedHigh': '\\uEC4A',\n 'Commitments': '\\uEC4D',\n 'ThisPC': '\\uEC4E',\n 'MusicNote': '\\uEC4F',\n 'MicOff': '\\uEC54',\n 'PlaybackRate1x': '\\uEC57',\n 'EdgeLogo': '\\uEC60',\n 'CompletedSolid': '\\uEC61',\n 'AlbumRemove': '\\uEC62',\n 'MessageFill': '\\uEC70',\n 'TabletSelected': '\\uEC74',\n 'MobileSelected': '\\uEC75',\n 'LaptopSelected': '\\uEC76',\n 'TVMonitorSelected': '\\uEC77',\n 'DeveloperTools': '\\uEC7A',\n 'Shapes': '\\uEC7C',\n 'InsertTextBox': '\\uEC7D',\n 'LowerBrightness': '\\uEC8A',\n 'WebComponents': '\\uEC8B',\n 'OfflineStorage': '\\uEC8C',\n 'DOM': '\\uEC8D',\n 'CloudUpload': '\\uEC8E',\n 'ScrollUpDown': '\\uEC8F',\n 'DateTime': '\\uEC92',\n 'Event': '\\uECA3',\n 'Cake': '\\uECA4',\n 'Org': '\\uECA6',\n 'PartyLeader': '\\uECA7',\n 'DRM': '\\uECA8',\n 'CloudAdd': '\\uECA9',\n 'AppIconDefault': '\\uECAA',\n 'Photo2Add': '\\uECAB',\n 'Photo2Remove': '\\uECAC',\n 'Calories': '\\uECAD',\n 'POI': '\\uECAF',\n 'AddTo': '\\uECC8',\n 'RadioBtnOff': '\\uECCA',\n 'RadioBtnOn': '\\uECCB',\n 'ExploreContent': '\\uECCD',\n 'Product': '\\uECDC',\n 'ProgressLoopInner': '\\uECDE',\n 'ProgressLoopOuter': '\\uECDF',\n 'Blocked2': '\\uECE4',\n 'FangBody': '\\uECEB',\n 'Toolbox': '\\uECED',\n 'PageHeader': '\\uECEE',\n 'ChatInviteFriend': '\\uECFE',\n 'Brush': '\\uECFF',\n 'Shirt': '\\uED00',\n 'Crown': '\\uED01',\n 'Diamond': '\\uED02',\n 'ScaleUp': '\\uED09',\n 'QRCode': '\\uED14',\n 'Feedback': '\\uED15',\n 'SharepointLogoInverse': '\\uED18',\n 'YammerLogo': '\\uED19',\n 'Hide': '\\uED1A',\n 'Uneditable': '\\uED1D',\n 'ReturnToSession': '\\uED24',\n 'OpenFolderHorizontal': '\\uED25',\n 'CalendarMirrored': '\\uED28'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-5.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-6\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-6-ef6fd590.woff') format('woff')\")\n },\n icons: {\n 'SwayLogoInverse': '\\uED29',\n 'OutOfOffice': '\\uED34',\n 'Trophy': '\\uED3F',\n 'ReopenPages': '\\uED50',\n 'EmojiTabSymbols': '\\uED58',\n 'AADLogo': '\\uED68',\n 'AccessLogo': '\\uED69',\n 'AdminALogoInverse32': '\\uED6A',\n 'AdminCLogoInverse32': '\\uED6B',\n 'AdminDLogoInverse32': '\\uED6C',\n 'AdminELogoInverse32': '\\uED6D',\n 'AdminLLogoInverse32': '\\uED6E',\n 'AdminMLogoInverse32': '\\uED6F',\n 'AdminOLogoInverse32': '\\uED70',\n 'AdminPLogoInverse32': '\\uED71',\n 'AdminSLogoInverse32': '\\uED72',\n 'AdminYLogoInverse32': '\\uED73',\n 'DelveLogoInverse': '\\uED76',\n 'ExchangeLogoInverse': '\\uED78',\n 'LyncLogo': '\\uED79',\n 'OfficeVideoLogoInverse': '\\uED7A',\n 'SocialListeningLogo': '\\uED7C',\n 'VisioLogoInverse': '\\uED7D',\n 'Balloons': '\\uED7E',\n 'Cat': '\\uED7F',\n 'MailAlert': '\\uED80',\n 'MailCheck': '\\uED81',\n 'MailLowImportance': '\\uED82',\n 'MailPause': '\\uED83',\n 'MailRepeat': '\\uED84',\n 'SecurityGroup': '\\uED85',\n 'Table': '\\uED86',\n 'VoicemailForward': '\\uED87',\n 'VoicemailReply': '\\uED88',\n 'Waffle': '\\uED89',\n 'RemoveEvent': '\\uED8A',\n 'EventInfo': '\\uED8B',\n 'ForwardEvent': '\\uED8C',\n 'WipePhone': '\\uED8D',\n 'AddOnlineMeeting': '\\uED8E',\n 'JoinOnlineMeeting': '\\uED8F',\n 'RemoveLink': '\\uED90',\n 'PeopleBlock': '\\uED91',\n 'PeopleRepeat': '\\uED92',\n 'PeopleAlert': '\\uED93',\n 'PeoplePause': '\\uED94',\n 'TransferCall': '\\uED95',\n 'AddPhone': '\\uED96',\n 'UnknownCall': '\\uED97',\n 'NoteReply': '\\uED98',\n 'NoteForward': '\\uED99',\n 'NotePinned': '\\uED9A',\n 'RemoveOccurrence': '\\uED9B',\n 'Timeline': '\\uED9C',\n 'EditNote': '\\uED9D',\n 'CircleHalfFull': '\\uED9E',\n 'Room': '\\uED9F',\n 'Unsubscribe': '\\uEDA0',\n 'Subscribe': '\\uEDA1',\n 'HardDrive': '\\uEDA2',\n 'RecurringTask': '\\uEDB2',\n 'TaskManager': '\\uEDB7',\n 'TaskManagerMirrored': '\\uEDB8',\n 'Combine': '\\uEDBB',\n 'Split': '\\uEDBC',\n 'DoubleChevronUp': '\\uEDBD',\n 'DoubleChevronLeft': '\\uEDBE',\n 'DoubleChevronRight': '\\uEDBF',\n 'TextBox': '\\uEDC2',\n 'TextField': '\\uEDC3',\n 'NumberField': '\\uEDC4',\n 'Dropdown': '\\uEDC5',\n 'PenWorkspace': '\\uEDC6',\n 'BookingsLogo': '\\uEDC7',\n 'ClassNotebookLogoInverse': '\\uEDC8',\n 'DelveAnalyticsLogo': '\\uEDCA',\n 'DocsLogoInverse': '\\uEDCB',\n 'Dynamics365Logo': '\\uEDCC',\n 'DynamicSMBLogo': '\\uEDCD',\n 'OfficeAssistantLogo': '\\uEDCE',\n 'OfficeStoreLogo': '\\uEDCF',\n 'OneNoteEduLogoInverse': '\\uEDD0',\n 'PlannerLogo': '\\uEDD1',\n 'PowerApps': '\\uEDD2',\n 'Suitcase': '\\uEDD3',\n 'ProjectLogoInverse': '\\uEDD4',\n 'CaretLeft8': '\\uEDD5',\n 'CaretRight8': '\\uEDD6',\n 'CaretUp8': '\\uEDD7',\n 'CaretDown8': '\\uEDD8',\n 'CaretLeftSolid8': '\\uEDD9',\n 'CaretRightSolid8': '\\uEDDA',\n 'CaretUpSolid8': '\\uEDDB',\n 'CaretDownSolid8': '\\uEDDC',\n 'ClearFormatting': '\\uEDDD',\n 'Superscript': '\\uEDDE',\n 'Subscript': '\\uEDDF',\n 'Strikethrough': '\\uEDE0',\n 'Export': '\\uEDE1',\n 'ExportMirrored': '\\uEDE2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-6.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-7\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-7-2b97bb99.woff') format('woff')\")\n },\n icons: {\n 'SingleBookmark': '\\uEDFF',\n 'SingleBookmarkSolid': '\\uEE00',\n 'DoubleChevronDown': '\\uEE04',\n 'FollowUser': '\\uEE05',\n 'ReplyAll': '\\uEE0A',\n 'WorkforceManagement': '\\uEE0F',\n 'RecruitmentManagement': '\\uEE12',\n 'Questionnaire': '\\uEE19',\n 'ManagerSelfService': '\\uEE23',\n 'ProductionFloorManagement': '\\uEE29',\n 'ProductRelease': '\\uEE2E',\n 'ProductVariant': '\\uEE30',\n 'ReplyMirrored': '\\uEE35',\n 'ReplyAllMirrored': '\\uEE36',\n 'Medal': '\\uEE38',\n 'AddGroup': '\\uEE3D',\n 'QuestionnaireMirrored': '\\uEE4B',\n 'CloudImportExport': '\\uEE55',\n 'TemporaryUser': '\\uEE58',\n 'CaretSolid16': '\\uEE62',\n 'GroupedDescending': '\\uEE66',\n 'GroupedAscending': '\\uEE67',\n 'AwayStatus': '\\uEE6A',\n 'MyMoviesTV': '\\uEE6C',\n 'GenericScan': '\\uEE6F',\n 'AustralianRules': '\\uEE70',\n 'WifiEthernet': '\\uEE77',\n 'TrackersMirrored': '\\uEE92',\n 'DateTimeMirrored': '\\uEE93',\n 'StopSolid': '\\uEE95',\n 'DoubleChevronUp12': '\\uEE96',\n 'DoubleChevronDown12': '\\uEE97',\n 'DoubleChevronLeft12': '\\uEE98',\n 'DoubleChevronRight12': '\\uEE99',\n 'CalendarAgenda': '\\uEE9A',\n 'ConnectVirtualMachine': '\\uEE9D',\n 'AddEvent': '\\uEEB5',\n 'AssetLibrary': '\\uEEB6',\n 'DataConnectionLibrary': '\\uEEB7',\n 'DocLibrary': '\\uEEB8',\n 'FormLibrary': '\\uEEB9',\n 'FormLibraryMirrored': '\\uEEBA',\n 'ReportLibrary': '\\uEEBB',\n 'ReportLibraryMirrored': '\\uEEBC',\n 'ContactCard': '\\uEEBD',\n 'CustomList': '\\uEEBE',\n 'CustomListMirrored': '\\uEEBF',\n 'IssueTracking': '\\uEEC0',\n 'IssueTrackingMirrored': '\\uEEC1',\n 'PictureLibrary': '\\uEEC2',\n 'OfficeAddinsLogo': '\\uEEC7',\n 'OfflineOneDriveParachute': '\\uEEC8',\n 'OfflineOneDriveParachuteDisabled': '\\uEEC9',\n 'TriangleSolidUp12': '\\uEECC',\n 'TriangleSolidDown12': '\\uEECD',\n 'TriangleSolidLeft12': '\\uEECE',\n 'TriangleSolidRight12': '\\uEECF',\n 'TriangleUp12': '\\uEED0',\n 'TriangleDown12': '\\uEED1',\n 'TriangleLeft12': '\\uEED2',\n 'TriangleRight12': '\\uEED3',\n 'ArrowUpRight8': '\\uEED4',\n 'ArrowDownRight8': '\\uEED5',\n 'DocumentSet': '\\uEED6',\n 'GoToDashboard': '\\uEEED',\n 'DelveAnalytics': '\\uEEEE',\n 'ArrowUpRightMirrored8': '\\uEEEF',\n 'ArrowDownRightMirrored8': '\\uEEF0',\n 'CompanyDirectory': '\\uEF0D',\n 'OpenEnrollment': '\\uEF1C',\n 'CompanyDirectoryMirrored': '\\uEF2B',\n 'OneDriveAdd': '\\uEF32',\n 'ProfileSearch': '\\uEF35',\n 'Header2': '\\uEF36',\n 'Header3': '\\uEF37',\n 'Header4': '\\uEF38',\n 'RingerSolid': '\\uEF3A',\n 'Eyedropper': '\\uEF3C',\n 'MarketDown': '\\uEF42',\n 'CalendarWorkWeek': '\\uEF51',\n 'SidePanel': '\\uEF52',\n 'GlobeFavorite': '\\uEF53',\n 'CaretTopLeftSolid8': '\\uEF54',\n 'CaretTopRightSolid8': '\\uEF55',\n 'ViewAll2': '\\uEF56',\n 'DocumentReply': '\\uEF57',\n 'PlayerSettings': '\\uEF58',\n 'ReceiptForward': '\\uEF59',\n 'ReceiptReply': '\\uEF5A',\n 'ReceiptCheck': '\\uEF5B',\n 'Fax': '\\uEF5C',\n 'RecurringEvent': '\\uEF5D',\n 'ReplyAlt': '\\uEF5E',\n 'ReplyAllAlt': '\\uEF5F',\n 'EditStyle': '\\uEF60',\n 'EditMail': '\\uEF61',\n 'Lifesaver': '\\uEF62',\n 'LifesaverLock': '\\uEF63',\n 'InboxCheck': '\\uEF64',\n 'FolderSearch': '\\uEF65'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-7.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-8\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-8-6fdf1528.woff') format('woff')\")\n },\n icons: {\n 'CollapseMenu': '\\uEF66',\n 'ExpandMenu': '\\uEF67',\n 'Boards': '\\uEF68',\n 'SunAdd': '\\uEF69',\n 'SunQuestionMark': '\\uEF6A',\n 'LandscapeOrientation': '\\uEF6B',\n 'DocumentSearch': '\\uEF6C',\n 'PublicCalendar': '\\uEF6D',\n 'PublicContactCard': '\\uEF6E',\n 'PublicEmail': '\\uEF6F',\n 'PublicFolder': '\\uEF70',\n 'WordDocument': '\\uEF71',\n 'PowerPointDocument': '\\uEF72',\n 'ExcelDocument': '\\uEF73',\n 'GroupedList': '\\uEF74',\n 'ClassroomLogo': '\\uEF75',\n 'Sections': '\\uEF76',\n 'EditPhoto': '\\uEF77',\n 'Starburst': '\\uEF78',\n 'ShareiOS': '\\uEF79',\n 'AirTickets': '\\uEF7A',\n 'PencilReply': '\\uEF7B',\n 'Tiles2': '\\uEF7C',\n 'SkypeCircleCheck': '\\uEF7D',\n 'SkypeCircleClock': '\\uEF7E',\n 'SkypeCircleMinus': '\\uEF7F',\n 'SkypeMessage': '\\uEF83',\n 'ClosedCaption': '\\uEF84',\n 'ATPLogo': '\\uEF85',\n 'OfficeFormsLogoInverse': '\\uEF86',\n 'RecycleBin': '\\uEF87',\n 'EmptyRecycleBin': '\\uEF88',\n 'Hide2': '\\uEF89',\n 'Breadcrumb': '\\uEF8C',\n 'BirthdayCake': '\\uEF8D',\n 'TimeEntry': '\\uEF95',\n 'CRMProcesses': '\\uEFB1',\n 'PageEdit': '\\uEFB6',\n 'PageArrowRight': '\\uEFB8',\n 'PageRemove': '\\uEFBA',\n 'Database': '\\uEFC7',\n 'DataManagementSettings': '\\uEFC8',\n 'CRMServices': '\\uEFD2',\n 'EditContact': '\\uEFD3',\n 'ConnectContacts': '\\uEFD4',\n 'AppIconDefaultAdd': '\\uEFDA',\n 'AppIconDefaultList': '\\uEFDE',\n 'ActivateOrders': '\\uEFE0',\n 'DeactivateOrders': '\\uEFE1',\n 'ProductCatalog': '\\uEFE8',\n 'ScatterChart': '\\uEFEB',\n 'AccountActivity': '\\uEFF4',\n 'DocumentManagement': '\\uEFFC',\n 'CRMReport': '\\uEFFE',\n 'KnowledgeArticle': '\\uF000',\n 'Relationship': '\\uF003',\n 'HomeVerify': '\\uF00E',\n 'ZipFolder': '\\uF012',\n 'SurveyQuestions': '\\uF01B',\n 'TextDocument': '\\uF029',\n 'TextDocumentShared': '\\uF02B',\n 'PageCheckedOut': '\\uF02C',\n 'PageShared': '\\uF02D',\n 'SaveAndClose': '\\uF038',\n 'Script': '\\uF03A',\n 'Archive': '\\uF03F',\n 'ActivityFeed': '\\uF056',\n 'Compare': '\\uF057',\n 'EventDate': '\\uF059',\n 'ArrowUpRight': '\\uF069',\n 'CaretRight': '\\uF06B',\n 'SetAction': '\\uF071',\n 'ChatBot': '\\uF08B',\n 'CaretSolidLeft': '\\uF08D',\n 'CaretSolidDown': '\\uF08E',\n 'CaretSolidRight': '\\uF08F',\n 'CaretSolidUp': '\\uF090',\n 'PowerAppsLogo': '\\uF091',\n 'PowerApps2Logo': '\\uF092',\n 'SearchIssue': '\\uF09A',\n 'SearchIssueMirrored': '\\uF09B',\n 'FabricAssetLibrary': '\\uF09C',\n 'FabricDataConnectionLibrary': '\\uF09D',\n 'FabricDocLibrary': '\\uF09E',\n 'FabricFormLibrary': '\\uF09F',\n 'FabricFormLibraryMirrored': '\\uF0A0',\n 'FabricReportLibrary': '\\uF0A1',\n 'FabricReportLibraryMirrored': '\\uF0A2',\n 'FabricPublicFolder': '\\uF0A3',\n 'FabricFolderSearch': '\\uF0A4',\n 'FabricMovetoFolder': '\\uF0A5',\n 'FabricUnsyncFolder': '\\uF0A6',\n 'FabricSyncFolder': '\\uF0A7',\n 'FabricOpenFolderHorizontal': '\\uF0A8',\n 'FabricFolder': '\\uF0A9',\n 'FabricFolderFill': '\\uF0AA',\n 'FabricNewFolder': '\\uF0AB',\n 'FabricPictureLibrary': '\\uF0AC',\n 'PhotoVideoMedia': '\\uF0B1',\n 'AddFavorite': '\\uF0C8'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-8.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-9\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-9-c6162b42.woff') format('woff')\")\n },\n icons: {\n 'AddFavoriteFill': '\\uF0C9',\n 'BufferTimeBefore': '\\uF0CF',\n 'BufferTimeAfter': '\\uF0D0',\n 'BufferTimeBoth': '\\uF0D1',\n 'PublishContent': '\\uF0D4',\n 'ClipboardList': '\\uF0E3',\n 'ClipboardListMirrored': '\\uF0E4',\n 'CannedChat': '\\uF0F2',\n 'SkypeForBusinessLogo': '\\uF0FC',\n 'TabCenter': '\\uF100',\n 'PageCheckedin': '\\uF104',\n 'PageList': '\\uF106',\n 'ReadOutLoud': '\\uF112',\n 'CaretBottomLeftSolid8': '\\uF121',\n 'CaretBottomRightSolid8': '\\uF122',\n 'FolderHorizontal': '\\uF12B',\n 'MicrosoftStaffhubLogo': '\\uF130',\n 'GiftboxOpen': '\\uF133',\n 'StatusCircleOuter': '\\uF136',\n 'StatusCircleInner': '\\uF137',\n 'StatusCircleRing': '\\uF138',\n 'StatusTriangleOuter': '\\uF139',\n 'StatusTriangleInner': '\\uF13A',\n 'StatusTriangleExclamation': '\\uF13B',\n 'StatusCircleExclamation': '\\uF13C',\n 'StatusCircleErrorX': '\\uF13D',\n 'StatusCircleInfo': '\\uF13F',\n 'StatusCircleBlock': '\\uF140',\n 'StatusCircleBlock2': '\\uF141',\n 'StatusCircleQuestionMark': '\\uF142',\n 'StatusCircleSync': '\\uF143',\n 'Toll': '\\uF160',\n 'ExploreContentSingle': '\\uF164',\n 'CollapseContent': '\\uF165',\n 'CollapseContentSingle': '\\uF166',\n 'InfoSolid': '\\uF167',\n 'GroupList': '\\uF168',\n 'ProgressRingDots': '\\uF16A',\n 'CaloriesAdd': '\\uF172',\n 'BranchFork': '\\uF173',\n 'MuteChat': '\\uF17A',\n 'AddHome': '\\uF17B',\n 'AddWork': '\\uF17C',\n 'MobileReport': '\\uF18A',\n 'ScaleVolume': '\\uF18C',\n 'HardDriveGroup': '\\uF18F',\n 'FastMode': '\\uF19A',\n 'ToggleLeft': '\\uF19E',\n 'ToggleRight': '\\uF19F',\n 'TriangleShape': '\\uF1A7',\n 'RectangleShape': '\\uF1A9',\n 'CubeShape': '\\uF1AA',\n 'Trophy2': '\\uF1AE',\n 'BucketColor': '\\uF1B6',\n 'BucketColorFill': '\\uF1B7',\n 'Taskboard': '\\uF1C2',\n 'SingleColumn': '\\uF1D3',\n 'DoubleColumn': '\\uF1D4',\n 'TripleColumn': '\\uF1D5',\n 'ColumnLeftTwoThirds': '\\uF1D6',\n 'ColumnRightTwoThirds': '\\uF1D7',\n 'AccessLogoFill': '\\uF1DB',\n 'AnalyticsLogo': '\\uF1DE',\n 'AnalyticsQuery': '\\uF1DF',\n 'NewAnalyticsQuery': '\\uF1E0',\n 'AnalyticsReport': '\\uF1E1',\n 'WordLogo': '\\uF1E3',\n 'WordLogoFill': '\\uF1E4',\n 'ExcelLogo': '\\uF1E5',\n 'ExcelLogoFill': '\\uF1E6',\n 'OneNoteLogo': '\\uF1E7',\n 'OneNoteLogoFill': '\\uF1E8',\n 'OutlookLogo': '\\uF1E9',\n 'OutlookLogoFill': '\\uF1EA',\n 'PowerPointLogo': '\\uF1EB',\n 'PowerPointLogoFill': '\\uF1EC',\n 'PublisherLogo': '\\uF1ED',\n 'PublisherLogoFill': '\\uF1EE',\n 'ScheduleEventAction': '\\uF1EF',\n 'FlameSolid': '\\uF1F3',\n 'ServerProcesses': '\\uF1FE',\n 'Server': '\\uF201',\n 'SaveAll': '\\uF203',\n 'LinkedInLogo': '\\uF20A',\n 'Decimals': '\\uF218',\n 'SidePanelMirrored': '\\uF221',\n 'ProtectRestrict': '\\uF22A',\n 'Blog': '\\uF22B',\n 'UnknownMirrored': '\\uF22E',\n 'PublicContactCardMirrored': '\\uF230',\n 'GridViewSmall': '\\uF232',\n 'GridViewMedium': '\\uF233',\n 'GridViewLarge': '\\uF234',\n 'Step': '\\uF241',\n 'StepInsert': '\\uF242',\n 'StepShared': '\\uF243',\n 'StepSharedAdd': '\\uF244',\n 'StepSharedInsert': '\\uF245',\n 'ViewDashboard': '\\uF246',\n 'ViewList': '\\uF247'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-9.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-10\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-10-c4ded8e4.woff') format('woff')\")\n },\n icons: {\n 'ViewListGroup': '\\uF248',\n 'ViewListTree': '\\uF249',\n 'TriggerAuto': '\\uF24A',\n 'TriggerUser': '\\uF24B',\n 'PivotChart': '\\uF24C',\n 'StackedBarChart': '\\uF24D',\n 'StackedLineChart': '\\uF24E',\n 'BuildQueue': '\\uF24F',\n 'BuildQueueNew': '\\uF250',\n 'UserFollowed': '\\uF25C',\n 'ContactLink': '\\uF25F',\n 'Stack': '\\uF26F',\n 'Bullseye': '\\uF272',\n 'VennDiagram': '\\uF273',\n 'FiveTileGrid': '\\uF274',\n 'FocalPoint': '\\uF277',\n 'Insert': '\\uF278',\n 'RingerRemove': '\\uF279',\n 'TeamsLogoInverse': '\\uF27A',\n 'TeamsLogo': '\\uF27B',\n 'TeamsLogoFill': '\\uF27C',\n 'SkypeForBusinessLogoFill': '\\uF27D',\n 'SharepointLogo': '\\uF27E',\n 'SharepointLogoFill': '\\uF27F',\n 'DelveLogo': '\\uF280',\n 'DelveLogoFill': '\\uF281',\n 'OfficeVideoLogo': '\\uF282',\n 'OfficeVideoLogoFill': '\\uF283',\n 'ExchangeLogo': '\\uF284',\n 'ExchangeLogoFill': '\\uF285',\n 'Signin': '\\uF286',\n 'DocumentApproval': '\\uF28B',\n 'CloneToDesktop': '\\uF28C',\n 'InstallToDrive': '\\uF28D',\n 'Blur': '\\uF28E',\n 'Build': '\\uF28F',\n 'ProcessMetaTask': '\\uF290',\n 'BranchFork2': '\\uF291',\n 'BranchLocked': '\\uF292',\n 'BranchCommit': '\\uF293',\n 'BranchCompare': '\\uF294',\n 'BranchMerge': '\\uF295',\n 'BranchPullRequest': '\\uF296',\n 'BranchSearch': '\\uF297',\n 'BranchShelveset': '\\uF298',\n 'RawSource': '\\uF299',\n 'MergeDuplicate': '\\uF29A',\n 'RowsGroup': '\\uF29B',\n 'RowsChild': '\\uF29C',\n 'Deploy': '\\uF29D',\n 'Redeploy': '\\uF29E',\n 'ServerEnviroment': '\\uF29F',\n 'VisioDiagram': '\\uF2A0',\n 'HighlightMappedShapes': '\\uF2A1',\n 'TextCallout': '\\uF2A2',\n 'IconSetsFlag': '\\uF2A4',\n 'VisioLogo': '\\uF2A7',\n 'VisioLogoFill': '\\uF2A8',\n 'VisioDocument': '\\uF2A9',\n 'TimelineProgress': '\\uF2AA',\n 'TimelineDelivery': '\\uF2AB',\n 'Backlog': '\\uF2AC',\n 'TeamFavorite': '\\uF2AD',\n 'TaskGroup': '\\uF2AE',\n 'TaskGroupMirrored': '\\uF2AF',\n 'ScopeTemplate': '\\uF2B0',\n 'AssessmentGroupTemplate': '\\uF2B1',\n 'NewTeamProject': '\\uF2B2',\n 'CommentAdd': '\\uF2B3',\n 'CommentNext': '\\uF2B4',\n 'CommentPrevious': '\\uF2B5',\n 'ShopServer': '\\uF2B6',\n 'LocaleLanguage': '\\uF2B7',\n 'QueryList': '\\uF2B8',\n 'UserSync': '\\uF2B9',\n 'UserPause': '\\uF2BA',\n 'StreamingOff': '\\uF2BB',\n 'ArrowTallUpLeft': '\\uF2BD',\n 'ArrowTallUpRight': '\\uF2BE',\n 'ArrowTallDownLeft': '\\uF2BF',\n 'ArrowTallDownRight': '\\uF2C0',\n 'FieldEmpty': '\\uF2C1',\n 'FieldFilled': '\\uF2C2',\n 'FieldChanged': '\\uF2C3',\n 'FieldNotChanged': '\\uF2C4',\n 'RingerOff': '\\uF2C5',\n 'PlayResume': '\\uF2C6',\n 'BulletedList2': '\\uF2C7',\n 'BulletedList2Mirrored': '\\uF2C8',\n 'ImageCrosshair': '\\uF2C9',\n 'GitGraph': '\\uF2CA',\n 'Repo': '\\uF2CB',\n 'RepoSolid': '\\uF2CC',\n 'FolderQuery': '\\uF2CD',\n 'FolderList': '\\uF2CE',\n 'FolderListMirrored': '\\uF2CF',\n 'LocationOutline': '\\uF2D0',\n 'POISolid': '\\uF2D1',\n 'CalculatorNotEqualTo': '\\uF2D2',\n 'BoxSubtractSolid': '\\uF2D3'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-10.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-11\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-11-2a8393d6.woff') format('woff')\")\n },\n icons: {\n 'BoxAdditionSolid': '\\uF2D4',\n 'BoxMultiplySolid': '\\uF2D5',\n 'BoxPlaySolid': '\\uF2D6',\n 'BoxCheckmarkSolid': '\\uF2D7',\n 'CirclePauseSolid': '\\uF2D8',\n 'CirclePause': '\\uF2D9',\n 'MSNVideosSolid': '\\uF2DA',\n 'CircleStopSolid': '\\uF2DB',\n 'CircleStop': '\\uF2DC',\n 'NavigateBack': '\\uF2DD',\n 'NavigateBackMirrored': '\\uF2DE',\n 'NavigateForward': '\\uF2DF',\n 'NavigateForwardMirrored': '\\uF2E0',\n 'UnknownSolid': '\\uF2E1',\n 'UnknownMirroredSolid': '\\uF2E2',\n 'CircleAddition': '\\uF2E3',\n 'CircleAdditionSolid': '\\uF2E4',\n 'FilePDB': '\\uF2E5',\n 'FileTemplate': '\\uF2E6',\n 'FileSQL': '\\uF2E7',\n 'FileJAVA': '\\uF2E8',\n 'FileASPX': '\\uF2E9',\n 'FileCSS': '\\uF2EA',\n 'FileSass': '\\uF2EB',\n 'FileLess': '\\uF2EC',\n 'FileHTML': '\\uF2ED',\n 'JavaScriptLanguage': '\\uF2EE',\n 'CSharpLanguage': '\\uF2EF',\n 'CSharp': '\\uF2F0',\n 'VisualBasicLanguage': '\\uF2F1',\n 'VB': '\\uF2F2',\n 'CPlusPlusLanguage': '\\uF2F3',\n 'CPlusPlus': '\\uF2F4',\n 'FSharpLanguage': '\\uF2F5',\n 'FSharp': '\\uF2F6',\n 'TypeScriptLanguage': '\\uF2F7',\n 'PythonLanguage': '\\uF2F8',\n 'PY': '\\uF2F9',\n 'CoffeeScript': '\\uF2FA',\n 'MarkDownLanguage': '\\uF2FB',\n 'FullWidth': '\\uF2FE',\n 'FullWidthEdit': '\\uF2FF',\n 'Plug': '\\uF300',\n 'PlugSolid': '\\uF301',\n 'PlugConnected': '\\uF302',\n 'PlugDisconnected': '\\uF303',\n 'UnlockSolid': '\\uF304',\n 'Variable': '\\uF305',\n 'Parameter': '\\uF306',\n 'CommentUrgent': '\\uF307',\n 'Storyboard': '\\uF308',\n 'DiffInline': '\\uF309',\n 'DiffSideBySide': '\\uF30A',\n 'ImageDiff': '\\uF30B',\n 'ImagePixel': '\\uF30C',\n 'FileBug': '\\uF30D',\n 'FileCode': '\\uF30E',\n 'FileComment': '\\uF30F',\n 'BusinessHoursSign': '\\uF310',\n 'FileImage': '\\uF311',\n 'FileSymlink': '\\uF312',\n 'AutoFillTemplate': '\\uF313',\n 'WorkItem': '\\uF314',\n 'WorkItemBug': '\\uF315',\n 'LogRemove': '\\uF316',\n 'ColumnOptions': '\\uF317',\n 'Packages': '\\uF318',\n 'BuildIssue': '\\uF319',\n 'AssessmentGroup': '\\uF31A',\n 'VariableGroup': '\\uF31B',\n 'FullHistory': '\\uF31C',\n 'Wheelchair': '\\uF31F',\n 'SingleColumnEdit': '\\uF321',\n 'DoubleColumnEdit': '\\uF322',\n 'TripleColumnEdit': '\\uF323',\n 'ColumnLeftTwoThirdsEdit': '\\uF324',\n 'ColumnRightTwoThirdsEdit': '\\uF325',\n 'StreamLogo': '\\uF329',\n 'PassiveAuthentication': '\\uF32A',\n 'AlertSolid': '\\uF331',\n 'MegaphoneSolid': '\\uF332',\n 'TaskSolid': '\\uF333',\n 'ConfigurationSolid': '\\uF334',\n 'BugSolid': '\\uF335',\n 'CrownSolid': '\\uF336',\n 'Trophy2Solid': '\\uF337',\n 'QuickNoteSolid': '\\uF338',\n 'ConstructionConeSolid': '\\uF339',\n 'PageListSolid': '\\uF33A',\n 'PageListMirroredSolid': '\\uF33B',\n 'StarburstSolid': '\\uF33C',\n 'ReadingModeSolid': '\\uF33D',\n 'SadSolid': '\\uF33E',\n 'HealthSolid': '\\uF33F',\n 'ShieldSolid': '\\uF340',\n 'GiftBoxSolid': '\\uF341',\n 'ShoppingCartSolid': '\\uF342',\n 'MailSolid': '\\uF343',\n 'ChatSolid': '\\uF344',\n 'RibbonSolid': '\\uF345'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-11.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-12\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-12-7e945a1e.woff') format('woff')\")\n },\n icons: {\n 'FinancialSolid': '\\uF346',\n 'FinancialMirroredSolid': '\\uF347',\n 'HeadsetSolid': '\\uF348',\n 'PermissionsSolid': '\\uF349',\n 'ParkingSolid': '\\uF34A',\n 'ParkingMirroredSolid': '\\uF34B',\n 'DiamondSolid': '\\uF34C',\n 'AsteriskSolid': '\\uF34D',\n 'OfflineStorageSolid': '\\uF34E',\n 'BankSolid': '\\uF34F',\n 'DecisionSolid': '\\uF350',\n 'Parachute': '\\uF351',\n 'ParachuteSolid': '\\uF352',\n 'FiltersSolid': '\\uF353',\n 'ColorSolid': '\\uF354',\n 'ReviewSolid': '\\uF355',\n 'ReviewRequestSolid': '\\uF356',\n 'ReviewRequestMirroredSolid': '\\uF357',\n 'ReviewResponseSolid': '\\uF358',\n 'FeedbackRequestSolid': '\\uF359',\n 'FeedbackRequestMirroredSolid': '\\uF35A',\n 'FeedbackResponseSolid': '\\uF35B',\n 'WorkItemBar': '\\uF35C',\n 'WorkItemBarSolid': '\\uF35D',\n 'Separator': '\\uF35E',\n 'NavigateExternalInline': '\\uF35F',\n 'PlanView': '\\uF360',\n 'TimelineMatrixView': '\\uF361',\n 'EngineeringGroup': '\\uF362',\n 'ProjectCollection': '\\uF363',\n 'CaretBottomRightCenter8': '\\uF364',\n 'CaretBottomLeftCenter8': '\\uF365',\n 'CaretTopRightCenter8': '\\uF366',\n 'CaretTopLeftCenter8': '\\uF367',\n 'DonutChart': '\\uF368',\n 'ChevronUnfold10': '\\uF369',\n 'ChevronFold10': '\\uF36A',\n 'DoubleChevronDown8': '\\uF36B',\n 'DoubleChevronUp8': '\\uF36C',\n 'DoubleChevronLeft8': '\\uF36D',\n 'DoubleChevronRight8': '\\uF36E',\n 'ChevronDownEnd6': '\\uF36F',\n 'ChevronUpEnd6': '\\uF370',\n 'ChevronLeftEnd6': '\\uF371',\n 'ChevronRightEnd6': '\\uF372',\n 'ContextMenu': '\\uF37C',\n 'AzureAPIManagement': '\\uF37F',\n 'AzureServiceEndpoint': '\\uF380',\n 'VSTSLogo': '\\uF381',\n 'VSTSAltLogo1': '\\uF382',\n 'VSTSAltLogo2': '\\uF383',\n 'FileTypeSolution': '\\uF387',\n 'WordLogoInverse16': '\\uF390',\n 'WordLogo16': '\\uF391',\n 'WordLogoFill16': '\\uF392',\n 'PowerPointLogoInverse16': '\\uF393',\n 'PowerPointLogo16': '\\uF394',\n 'PowerPointLogoFill16': '\\uF395',\n 'ExcelLogoInverse16': '\\uF396',\n 'ExcelLogo16': '\\uF397',\n 'ExcelLogoFill16': '\\uF398',\n 'OneNoteLogoInverse16': '\\uF399',\n 'OneNoteLogo16': '\\uF39A',\n 'OneNoteLogoFill16': '\\uF39B',\n 'OutlookLogoInverse16': '\\uF39C',\n 'OutlookLogo16': '\\uF39D',\n 'OutlookLogoFill16': '\\uF39E',\n 'PublisherLogoInverse16': '\\uF39F',\n 'PublisherLogo16': '\\uF3A0',\n 'PublisherLogoFill16': '\\uF3A1',\n 'VisioLogoInverse16': '\\uF3A2',\n 'VisioLogo16': '\\uF3A3',\n 'VisioLogoFill16': '\\uF3A4',\n 'TestBeaker': '\\uF3A5',\n 'TestBeakerSolid': '\\uF3A6',\n 'TestExploreSolid': '\\uF3A7',\n 'TestAutoSolid': '\\uF3A8',\n 'TestUserSolid': '\\uF3A9',\n 'TestImpactSolid': '\\uF3AA',\n 'TestPlan': '\\uF3AB',\n 'TestStep': '\\uF3AC',\n 'TestParameter': '\\uF3AD',\n 'TestSuite': '\\uF3AE',\n 'TestCase': '\\uF3AF',\n 'Sprint': '\\uF3B0',\n 'SignOut': '\\uF3B1',\n 'TriggerApproval': '\\uF3B2',\n 'Rocket': '\\uF3B3',\n 'AzureKeyVault': '\\uF3B4',\n 'Onboarding': '\\uF3BA',\n 'Transition': '\\uF3BC',\n 'LikeSolid': '\\uF3BF',\n 'DislikeSolid': '\\uF3C0',\n 'CRMCustomerInsightsApp': '\\uF3C8',\n 'EditCreate': '\\uF3C9',\n 'PlayReverseResume': '\\uF3E4',\n 'PlayReverse': '\\uF3E5',\n 'SearchData': '\\uF3F1',\n 'UnSetColor': '\\uF3F9',\n 'DeclineCall': '\\uF405'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-12.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-13\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-13-c3989a02.woff') format('woff')\")\n },\n icons: {\n 'RectangularClipping': '\\uF407',\n 'TeamsLogo16': '\\uF40A',\n 'TeamsLogoFill16': '\\uF40B',\n 'Spacer': '\\uF40D',\n 'SkypeLogo16': '\\uF40E',\n 'SkypeForBusinessLogo16': '\\uF40F',\n 'SkypeForBusinessLogoFill16': '\\uF410',\n 'FilterSolid': '\\uF412',\n 'MailUndelivered': '\\uF415',\n 'MailTentative': '\\uF416',\n 'MailTentativeMirrored': '\\uF417',\n 'MailReminder': '\\uF418',\n 'ReceiptUndelivered': '\\uF419',\n 'ReceiptTentative': '\\uF41A',\n 'ReceiptTentativeMirrored': '\\uF41B',\n 'Inbox': '\\uF41C',\n 'IRMReply': '\\uF41D',\n 'IRMReplyMirrored': '\\uF41E',\n 'IRMForward': '\\uF41F',\n 'IRMForwardMirrored': '\\uF420',\n 'VoicemailIRM': '\\uF421',\n 'EventAccepted': '\\uF422',\n 'EventTentative': '\\uF423',\n 'EventTentativeMirrored': '\\uF424',\n 'EventDeclined': '\\uF425',\n 'IDBadge': '\\uF427',\n 'BackgroundColor': '\\uF42B',\n 'OfficeFormsLogoInverse16': '\\uF433',\n 'OfficeFormsLogo': '\\uF434',\n 'OfficeFormsLogoFill': '\\uF435',\n 'OfficeFormsLogo16': '\\uF436',\n 'OfficeFormsLogoFill16': '\\uF437',\n 'OfficeFormsLogoInverse24': '\\uF43A',\n 'OfficeFormsLogo24': '\\uF43B',\n 'OfficeFormsLogoFill24': '\\uF43C',\n 'PageLock': '\\uF43F',\n 'NotExecuted': '\\uF440',\n 'NotImpactedSolid': '\\uF441',\n 'FieldReadOnly': '\\uF442',\n 'FieldRequired': '\\uF443',\n 'BacklogBoard': '\\uF444',\n 'ExternalBuild': '\\uF445',\n 'ExternalTFVC': '\\uF446',\n 'ExternalXAML': '\\uF447',\n 'IssueSolid': '\\uF448',\n 'DefectSolid': '\\uF449',\n 'LadybugSolid': '\\uF44A',\n 'NugetLogo': '\\uF44C',\n 'TFVCLogo': '\\uF44D',\n 'ProjectLogo32': '\\uF47E',\n 'ProjectLogoFill32': '\\uF47F',\n 'ProjectLogo16': '\\uF480',\n 'ProjectLogoFill16': '\\uF481',\n 'SwayLogo32': '\\uF482',\n 'SwayLogoFill32': '\\uF483',\n 'SwayLogo16': '\\uF484',\n 'SwayLogoFill16': '\\uF485',\n 'ClassNotebookLogo32': '\\uF486',\n 'ClassNotebookLogoFill32': '\\uF487',\n 'ClassNotebookLogo16': '\\uF488',\n 'ClassNotebookLogoFill16': '\\uF489',\n 'ClassNotebookLogoInverse32': '\\uF48A',\n 'ClassNotebookLogoInverse16': '\\uF48B',\n 'StaffNotebookLogo32': '\\uF48C',\n 'StaffNotebookLogoFill32': '\\uF48D',\n 'StaffNotebookLogo16': '\\uF48E',\n 'StaffNotebookLogoFill16': '\\uF48F',\n 'StaffNotebookLogoInverted32': '\\uF490',\n 'StaffNotebookLogoInverted16': '\\uF491',\n 'KaizalaLogo': '\\uF492',\n 'TaskLogo': '\\uF493',\n 'ProtectionCenterLogo32': '\\uF494',\n 'GallatinLogo': '\\uF496',\n 'Globe2': '\\uF49A',\n 'Guitar': '\\uF49B',\n 'Breakfast': '\\uF49C',\n 'Brunch': '\\uF49D',\n 'BeerMug': '\\uF49E',\n 'Vacation': '\\uF49F',\n 'Teeth': '\\uF4A0',\n 'Taxi': '\\uF4A1',\n 'Chopsticks': '\\uF4A2',\n 'SyncOccurence': '\\uF4A3',\n 'UnsyncOccurence': '\\uF4A4',\n 'GIF': '\\uF4A9',\n 'PrimaryCalendar': '\\uF4AE',\n 'SearchCalendar': '\\uF4AF',\n 'VideoOff': '\\uF4B0',\n 'MicrosoftFlowLogo': '\\uF4B1',\n 'BusinessCenterLogo': '\\uF4B2',\n 'ToDoLogoBottom': '\\uF4B3',\n 'ToDoLogoTop': '\\uF4B4',\n 'EditSolid12': '\\uF4B5',\n 'EditSolidMirrored12': '\\uF4B6',\n 'UneditableSolid12': '\\uF4B7',\n 'UneditableSolidMirrored12': '\\uF4B8',\n 'UneditableMirrored': '\\uF4B9',\n 'AdminALogo32': '\\uF4BA',\n 'AdminALogoFill32': '\\uF4BB',\n 'ToDoLogoInverse': '\\uF4BC'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-13.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-14\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-14-5cf58db8.woff') format('woff')\")\n },\n icons: {\n 'Snooze': '\\uF4BD',\n 'WaffleOffice365': '\\uF4E0',\n 'ImageSearch': '\\uF4E8',\n 'NewsSearch': '\\uF4E9',\n 'VideoSearch': '\\uF4EA',\n 'R': '\\uF4EB',\n 'FontColorA': '\\uF4EC',\n 'FontColorSwatch': '\\uF4ED',\n 'LightWeight': '\\uF4EE',\n 'NormalWeight': '\\uF4EF',\n 'SemiboldWeight': '\\uF4F0',\n 'GroupObject': '\\uF4F1',\n 'UngroupObject': '\\uF4F2',\n 'AlignHorizontalLeft': '\\uF4F3',\n 'AlignHorizontalCenter': '\\uF4F4',\n 'AlignHorizontalRight': '\\uF4F5',\n 'AlignVerticalTop': '\\uF4F6',\n 'AlignVerticalCenter': '\\uF4F7',\n 'AlignVerticalBottom': '\\uF4F8',\n 'HorizontalDistributeCenter': '\\uF4F9',\n 'VerticalDistributeCenter': '\\uF4FA',\n 'Ellipse': '\\uF4FB',\n 'Line': '\\uF4FC',\n 'Octagon': '\\uF4FD',\n 'Hexagon': '\\uF4FE',\n 'Pentagon': '\\uF4FF',\n 'RightTriangle': '\\uF500',\n 'HalfCircle': '\\uF501',\n 'QuarterCircle': '\\uF502',\n 'ThreeQuarterCircle': '\\uF503',\n '6PointStar': '\\uF504',\n '12PointStar': '\\uF505',\n 'ArrangeBringToFront': '\\uF506',\n 'ArrangeSendToBack': '\\uF507',\n 'ArrangeSendBackward': '\\uF508',\n 'ArrangeBringForward': '\\uF509',\n 'BorderDash': '\\uF50A',\n 'BorderDot': '\\uF50B',\n 'LineStyle': '\\uF50C',\n 'LineThickness': '\\uF50D',\n 'WindowEdit': '\\uF50E',\n 'HintText': '\\uF50F',\n 'MediaAdd': '\\uF510',\n 'AnchorLock': '\\uF511',\n 'AutoHeight': '\\uF512',\n 'ChartSeries': '\\uF513',\n 'ChartXAngle': '\\uF514',\n 'ChartYAngle': '\\uF515',\n 'Combobox': '\\uF516',\n 'LineSpacing': '\\uF517',\n 'Padding': '\\uF518',\n 'PaddingTop': '\\uF519',\n 'PaddingBottom': '\\uF51A',\n 'PaddingLeft': '\\uF51B',\n 'PaddingRight': '\\uF51C',\n 'NavigationFlipper': '\\uF51D',\n 'AlignJustify': '\\uF51E',\n 'TextOverflow': '\\uF51F',\n 'VisualsFolder': '\\uF520',\n 'VisualsStore': '\\uF521',\n 'PictureCenter': '\\uF522',\n 'PictureFill': '\\uF523',\n 'PicturePosition': '\\uF524',\n 'PictureStretch': '\\uF525',\n 'PictureTile': '\\uF526',\n 'Slider': '\\uF527',\n 'SliderHandleSize': '\\uF528',\n 'DefaultRatio': '\\uF529',\n 'NumberSequence': '\\uF52A',\n 'GUID': '\\uF52B',\n 'ReportAdd': '\\uF52C',\n 'DashboardAdd': '\\uF52D',\n 'MapPinSolid': '\\uF52E',\n 'WebPublish': '\\uF52F',\n 'PieSingleSolid': '\\uF530',\n 'BlockedSolid': '\\uF531',\n 'DrillDown': '\\uF532',\n 'DrillDownSolid': '\\uF533',\n 'DrillExpand': '\\uF534',\n 'DrillShow': '\\uF535',\n 'SpecialEvent': '\\uF536',\n 'OneDriveFolder16': '\\uF53B',\n 'FunctionalManagerDashboard': '\\uF542',\n 'BIDashboard': '\\uF543',\n 'CodeEdit': '\\uF544',\n 'RenewalCurrent': '\\uF545',\n 'RenewalFuture': '\\uF546',\n 'SplitObject': '\\uF547',\n 'BulkUpload': '\\uF548',\n 'DownloadDocument': '\\uF549',\n 'GreetingCard': '\\uF54B',\n 'Flower': '\\uF54E',\n 'WaitlistConfirm': '\\uF550',\n 'WaitlistConfirmMirrored': '\\uF551',\n 'LaptopSecure': '\\uF552',\n 'DragObject': '\\uF553',\n 'EntryView': '\\uF554',\n 'EntryDecline': '\\uF555',\n 'ContactCardSettings': '\\uF556',\n 'ContactCardSettingsMirrored': '\\uF557'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-14.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-15\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-15-3807251b.woff') format('woff')\")\n },\n icons: {\n 'CalendarSettings': '\\uF558',\n 'CalendarSettingsMirrored': '\\uF559',\n 'HardDriveLock': '\\uF55A',\n 'HardDriveUnlock': '\\uF55B',\n 'AccountManagement': '\\uF55C',\n 'ReportWarning': '\\uF569',\n 'TransitionPop': '\\uF5B2',\n 'TransitionPush': '\\uF5B3',\n 'TransitionEffect': '\\uF5B4',\n 'LookupEntities': '\\uF5B5',\n 'ExploreData': '\\uF5B6',\n 'AddBookmark': '\\uF5B7',\n 'SearchBookmark': '\\uF5B8',\n 'DrillThrough': '\\uF5B9',\n 'MasterDatabase': '\\uF5BA',\n 'CertifiedDatabase': '\\uF5BB',\n 'MaximumValue': '\\uF5BC',\n 'MinimumValue': '\\uF5BD',\n 'VisualStudioIDELogo32': '\\uF5D0',\n 'PasteAsText': '\\uF5D5',\n 'PasteAsCode': '\\uF5D6',\n 'BrowserTab': '\\uF5D7',\n 'BrowserTabScreenshot': '\\uF5D8',\n 'DesktopScreenshot': '\\uF5D9',\n 'FileYML': '\\uF5DA',\n 'ClipboardSolid': '\\uF5DC',\n 'FabricUserFolder': '\\uF5E5',\n 'FabricNetworkFolder': '\\uF5E6',\n 'BullseyeTarget': '\\uF5F0',\n 'AnalyticsView': '\\uF5F1',\n 'Video360Generic': '\\uF609',\n 'Untag': '\\uF60B',\n 'Leave': '\\uF627',\n 'Trending12': '\\uF62D',\n 'Blocked12': '\\uF62E',\n 'Warning12': '\\uF62F',\n 'CheckedOutByOther12': '\\uF630',\n 'CheckedOutByYou12': '\\uF631',\n 'CircleShapeSolid': '\\uF63C',\n 'SquareShapeSolid': '\\uF63D',\n 'TriangleShapeSolid': '\\uF63E',\n 'DropShapeSolid': '\\uF63F',\n 'RectangleShapeSolid': '\\uF640',\n 'ZoomToFit': '\\uF649',\n 'InsertColumnsLeft': '\\uF64A',\n 'InsertColumnsRight': '\\uF64B',\n 'InsertRowsAbove': '\\uF64C',\n 'InsertRowsBelow': '\\uF64D',\n 'DeleteColumns': '\\uF64E',\n 'DeleteRows': '\\uF64F',\n 'DeleteRowsMirrored': '\\uF650',\n 'DeleteTable': '\\uF651',\n 'AccountBrowser': '\\uF652',\n 'VersionControlPush': '\\uF664',\n 'StackedColumnChart2': '\\uF666',\n 'TripleColumnWide': '\\uF66E',\n 'QuadColumn': '\\uF66F',\n 'WhiteBoardApp16': '\\uF673',\n 'WhiteBoardApp32': '\\uF674',\n 'PinnedSolid': '\\uF676',\n 'InsertSignatureLine': '\\uF677',\n 'ArrangeByFrom': '\\uF678',\n 'Phishing': '\\uF679',\n 'CreateMailRule': '\\uF67A',\n 'PublishCourse': '\\uF699',\n 'DictionaryRemove': '\\uF69A',\n 'UserRemove': '\\uF69B',\n 'UserEvent': '\\uF69C',\n 'Encryption': '\\uF69D',\n 'PasswordField': '\\uF6AA',\n 'OpenInNewTab': '\\uF6AB',\n 'Hide3': '\\uF6AC',\n 'VerifiedBrandSolid': '\\uF6AD',\n 'MarkAsProtected': '\\uF6AE',\n 'AuthenticatorApp': '\\uF6B1',\n 'WebTemplate': '\\uF6B2',\n 'DefenderTVM': '\\uF6B3',\n 'MedalSolid': '\\uF6B9',\n 'D365TalentLearn': '\\uF6BB',\n 'D365TalentInsight': '\\uF6BC',\n 'D365TalentHRCore': '\\uF6BD',\n 'BacklogList': '\\uF6BF',\n 'ButtonControl': '\\uF6C0',\n 'TableGroup': '\\uF6D9',\n 'MountainClimbing': '\\uF6DB',\n 'TagUnknown': '\\uF6DF',\n 'TagUnknownMirror': '\\uF6E0',\n 'TagUnknown12': '\\uF6E1',\n 'TagUnknown12Mirror': '\\uF6E2',\n 'Link12': '\\uF6E3',\n 'Presentation': '\\uF6E4',\n 'Presentation12': '\\uF6E5',\n 'Lock12': '\\uF6E6',\n 'BuildDefinition': '\\uF6E9',\n 'ReleaseDefinition': '\\uF6EA',\n 'SaveTemplate': '\\uF6EC',\n 'UserGauge': '\\uF6ED',\n 'BlockedSiteSolid12': '\\uF70A',\n 'TagSolid': '\\uF70E',\n 'OfficeChat': '\\uF70F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-15.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-16\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-16-9cf93f3b.woff') format('woff')\")\n },\n icons: {\n 'OfficeChatSolid': '\\uF710',\n 'MailSchedule': '\\uF72E',\n 'WarningSolid': '\\uF736',\n 'Blocked2Solid': '\\uF737',\n 'SkypeCircleArrow': '\\uF747',\n 'SkypeArrow': '\\uF748',\n 'SyncStatus': '\\uF751',\n 'SyncStatusSolid': '\\uF752',\n 'ProjectDocument': '\\uF759',\n 'ToDoLogoOutline': '\\uF75B',\n 'VisioOnlineLogoFill32': '\\uF75F',\n 'VisioOnlineLogo32': '\\uF760',\n 'VisioOnlineLogoCloud32': '\\uF761',\n 'VisioDiagramSync': '\\uF762',\n 'Event12': '\\uF763',\n 'EventDateMissed12': '\\uF764',\n 'UserOptional': '\\uF767',\n 'ResponsesMenu': '\\uF768',\n 'DoubleDownArrow': '\\uF769',\n 'DistributeDown': '\\uF76A',\n 'BookmarkReport': '\\uF76B',\n 'FilterSettings': '\\uF76C',\n 'GripperDotsVertical': '\\uF772',\n 'MailAttached': '\\uF774',\n 'AddIn': '\\uF775',\n 'LinkedDatabase': '\\uF779',\n 'TableLink': '\\uF77A',\n 'PromotedDatabase': '\\uF77D',\n 'BarChartVerticalFilter': '\\uF77E',\n 'BarChartVerticalFilterSolid': '\\uF77F',\n 'MicOff2': '\\uF781',\n 'MicrosoftTranslatorLogo': '\\uF782',\n 'ShowTimeAs': '\\uF787',\n 'FileRequest': '\\uF789',\n 'WorkItemAlert': '\\uF78F',\n 'PowerBILogo16': '\\uF790',\n 'PowerBILogoBackplate16': '\\uF791',\n 'BulletedListText': '\\uF792',\n 'BulletedListBullet': '\\uF793',\n 'BulletedListTextMirrored': '\\uF794',\n 'BulletedListBulletMirrored': '\\uF795',\n 'NumberedListText': '\\uF796',\n 'NumberedListNumber': '\\uF797',\n 'NumberedListTextMirrored': '\\uF798',\n 'NumberedListNumberMirrored': '\\uF799',\n 'RemoveLinkChain': '\\uF79A',\n 'RemoveLinkX': '\\uF79B',\n 'FabricTextHighlight': '\\uF79C',\n 'ClearFormattingA': '\\uF79D',\n 'ClearFormattingEraser': '\\uF79E',\n 'Photo2Fill': '\\uF79F',\n 'IncreaseIndentText': '\\uF7A0',\n 'IncreaseIndentArrow': '\\uF7A1',\n 'DecreaseIndentText': '\\uF7A2',\n 'DecreaseIndentArrow': '\\uF7A3',\n 'IncreaseIndentTextMirrored': '\\uF7A4',\n 'IncreaseIndentArrowMirrored': '\\uF7A5',\n 'DecreaseIndentTextMirrored': '\\uF7A6',\n 'DecreaseIndentArrowMirrored': '\\uF7A7',\n 'CheckListText': '\\uF7A8',\n 'CheckListCheck': '\\uF7A9',\n 'CheckListTextMirrored': '\\uF7AA',\n 'CheckListCheckMirrored': '\\uF7AB',\n 'NumberSymbol': '\\uF7AC',\n 'Coupon': '\\uF7BC',\n 'VerifiedBrand': '\\uF7BD',\n 'ReleaseGate': '\\uF7BE',\n 'ReleaseGateCheck': '\\uF7BF',\n 'ReleaseGateError': '\\uF7C0',\n 'M365InvoicingLogo': '\\uF7C1',\n 'RemoveFromShoppingList': '\\uF7D5',\n 'ShieldAlert': '\\uF7D7',\n 'FabricTextHighlightComposite': '\\uF7DA',\n 'Dataflows': '\\uF7DD',\n 'GenericScanFilled': '\\uF7DE',\n 'DiagnosticDataBarTooltip': '\\uF7DF',\n 'SaveToMobile': '\\uF7E0',\n 'Orientation2': '\\uF7E1',\n 'ScreenCast': '\\uF7E2',\n 'ShowGrid': '\\uF7E3',\n 'SnapToGrid': '\\uF7E4',\n 'ContactList': '\\uF7E5',\n 'NewMail': '\\uF7EA',\n 'EyeShadow': '\\uF7EB',\n 'FabricFolderConfirm': '\\uF7FF',\n 'InformationBarriers': '\\uF803',\n 'CommentActive': '\\uF804',\n 'ColumnVerticalSectionEdit': '\\uF806',\n 'WavingHand': '\\uF807',\n 'ShakeDevice': '\\uF80A',\n 'SmartGlassRemote': '\\uF80B',\n 'Rotate90Clockwise': '\\uF80D',\n 'Rotate90CounterClockwise': '\\uF80E',\n 'CampaignTemplate': '\\uF811',\n 'ChartTemplate': '\\uF812',\n 'PageListFilter': '\\uF813',\n 'SecondaryNav': '\\uF814',\n 'ColumnVerticalSection': '\\uF81E',\n 'SkypeCircleSlash': '\\uF825',\n 'SkypeSlash': '\\uF826'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-16.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-17\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-17-0c4ed701.woff') format('woff')\")\n },\n icons: {\n 'CustomizeToolbar': '\\uF828',\n 'DuplicateRow': '\\uF82A',\n 'RemoveFromTrash': '\\uF82B',\n 'MailOptions': '\\uF82C',\n 'Childof': '\\uF82D',\n 'Footer': '\\uF82E',\n 'Header': '\\uF82F',\n 'BarChartVerticalFill': '\\uF830',\n 'StackedColumnChart2Fill': '\\uF831',\n 'PlainText': '\\uF834',\n 'AccessibiltyChecker': '\\uF835',\n 'DatabaseSync': '\\uF842',\n 'ReservationOrders': '\\uF845',\n 'TabOneColumn': '\\uF849',\n 'TabTwoColumn': '\\uF84A',\n 'TabThreeColumn': '\\uF84B',\n 'BulletedTreeList': '\\uF84C',\n 'MicrosoftTranslatorLogoGreen': '\\uF852',\n 'MicrosoftTranslatorLogoBlue': '\\uF853',\n 'InternalInvestigation': '\\uF854',\n 'AddReaction': '\\uF85D',\n 'ContactHeart': '\\uF862',\n 'VisuallyImpaired': '\\uF866',\n 'EventToDoLogo': '\\uF869',\n 'Variable2': '\\uF86D',\n 'ModelingView': '\\uF871',\n 'DisconnectVirtualMachine': '\\uF873',\n 'ReportLock': '\\uF875',\n 'Uneditable2': '\\uF876',\n 'Uneditable2Mirrored': '\\uF877',\n 'BarChartVerticalEdit': '\\uF89D',\n 'GlobalNavButtonActive': '\\uF89F',\n 'PollResults': '\\uF8A0',\n 'Rerun': '\\uF8A1',\n 'QandA': '\\uF8A2',\n 'QandAMirror': '\\uF8A3',\n 'BookAnswers': '\\uF8A4',\n 'AlertSettings': '\\uF8B6',\n 'TrimStart': '\\uF8BB',\n 'TrimEnd': '\\uF8BC',\n 'TableComputed': '\\uF8F5',\n 'DecreaseIndentLegacy': '\\uE290',\n 'IncreaseIndentLegacy': '\\uE291',\n 'SizeLegacy': '\\uE2B2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-17.js.map","import { registerIconAlias } from '@fluentui/style-utilities';\nexport var registerIconAliases = function () {\n registerIconAlias('trash', 'delete');\n registerIconAlias('onedrive', 'onedrivelogo');\n registerIconAlias('alertsolid12', 'eventdatemissed12');\n registerIconAlias('sixpointstar', '6pointstar');\n registerIconAlias('twelvepointstar', '12pointstar');\n registerIconAlias('toggleon', 'toggleleft');\n registerIconAlias('toggleoff', 'toggleright');\n};\nexport default registerIconAliases;\n//# sourceMappingURL=iconAliases.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/font-icons-mdl2', '8.5.22');\n//# sourceMappingURL=version.js.map","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\nimport { FLUENT_CDN_BASE_URL } from '@fluentui/style-utilities';\nimport { registerIconAliases } from './iconAliases';\nimport { getWindow } from '@fluentui/utilities';\nvar DEFAULT_BASE_URL = \"\".concat(FLUENT_CDN_BASE_URL, \"/assets/icons/\");\nvar win = getWindow();\nexport function initializeIcons(baseUrl, options) {\n var _a, _b;\n if (baseUrl === void 0) { baseUrl = ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.iconBaseUrl) || ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.fontBaseUrl) || DEFAULT_BASE_URL; }\n [i, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17].forEach(function (initialize) { return initialize(baseUrl, options); });\n registerIconAliases();\n}\n/* eslint-enable deprecation/deprecation */\nimport './version';\n//# sourceMappingURL=index.js.map","/**\n * {@docCategory MessageBar}\n */\nexport var MessageBarType;\n(function (MessageBarType) {\n /** Info styled MessageBar */\n MessageBarType[MessageBarType[\"info\"] = 0] = \"info\";\n /** Error styled MessageBar */\n MessageBarType[MessageBarType[\"error\"] = 1] = \"error\";\n /** Blocked styled MessageBar */\n MessageBarType[MessageBarType[\"blocked\"] = 2] = \"blocked\";\n /** SevereWarning styled MessageBar */\n MessageBarType[MessageBarType[\"severeWarning\"] = 3] = \"severeWarning\";\n /** Success styled MessageBar */\n MessageBarType[MessageBarType[\"success\"] = 4] = \"success\";\n /** Warning styled MessageBar */\n MessageBarType[MessageBarType[\"warning\"] = 5] = \"warning\";\n})(MessageBarType || (MessageBarType = {}));\n//# sourceMappingURL=MessageBar.types.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, htmlElementProperties, css } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nimport { MessageBarType } from './MessageBar.types';\nimport { useId, useBoolean } from '@fluentui/react-hooks';\nvar ICON_MAP = (_a = {},\n _a[MessageBarType.info] = 'Info',\n _a[MessageBarType.warning] = 'Info',\n _a[MessageBarType.error] = 'ErrorBadge',\n _a[MessageBarType.blocked] = 'Blocked2',\n _a[MessageBarType.severeWarning] = 'Warning',\n _a[MessageBarType.success] = 'Completed',\n _a);\nvar COMPONENT_NAME = 'MessageBar';\nvar getClassNames = classNamesFunction();\nvar getAnnouncementPriority = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'assertive';\n }\n return 'polite';\n};\nvar getRole = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'alert';\n }\n return 'status';\n};\nexport var MessageBarBase = React.forwardRef(function (props, ref) {\n var _a = useBoolean(false), expandSingleLine = _a[0], toggleExpandSingleLine = _a[1].toggle;\n var labelId = useId('MessageBar');\n var actions = props.actions, className = props.className, children = props.children, \n // eslint-disable-next-line deprecation/deprecation\n overflowButtonAriaLabel = props.overflowButtonAriaLabel, dismissIconProps = props.dismissIconProps, styles = props.styles, theme = props.theme, _b = props.messageBarType, messageBarType = _b === void 0 ? MessageBarType.info : _b, _c = props.onDismiss, onDismiss = _c === void 0 ? undefined : _c, _d = props.isMultiline, isMultiline = _d === void 0 ? true : _d, truncated = props.truncated, dismissButtonAriaLabel = props.dismissButtonAriaLabel, messageBarIconProps = props.messageBarIconProps, role = props.role, _e = props.delayedRender, delayedRender = _e === void 0 ? true : _e, expandButtonProps = props.expandButtonProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'className',\n 'role',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n messageBarType: messageBarType || MessageBarType.info,\n onDismiss: onDismiss !== undefined,\n actions: actions !== undefined,\n truncated: truncated,\n isMultiline: isMultiline,\n expandSingleLine: expandSingleLine,\n className: className,\n });\n var expandIconProps = { iconName: expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' };\n var regionProps = actions || onDismiss ? { 'aria-describedby': labelId, role: 'region' } : {};\n var actionsDiv = actions ? React.createElement(\"div\", { className: classNames.actions }, actions) : null;\n var dismissButton = onDismiss ? (React.createElement(IconButton, { disabled: false, className: classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: dismissButtonAriaLabel, ariaLabel: dismissButtonAriaLabel })) : null;\n return (React.createElement(\"div\", __assign({ ref: ref, className: classNames.root }, regionProps),\n React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.iconContainer, \"aria-hidden\": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: ICON_MAP[messageBarType], className: classNames.icon }))),\n React.createElement(\"div\", { className: classNames.text, id: labelId, role: role || getRole(messageBarType), \"aria-live\": getAnnouncementPriority(messageBarType) },\n React.createElement(\"span\", __assign({ className: classNames.innerText }, nativeProps), delayedRender ? (React.createElement(DelayedRender, null,\n React.createElement(\"span\", null, children))) : (\n // this span is probably not necessary, but preserving it for now in case anyone\n // has styling that expects it to be present\n React.createElement(\"span\", null, children)))),\n /* singleline expand/collapse button */ !isMultiline && !actionsDiv && truncated && (React.createElement(\"div\", { className: classNames.expandSingleLine },\n React.createElement(IconButton, __assign({ disabled: false, className: classNames.expand, onClick: toggleExpandSingleLine, iconProps: expandIconProps, ariaLabel: overflowButtonAriaLabel, \"aria-expanded\": expandSingleLine }, expandButtonProps)))),\n !isMultiline && actionsDiv,\n /* singleline dismiss */ !isMultiline && dismissButton && (React.createElement(\"div\", { className: classNames.dismissSingleLine }, dismissButton)),\n isMultiline && dismissButton),\n isMultiline && actionsDiv));\n});\nMessageBarBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MessageBar.base.js.map","var _a, _b, _c, _d;\nimport { __assign } from \"tslib\";\nimport { HighContrastSelector, HighContrastSelectorWhite, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { MessageBarType } from './MessageBar.types';\nvar GlobalClassNames = {\n root: 'ms-MessageBar',\n error: 'ms-MessageBar--error',\n blocked: 'ms-MessageBar--blocked',\n severeWarning: 'ms-MessageBar--severeWarning',\n success: 'ms-MessageBar--success',\n warning: 'ms-MessageBar--warning',\n multiline: 'ms-MessageBar-multiline',\n singleline: 'ms-MessageBar-singleline',\n dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',\n expandingSingleLine: 'ms-MessageBar-expandingSingleLine',\n content: 'ms-MessageBar-content',\n iconContainer: 'ms-MessageBar-icon',\n text: 'ms-MessageBar-text',\n innerText: 'ms-MessageBar-innerText',\n dismissSingleLine: 'ms-MessageBar-dismissSingleLine',\n expandSingleLine: 'ms-MessageBar-expandSingleLine',\n dismissal: 'ms-MessageBar-dismissal',\n expand: 'ms-MessageBar-expand',\n actions: 'ms-MessageBar-actions',\n actionsSingleline: 'ms-MessageBar-actionsSingleLine',\n};\nvar backgroundColor = (_a = {},\n _a[MessageBarType.error] = 'errorBackground',\n _a[MessageBarType.blocked] = 'errorBackground',\n _a[MessageBarType.success] = 'successBackground',\n _a[MessageBarType.warning] = 'warningBackground',\n _a[MessageBarType.severeWarning] = 'severeWarningBackground',\n _a[MessageBarType.info] = 'infoBackground',\n _a);\nvar iconColor = (_b = {},\n _b[MessageBarType.error] = 'errorIcon',\n _b[MessageBarType.blocked] = 'errorIcon',\n _b[MessageBarType.success] = 'successIcon',\n _b[MessageBarType.warning] = 'warningIcon',\n _b[MessageBarType.severeWarning] = 'severeWarningIcon',\n _b[MessageBarType.info] = 'infoIcon',\n _b);\nvar highContrastBorderColor = (_c = {},\n _c[MessageBarType.error] = '#ff0000',\n _c[MessageBarType.blocked] = '#ff0000',\n _c[MessageBarType.success] = '#bad80a',\n _c[MessageBarType.warning] = '#fff100',\n _c[MessageBarType.severeWarning] = '#ff0000',\n _c[MessageBarType.info] = 'WindowText',\n _c);\nvar highContrastWhiteBorderColor = (_d = {},\n _d[MessageBarType.error] = '#e81123',\n _d[MessageBarType.blocked] = '#e81123',\n _d[MessageBarType.success] = '#107c10',\n _d[MessageBarType.warning] = '#966400',\n _d[MessageBarType.severeWarning] = '#d83b01',\n _d[MessageBarType.info] = 'WindowText',\n _d);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _m = props.messageBarType, messageBarType = _m === void 0 ? MessageBarType.info : _m;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var dismissalAndExpandIconStyle = {\n fontSize: IconFontSizes.xSmall,\n height: 10,\n lineHeight: '10px',\n color: semanticColors.messageText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _a),\n };\n var dismissalAndExpandStyle = [\n getFocusStyle(theme, {\n inset: 1,\n highContrastStyle: {\n outlineOffset: '-6px',\n outline: '1px solid Highlight',\n },\n borderColor: 'transparent',\n }),\n {\n flexShrink: 0,\n width: 32,\n height: 32,\n padding: '8px 12px',\n selectors: {\n '& .ms-Button-icon': dismissalAndExpandIconStyle,\n ':hover': {\n backgroundColor: 'transparent',\n },\n ':active': {\n backgroundColor: 'transparent',\n },\n },\n },\n ];\n return {\n root: [\n classNames.root,\n fonts.medium,\n messageBarType === MessageBarType.error && classNames.error,\n messageBarType === MessageBarType.blocked && classNames.blocked,\n messageBarType === MessageBarType.severeWarning && classNames.severeWarning,\n messageBarType === MessageBarType.success && classNames.success,\n messageBarType === MessageBarType.warning && classNames.warning,\n isMultiline ? classNames.multiline : classNames.singleline,\n !isMultiline && onDismiss && classNames.dismissalSingleLine,\n !isMultiline && truncated && classNames.expandingSingleLine,\n {\n background: semanticColors[backgroundColor[messageBarType]],\n boxSizing: 'border-box',\n color: semanticColors.messageText,\n minHeight: 32,\n width: '100%',\n display: 'flex',\n wordBreak: 'break-word',\n selectors: (_b = {\n '.ms-Link': {\n color: semanticColors.messageLink,\n selectors: {\n ':hover': {\n color: semanticColors.messageLinkHovered,\n },\n },\n }\n },\n _b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: 'transparent', border: \"1px solid \".concat(highContrastBorderColor[messageBarType]), color: 'WindowText' }),\n _b[HighContrastSelectorWhite] = {\n border: \"1px solid \".concat(highContrastWhiteBorderColor[messageBarType]),\n },\n _b),\n },\n isMultiline && {\n flexDirection: 'column',\n },\n className,\n ],\n content: [\n classNames.content,\n (_c = {\n display: 'flex',\n width: '100%',\n lineHeight: 'normal'\n },\n _c[SmallScreenSelector] = {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr auto',\n gridTemplateRows: '1fr auto',\n gridTemplateAreas: \"\\n \\\"icon text close\\\"\\n \\\"action action action\\\"\\n \",\n },\n _c),\n ],\n iconContainer: [\n classNames.iconContainer,\n (_d = {\n fontSize: IconFontSizes.medium,\n minWidth: 16,\n minHeight: 16,\n display: 'flex',\n flexShrink: 0,\n margin: '8px 0 8px 12px'\n },\n _d[SmallScreenSelector] = {\n gridArea: 'icon',\n },\n _d),\n ],\n icon: {\n color: semanticColors[iconColor[messageBarType]],\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _e),\n },\n text: [\n classNames.text,\n __assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), (_f = {}, _f[SmallScreenSelector] = {\n gridArea: 'text',\n }, _f.selectors = (_g = {},\n _g[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _g), _f)),\n !onDismiss && {\n marginRight: 12,\n },\n ],\n innerText: [\n classNames.innerText,\n {\n lineHeight: 16,\n selectors: {\n '& span a:last-child': {\n paddingLeft: 4,\n },\n },\n },\n truncated && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n !isMultiline && {\n // In high contrast this causes the top and bottom of links' focus outline to be clipped\n // (not sure of a good way around that while still maintaining text clipping)\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n !isMultiline &&\n !truncated && {\n selectors: (_h = {},\n _h[SmallScreenSelector] = {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n _h),\n },\n expandSingleLine && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n ],\n dismissSingleLine: [\n classNames.dismissSingleLine,\n (_j = {},\n _j[SmallScreenSelector] = {\n gridArea: 'close',\n },\n _j),\n ],\n expandSingleLine: classNames.expandSingleLine,\n dismissal: [classNames.dismissal, dismissalAndExpandStyle],\n expand: [classNames.expand, dismissalAndExpandStyle],\n actions: [\n isMultiline ? classNames.actions : classNames.actionsSingleline,\n (_k = {\n display: 'flex',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n margin: '0 12px 0 8px',\n // reset forced colors to browser control for inner actions\n forcedColorAdjust: 'auto',\n MsHighContrastAdjust: 'auto'\n },\n _k[SmallScreenSelector] = {\n gridArea: 'action',\n marginRight: 8,\n marginBottom: 8,\n },\n _k.selectors = {\n '& button:nth-child(n+2)': (_l = {\n marginLeft: 8\n },\n _l[SmallScreenSelector] = {\n marginBottom: 0,\n },\n _l),\n },\n _k),\n isMultiline && {\n marginBottom: 8,\n },\n onDismiss &&\n !isMultiline && {\n marginRight: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=MessageBar.styles.js.map","import { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nexport var MessageBar = styled(MessageBarBase, getStyles, undefined, {\n scope: 'MessageBar',\n});\n//# sourceMappingURL=MessageBar.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getId } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n// if the percentComplete is near 0, don't animate it.\n// This prevents animations on reset to 0 scenarios\nvar ZERO_THRESHOLD = 0.01;\n/**\n * ProgressIndicator with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nvar ProgressIndicatorBase = /** @class */ (function (_super) {\n __extends(ProgressIndicatorBase, _super);\n function ProgressIndicatorBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderProgress = function (props) {\n var _a = _this.props, ariaLabel = _a.ariaLabel, ariaValueText = _a.ariaValueText, barHeight = _a.barHeight, className = _a.className, description = _a.description, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.label, \n // eslint-disable-next-line deprecation/deprecation\n label = _b === void 0 ? _this.props.title : _b, styles = _a.styles, theme = _a.theme;\n var percentComplete = typeof _this.props.percentComplete === 'number'\n ? Math.min(100, Math.max(0, _this.props.percentComplete * 100))\n : undefined;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n barHeight: barHeight,\n indeterminate: percentComplete === undefined ? true : false,\n });\n var progressBarStyles = {\n width: percentComplete !== undefined ? percentComplete + '%' : undefined,\n transition: percentComplete !== undefined && percentComplete < ZERO_THRESHOLD ? 'none' : undefined,\n };\n var ariaValueMin = percentComplete !== undefined ? 0 : undefined;\n var ariaValueMax = percentComplete !== undefined ? 100 : undefined;\n var ariaValueNow = percentComplete !== undefined ? Math.floor(percentComplete) : undefined;\n return (React.createElement(\"div\", { className: classNames.itemProgress },\n React.createElement(\"div\", { className: classNames.progressTrack }),\n React.createElement(\"div\", { className: classNames.progressBar, style: progressBarStyles, role: \"progressbar\", \"aria-describedby\": description ? _this._descriptionId : undefined, \"aria-label\": ariaLabel, \"aria-labelledby\": label ? _this._labelId : undefined, \"aria-valuemin\": ariaValueMin, \"aria-valuemax\": ariaValueMax, \"aria-valuenow\": ariaValueNow, \"aria-valuetext\": ariaValueText })));\n };\n var id = getId('progress-indicator');\n _this._labelId = id + '-label';\n _this._descriptionId = id + '-description';\n return _this;\n }\n ProgressIndicatorBase.prototype.render = function () {\n var _a = this.props, barHeight = _a.barHeight, className = _a.className, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.label, \n // eslint-disable-next-line deprecation/deprecation\n label = _b === void 0 ? this.props.title : _b, // Fall back to deprecated value.\n description = _a.description, styles = _a.styles, theme = _a.theme, progressHidden = _a.progressHidden, _c = _a.onRenderProgress, onRenderProgress = _c === void 0 ? this._onRenderProgress : _c;\n var percentComplete = typeof this.props.percentComplete === 'number'\n ? Math.min(100, Math.max(0, this.props.percentComplete * 100))\n : undefined;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n barHeight: barHeight,\n indeterminate: percentComplete === undefined ? true : false,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n label ? (React.createElement(\"div\", { id: this._labelId, className: classNames.itemName }, label)) : null,\n !progressHidden\n ? onRenderProgress(__assign(__assign({}, this.props), { percentComplete: percentComplete }), this._onRenderProgress)\n : null,\n description ? (React.createElement(\"div\", { id: this._descriptionId, className: classNames.itemDescription }, description)) : null));\n };\n ProgressIndicatorBase.defaultProps = {\n label: '',\n description: '',\n width: 180,\n };\n return ProgressIndicatorBase;\n}(React.Component));\nexport { ProgressIndicatorBase };\n//# sourceMappingURL=ProgressIndicator.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, keyframes, noWrap, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-ProgressIndicator',\n itemName: 'ms-ProgressIndicator-itemName',\n itemDescription: 'ms-ProgressIndicator-itemDescription',\n itemProgress: 'ms-ProgressIndicator-itemProgress',\n progressTrack: 'ms-ProgressIndicator-progressTrack',\n progressBar: 'ms-ProgressIndicator-progressBar',\n};\nvar IndeterminateProgress = memoizeFunction(function () {\n return keyframes({\n '0%': {\n left: '-30%',\n },\n '100%': {\n left: '100%',\n },\n });\n});\nvar IndeterminateProgressRTL = memoizeFunction(function () {\n return keyframes({\n '100%': {\n right: '-30%',\n },\n '0%': {\n right: '100%',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var isRTL = getRTL(props.theme);\n var className = props.className, indeterminate = props.indeterminate, theme = props.theme, _d = props.barHeight, barHeight = _d === void 0 ? 2 : _d;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var marginBetweenText = 8;\n var textHeight = 18;\n var progressTrackColor = palette.neutralLight;\n return {\n root: [classNames.root, fonts.medium, className],\n itemName: [\n classNames.itemName,\n noWrap,\n {\n color: semanticColors.bodyText,\n paddingTop: marginBetweenText / 2,\n lineHeight: textHeight + 2,\n },\n ],\n itemDescription: [\n classNames.itemDescription,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.small.fontSize,\n lineHeight: textHeight,\n },\n ],\n itemProgress: [\n classNames.itemProgress,\n {\n position: 'relative',\n overflow: 'hidden',\n height: barHeight,\n padding: \"\".concat(marginBetweenText, \"px 0\"),\n },\n ],\n progressTrack: [\n classNames.progressTrack,\n {\n position: 'absolute',\n width: '100%',\n height: barHeight,\n backgroundColor: progressTrackColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderBottom: '1px solid WindowText',\n },\n _a),\n },\n ],\n progressBar: [\n {\n backgroundColor: palette.themePrimary,\n height: barHeight,\n position: 'absolute',\n transition: 'width .3s ease',\n width: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ backgroundColor: 'highlight' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n indeterminate\n ? {\n position: 'absolute',\n minWidth: '33%',\n background: \"linear-gradient(to right, \".concat(progressTrackColor, \" 0%, \") +\n \"\".concat(palette.themePrimary, \" 50%, \").concat(progressTrackColor, \" 100%)\"),\n animation: \"\".concat(isRTL ? IndeterminateProgressRTL() : IndeterminateProgress(), \" 3s infinite\"),\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n background: \"highlight\",\n },\n _c),\n }\n : {\n transition: 'width .15s linear',\n },\n classNames.progressBar,\n ],\n };\n};\n//# sourceMappingURL=ProgressIndicator.styles.js.map","import { styled } from '../../Utilities';\nimport { ProgressIndicatorBase } from './ProgressIndicator.base';\nimport { getStyles } from './ProgressIndicator.styles';\n/**\n * ProgressIndicator description\n */\nexport var ProgressIndicator = styled(ProgressIndicatorBase, getStyles, undefined, { scope: 'ProgressIndicator' });\n//# sourceMappingURL=ProgressIndicator.js.map","import { __assign } from \"tslib\";\nimport { keyframes, getGlobalClassNames, hiddenContentStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Shimmer-container',\n shimmerWrapper: 'ms-Shimmer-shimmerWrapper',\n shimmerGradient: 'ms-Shimmer-shimmerGradient',\n dataWrapper: 'ms-Shimmer-dataWrapper',\n};\nvar BACKGROUND_OFF_SCREEN_POSITION = '100%';\nvar shimmerAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n '100%': {\n transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n });\n});\nvar shimmerAnimationRTL = memoizeFunction(function () {\n return keyframes({\n '100%': {\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n '0%': {\n transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n });\n});\nexport function getStyles(props) {\n var _a;\n var isDataLoaded = props.isDataLoaded, className = props.className, theme = props.theme, transitionAnimationInterval = props.transitionAnimationInterval, shimmerColor = props.shimmerColor, shimmerWaveColor = props.shimmerWaveColor, improveCSSPerformance = props.improveCSSPerformance;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isRTL = getRTL(theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'relative',\n height: 'auto',\n },\n className,\n ],\n shimmerWrapper: [\n classNames.shimmerWrapper,\n {\n position: 'relative',\n overflow: 'hidden',\n transform: 'translateZ(0)',\n backgroundColor: shimmerColor || semanticColors.disabledBackground,\n transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ background: \"WindowText\\n linear-gradient(\\n to right,\\n transparent 0%,\\n Window 50%,\\n transparent 100%)\\n 0 0 / 90% 100%\\n no-repeat\" }, getHighContrastNoAdjustStyle()),\n _a),\n },\n isDataLoaded && {\n opacity: '0',\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n },\n improveCSSPerformance\n ? {\n selectors: {\n '> div:last-child': {\n transform: 'translateZ(0)',\n },\n },\n }\n : {\n selectors: {\n '> *': {\n transform: 'translateZ(0)',\n },\n },\n },\n ],\n shimmerGradient: [\n classNames.shimmerGradient,\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: \"\".concat(shimmerColor || semanticColors.disabledBackground, \"\\n linear-gradient(\\n to right,\\n \").concat(shimmerColor || semanticColors.disabledBackground, \" 0%,\\n \").concat(shimmerWaveColor || semanticColors.bodyDivider, \" 50%,\\n \").concat(shimmerColor || semanticColors.disabledBackground, \" 100%)\\n 0 0 / 90% 100%\\n no-repeat\"),\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n animationDuration: '2s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationIterationCount: 'infinite',\n animationName: isRTL ? shimmerAnimationRTL() : shimmerAnimation(),\n },\n ],\n dataWrapper: [\n classNames.dataWrapper,\n {\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n opacity: '0',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n },\n isDataLoaded && {\n opacity: '1',\n position: 'static',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=Shimmer.styles.js.map","/**\n * Describes the possible types for shimmer elements used.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementType;\n(function (ShimmerElementType) {\n /**\n * Line element type\n */\n ShimmerElementType[ShimmerElementType[\"line\"] = 1] = \"line\";\n /**\n * Circle element type\n */\n ShimmerElementType[ShimmerElementType[\"circle\"] = 2] = \"circle\";\n /**\n * Gap element type\n */\n ShimmerElementType[ShimmerElementType[\"gap\"] = 3] = \"gap\";\n})(ShimmerElementType || (ShimmerElementType = {}));\n/**\n * Describes the default heights for shimmer elements when omitted in implementation.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsDefaultHeights;\n(function (ShimmerElementsDefaultHeights) {\n /**\n * Default height of the line element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"line\"] = 16] = \"line\";\n /**\n * Default height of the gap element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"gap\"] = 16] = \"gap\";\n /**\n * Default height of the circle element when not provided by user: 24px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"circle\"] = 24] = \"circle\";\n})(ShimmerElementsDefaultHeights || (ShimmerElementsDefaultHeights = {}));\n//# sourceMappingURL=Shimmer.types.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerLineBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '100%' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root },\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topLeftCorner },\n React.createElement(\"path\", { d: \"M0 2 A 2 2, 0, 0, 1, 2 0 L 0 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topRightCorner },\n React.createElement(\"path\", { d: \"M0 0 A 2 2, 0, 0, 1, 2 2 L 2 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomRightCorner },\n React.createElement(\"path\", { d: \"M2 0 A 2 2, 0, 0, 1, 0 2 L 2 2 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomLeftCorner },\n React.createElement(\"path\", { d: \"M2 2 A 2 2, 0, 0, 1, 0 0 L 0 2 Z\" }))));\n};\n//# sourceMappingURL=ShimmerLine.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerLine-root',\n topLeftCorner: 'ms-ShimmerLine-topLeftCorner',\n topRightCorner: 'ms-ShimmerLine-topRightCorner',\n bottomLeftCorner: 'ms-ShimmerLine-bottomLeftCorner',\n bottomRightCorner: 'ms-ShimmerLine-bottomRightCorner',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n var sharedCornerStyles = {\n position: 'absolute',\n fill: semanticColors.bodyBackground,\n };\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n height: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n position: 'relative',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n borderWidth: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n selectors: {\n '> *': {\n fill: 'Window',\n },\n },\n },\n _a),\n },\n borderStyles,\n ],\n topLeftCorner: [\n globalClassNames.topLeftCorner,\n {\n top: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n topRightCorner: [\n globalClassNames.topRightCorner,\n {\n top: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomRightCorner: [\n globalClassNames.bottomRightCorner,\n {\n bottom: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomLeftCorner: [\n globalClassNames.bottomLeftCorner,\n {\n bottom: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerLine.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerLineBase } from './ShimmerLine.base';\nimport { getStyles } from './ShimmerLine.styles';\nexport var ShimmerLine = styled(ShimmerLineBase, getStyles, undefined, {\n scope: 'ShimmerLine',\n});\n//# sourceMappingURL=ShimmerLine.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerGapBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '10px' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root }));\n};\n//# sourceMappingURL=ShimmerGap.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerGap-root',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n backgroundColor: semanticColors.bodyBackground,\n height: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Window',\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerGap.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerGapBase } from './ShimmerGap.base';\nimport { getStyles } from './ShimmerGap.styles';\nexport var ShimmerGap = styled(ShimmerGapBase, getStyles, undefined, {\n scope: 'ShimmerGap',\n});\n//# sourceMappingURL=ShimmerGap.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerCircle-root',\n svg: 'ms-ShimmerCircle-svg',\n};\nexport function getStyles(props) {\n var _a, _b;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n width: \"\".concat(height, \"px\"),\n height: \"\".concat(height, \"px\"),\n minWidth: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n svg: [\n globalClassNames.svg,\n {\n display: 'block',\n fill: semanticColors.bodyBackground,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n fill: 'Window',\n },\n _b),\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerCircle.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var ShimmerCircleBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"svg\", { viewBox: \"0 0 10 10\", width: height, height: height, className: classNames.svg },\n React.createElement(\"path\", { d: \"M0,0 L10,0 L10,10 L0,10 L0,0 Z M0,5 C0,7.76142375 2.23857625,10 5,10 C7.76142375,10 10,7.76142375 10,5 C10,2.23857625 7.76142375,2.22044605e-16 5,0 C2.23857625,-2.22044605e-16 0,2.23857625 0,5 L0,5 Z\" }))));\n};\n//# sourceMappingURL=ShimmerCircle.base.js.map","import { styled } from '../../../Utilities';\nimport { getStyles } from './ShimmerCircle.styles';\nimport { ShimmerCircleBase } from './ShimmerCircle.base';\nexport var ShimmerCircle = styled(ShimmerCircleBase, getStyles, undefined, { scope: 'ShimmerCircle' });\n//# sourceMappingURL=ShimmerCircle.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, memoizeFunction } from '../../../Utilities';\nimport { ShimmerElementType, ShimmerElementsDefaultHeights } from '../Shimmer.types';\nimport { ShimmerLine } from '../ShimmerLine/ShimmerLine';\nimport { ShimmerGap } from '../ShimmerGap/ShimmerGap';\nimport { ShimmerCircle } from '../ShimmerCircle/ShimmerCircle';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsGroupBase = function (props) {\n var styles = props.styles, _a = props.width, width = _a === void 0 ? 'auto' : _a, shimmerElements = props.shimmerElements, _b = props.rowHeight, rowHeight = _b === void 0 ? findMaxElementHeight(shimmerElements || []) : _b, _c = props.flexWrap, flexWrap = _c === void 0 ? false : _c, theme = props.theme, backgroundColor = props.backgroundColor;\n var classNames = getClassNames(styles, {\n theme: theme,\n flexWrap: flexWrap,\n });\n return (React.createElement(\"div\", { style: { width: width }, className: classNames.root }, getRenderedElements(shimmerElements, backgroundColor, rowHeight)));\n};\nfunction getRenderedElements(shimmerElements, backgroundColor, rowHeight) {\n var renderedElements = shimmerElements ? (shimmerElements.map(\n // false positive\n // eslint-disable-next-line array-callback-return\n function (element, index) {\n var type = element.type, filteredElem = __rest(element, [\"type\"]);\n var verticalAlign = filteredElem.verticalAlign, height = filteredElem.height;\n var styles = getElementStyles(verticalAlign, type, height, backgroundColor, rowHeight);\n switch (element.type) {\n case ShimmerElementType.circle:\n return React.createElement(ShimmerCircle, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.gap:\n return React.createElement(ShimmerGap, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.line:\n return React.createElement(ShimmerLine, __assign({ key: index }, filteredElem, { styles: styles }));\n }\n })) : (React.createElement(ShimmerLine, { height: ShimmerElementsDefaultHeights.line }));\n return renderedElements;\n}\nvar getElementStyles = memoizeFunction(function (verticalAlign, elementType, elementHeight, backgroundColor, rowHeight) {\n var dif = rowHeight && elementHeight ? rowHeight - elementHeight : 0;\n var borderStyle;\n if (!verticalAlign || verticalAlign === 'center') {\n borderStyle = {\n borderBottomWidth: \"\".concat(dif ? Math.floor(dif / 2) : 0, \"px\"),\n borderTopWidth: \"\".concat(dif ? Math.ceil(dif / 2) : 0, \"px\"),\n };\n }\n else if (verticalAlign && verticalAlign === 'top') {\n borderStyle = {\n borderBottomWidth: \"\".concat(dif, \"px\"),\n borderTopWidth: \"0px\",\n };\n }\n else if (verticalAlign && verticalAlign === 'bottom') {\n borderStyle = {\n borderBottomWidth: \"0px\",\n borderTopWidth: \"\".concat(dif, \"px\"),\n };\n }\n if (backgroundColor) {\n switch (elementType) {\n case ShimmerElementType.circle:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n svg: { fill: backgroundColor },\n };\n case ShimmerElementType.gap:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor, backgroundColor: backgroundColor }),\n };\n case ShimmerElementType.line:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n topLeftCorner: { fill: backgroundColor },\n topRightCorner: { fill: backgroundColor },\n bottomLeftCorner: { fill: backgroundColor },\n bottomRightCorner: { fill: backgroundColor },\n };\n }\n }\n return {\n root: borderStyle,\n };\n});\n/**\n * User should not worry to provide which of the elements is the highest so we do the calculation for him.\n * Plus if user forgot to specify the height we assign their defaults.\n */\nfunction findMaxElementHeight(shimmerElements) {\n var shimmerElementsDefaulted = shimmerElements.map(function (element) {\n switch (element.type) {\n case ShimmerElementType.circle:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.circle;\n }\n break;\n case ShimmerElementType.line:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.line;\n }\n break;\n case ShimmerElementType.gap:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.gap;\n }\n break;\n }\n return element;\n });\n var rowHeight = shimmerElementsDefaulted.reduce(function (acc, next) {\n return next.height ? (next.height > acc ? next.height : acc) : acc;\n }, 0);\n return rowHeight;\n}\n//# sourceMappingURL=ShimmerElementsGroup.base.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerElementsGroup-root',\n};\nexport function getStyles(props) {\n var flexWrap = props.flexWrap, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n flexWrap: flexWrap ? 'wrap' : 'nowrap',\n position: 'relative',\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerElementsGroup.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerElementsGroupBase } from './ShimmerElementsGroup.base';\nimport { getStyles } from './ShimmerElementsGroup.styles';\nexport var ShimmerElementsGroup = styled(ShimmerElementsGroupBase, getStyles, undefined, { scope: 'ShimmerElementsGroup' });\n//# sourceMappingURL=ShimmerElementsGroup.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nimport { ShimmerElementsGroup } from './ShimmerElementsGroup/ShimmerElementsGroup';\nimport { useSetTimeout, useConst } from '@fluentui/react-hooks';\nvar TRANSITION_ANIMATION_INTERVAL = 200; /* ms */\nvar COMPONENT_NAME = 'Shimmer';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerBase = React.forwardRef(function (props, ref) {\n var styles = props.styles, shimmerElements = props.shimmerElements, children = props.children, width = props.width, className = props.className, customElementsGroup = props.customElementsGroup, theme = props.theme, ariaLabel = props.ariaLabel, shimmerColors = props.shimmerColors, _a = props.isDataLoaded, isDataLoaded = _a === void 0 ? false : _a, improveCSSPerformance = props.improveCSSPerformance;\n var divProps = getNativeProps(props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n isDataLoaded: isDataLoaded,\n className: className,\n transitionAnimationInterval: TRANSITION_ANIMATION_INTERVAL,\n shimmerColor: shimmerColors && shimmerColors.shimmer,\n shimmerWaveColor: shimmerColors && shimmerColors.shimmerWave,\n improveCSSPerformance: improveCSSPerformance || !customElementsGroup,\n });\n var internalState = useConst({\n lastTimeoutId: 0,\n });\n var _b = useSetTimeout(), setTimeout = _b.setTimeout, clearTimeout = _b.clearTimeout;\n /**\n * Flag for knowing when to remove the shimmerWrapper from the DOM.\n */\n var _c = React.useState(isDataLoaded), contentLoaded = _c[0], setContentLoaded = _c[1];\n var divStyleProp = { width: width ? width : '100%' };\n React.useEffect(function () {\n if (isDataLoaded !== contentLoaded) {\n if (isDataLoaded) {\n internalState.lastTimeoutId = setTimeout(function () {\n setContentLoaded(true);\n }, TRANSITION_ANIMATION_INTERVAL);\n return function () { return clearTimeout(internalState.lastTimeoutId); };\n }\n else {\n setContentLoaded(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only run when isDataLoaded changes.\n }, [isDataLoaded]);\n return (React.createElement(\"div\", __assign({}, divProps, { className: classNames.root, ref: ref }),\n !contentLoaded && (React.createElement(\"div\", { style: divStyleProp, className: classNames.shimmerWrapper },\n React.createElement(\"div\", { className: classNames.shimmerGradient }),\n customElementsGroup ? (customElementsGroup) : (React.createElement(ShimmerElementsGroup, { shimmerElements: shimmerElements, backgroundColor: shimmerColors && shimmerColors.background })))),\n children && React.createElement(\"div\", { className: classNames.dataWrapper }, children),\n ariaLabel && !isDataLoaded && (React.createElement(\"div\", { role: \"status\", \"aria-live\": \"polite\" },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, ariaLabel))))));\n});\nShimmerBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Shimmer.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Shimmer.styles';\nimport { ShimmerBase } from './Shimmer.base';\nexport var Shimmer = styled(ShimmerBase, getStyles, undefined, {\n scope: 'Shimmer',\n});\n//# sourceMappingURL=Shimmer.js.map","/**\n * @remix-run/router v1.10.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 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, 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/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\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 matches = matchRouteBranch(branches[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 safelyDecodeURI(pathname));\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) {\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 if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\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/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/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, paramNames] = 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 = paramNames.reduce((memo, paramName, index) => {\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 memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\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 paramNames = [];\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) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\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, paramNames];\n}\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\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}\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" 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/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/**\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 (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\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 */\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 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, _ref) => {\n let [key, value] = _ref;\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, _ref2) => {\n let [key, value] = _ref2;\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}\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 * @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 // Config driven behavior flags\n let future = _extends({\n v7_normalizeFormMethod: false,\n v7_prependBasename: 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 initialErrors = null;\n if (initialMatches == null) {\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 let initialized =\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 !initialMatches.some(m => m.route.lazy) && (\n // And we have to either have no loaders or have been provided hydrationData\n !initialMatches.some(m => m.route.loader) || init.hydrationData != null);\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 = [];\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 // 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 ignoreNextHistoryUpdate = false;\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 (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\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 ignoreNextHistoryUpdate = true;\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\n 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 }\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, viewTransitionOpts) {\n state = _extends({}, state, newState);\n subscribers.forEach(subscriber => subscriber(state, {\n unstable_viewTransitionOpts: viewTransitionOpts\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) {\n var _location$state, _location$state2;\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 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 }), viewTransitionOpts);\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\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, 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 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.unstable_viewTransition\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 });\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 = matchRoutes(routesToUse, location, basename);\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n });\n return;\n }\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 load 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 (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\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 pendingActionData;\n let pendingError;\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 pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, pendingActionData, pendingError);\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\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\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, 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 // 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 result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename);\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 replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, pendingActionData, pendingError) {\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 let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\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: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n return {\n shortCircuited: true\n };\n }\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 (!isUninterruptedRevalidation) {\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 let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\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 results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, 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(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\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, matchesToLoad, loaderResults, pendingError, 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 let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\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 if (fetchControllers.has(key)) abortFetcher(key);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\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 return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, 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, 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, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error);\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou 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 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 let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return;\n } else {\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\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, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\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 if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\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 results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, 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(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, 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 let didAbortFetchLoads = 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(_extends({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors)\n }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? {\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, submission) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename);\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 // 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 let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error\n }\n });\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\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(state, redirect, _temp) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp === void 0 ? {} : _temp;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.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(redirect.location);\n } else {\n routerWindow.location.assign(redirect.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 ? 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.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\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 this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\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.push(key);\n abortFetcher(key);\n }\n });\n }\n function setFetcherError(key, routeId, error) {\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 }\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 state.fetchers.delete(key);\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\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 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 _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\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,\n dispose,\n getBlocker,\n deleteBlocker,\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 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 async function query(request, _temp2) {\n let {\n requestContext\n } = _temp2 === void 0 ? {} : _temp2;\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);\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 async function queryRoute(request, _temp3) {\n let {\n routeId,\n requestContext\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\" && 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, 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, 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, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, 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, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\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, 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 result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\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.status,\n headers: {\n Location: result.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 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 let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\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 let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\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] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\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: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\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 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: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\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, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\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 : \".\", getPathContributingMatches(contextualMatches).map(m => m.pathnameBase), 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 // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\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 below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : 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 boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.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 (match.route.loader == null) {\n return false;\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 defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n 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 if fetcher won't be present in the subsequent render\n if (!matches.some(m => m.route.id === f.routeId)) {\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.includes(key)) {\n // Always revalidate if the fetcher was cancelled\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 defaultShouldRevalidate: 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 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}\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}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\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 let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = 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 }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run 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 data: 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 !== 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 resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\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 data = await result.json();\n } else {\n data = await result.text();\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\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 (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\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, matchesToLoad, results, pendingError, activeDeferreds) {\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 // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\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) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\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 } else {\n loaderData[id] = result.data;\n }\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 }\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) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\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}\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, _temp4) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp4 === void 0 ? {} : _temp4;\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 for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\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 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 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 isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\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) && (isFetcher || 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 let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\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, getPathContributingMatches as UNSAFE_getPathContributingMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.17.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_getPathContributingMatches, 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, 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/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/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/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/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/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, 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/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 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_getPathContributingMatches(matches).map(match => match.pathnameBase));\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/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/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/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/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\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/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) {\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 } = 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 = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let 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, \"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);\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 || 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 ? /*#__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) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _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 {\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 = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\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 return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\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 (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/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 route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useActionData must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n return Object.values((state == null ? void 0 : state.actionData) || {})[0];\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) {\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 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\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 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\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 }, state.initialized ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/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 return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\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/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 process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!React.useContext(NavigationContext).static, \"<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_getPathContributingMatches(matches).map(match => match.pathnameBase), 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/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/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/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 } = _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 }), [basename, 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/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 = promise._error !== undefined ? AwaitRenderStatus.error : promise._data !== undefined ? 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/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.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 }).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, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useBlocker as unstable_useBlocker, useActionData, useAsyncError, useAsyncValue, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router DOM v6.17.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_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, unstable_useBlocker } 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, resolvePath, unstable_useBlocker, useActionData, useAsyncError, useAsyncValue, 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, matchPath } 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}\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\", \"unstable_viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"unstable_viewTransition\", \"children\"],\n _excluded3 = [\"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"submit\", \"relative\", \"preventScrollReset\", \"unstable_viewTransition\"];\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 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 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}\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];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(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 {\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 unstable_viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n if (!viewTransitionOpts || router.window == null || typeof router.window.document.startViewTransition !== \"function\") {\n // Mid-navigation state update, or startViewTransition isn't available\n optInStartTransition(() => setStateImpl(newState));\n } else if (transition && renderDfd) {\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.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 currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [optInStartTransition, transition, renderDfd, router.window]);\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) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext.isTransitioning]);\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 currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\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 // 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(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 }, state.initialized ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n state: state\n }) : fallbackElement)))), null);\n}\nfunction DataRoutes(_ref3) {\n let {\n routes,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state);\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 return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\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 return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\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 return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\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 = /^(?:[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 unstable_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.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 unstable_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 unstable_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 } = 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) && unstable_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 let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(toPathname.length) === \"/\";\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 unstable_viewTransition: unstable_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((props, ref) => {\n let submit = useSubmit();\n return /*#__PURE__*/React.createElement(FormImpl, _extends({}, props, {\n submit: submit,\n ref: ref\n }));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\nconst FormImpl = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n submit,\n relative,\n preventScrollReset,\n unstable_viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, {\n relative\n });\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 method: submitMethod,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_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 FormImpl.displayName = \"FormImpl\";\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[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/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/**\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 unstable_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 unstable_viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, unstable_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\\n\\n\" + \"If you're unsure how to load polyfills, we recommend you check out \" + \"https://polyfill.io/v3/ which provides some recommendations about how \" + \"to load polyfills only for users that need them, instead of for every \" + \"user.\") : 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}\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 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 unstable_viewTransition: options.unstable_viewTransition\n });\n }, [router, basename, currentRouteId]);\n}\n/**\n * Returns the implementation for fetcher.submit\n */\nfunction useSubmitFetcher(fetcherKey, fetcherRouteId) {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmitFetcher);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\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 !(fetcherRouteId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for useFetcher()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, fetcherRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType\n });\n }, [router, basename, fetcherKey, fetcherRouteId]);\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 // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params of the resolved URL. This is\n // the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\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 the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? \"?\" + params.toString() : \"\";\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}\nfunction createFetcherForm(fetcherKey, routeId) {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n let submit = useSubmitFetcher(fetcherKey, routeId);\n return /*#__PURE__*/React.createElement(FormImpl, _extends({}, props, {\n ref: ref,\n submit: submit\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\nlet fetcherId = 0;\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() {\n var _route$matches;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let route = React.useContext(UNSAFE_RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\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 let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.Form()\") : UNSAFE_invariant(false) : void 0;\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => href => {\n !router ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No router available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\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);\n });\n let submit = useSubmitFetcher(fetcherKey, routeId);\n let fetcher = router.getFetcher(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form,\n submit,\n load\n }, fetcher), [fetcher, Form, submit, load]);\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(\"No router available to clean up from useFetcher()\");\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\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 [...state.fetchers.values()];\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(_temp3) {\n let {\n getKey,\n storageKey\n } = _temp3 === void 0 ? {} : _temp3;\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(_ref11) {\n let {\n when,\n message\n } = _ref11;\n let blocker = unstable_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, \"`unstable_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\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_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\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useViewTransitionState as unstable_useViewTransitionState, 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'\n","/**\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 * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\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 {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","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, 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') != -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\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))\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","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","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","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 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 { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"6.1.0\",y=\"undefined\"!=typeof window&&\"HTMLElement\"in window,v=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),g={},S=/invalid hook call/i,w=new Set,b=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];S.test(t)?(a=!1,w.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!w.has(s)&&(console.warn(s),w.add(s))}catch(e){S.test(e.message)&&w.delete(s)}finally{console.error=i}}},E=Object.freeze([]),N=Object.freeze({});function P(e,t,n){return void 0===n&&(n=N),e.theme!==n.theme&&e.theme||t||n.theme}var _=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),C=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,I=/(^-|-$)/g;function A(e){return e.replace(C,\"-\").replace(I,\"\")}var O=/(a)(d)/gi,D=function(e){return String.fromCharCode(e+(e>25?39:97))};function R(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=D(t%52)+n;return(D(t%52)+n).replace(O,\"$1-$2\")}var T,k=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},j=function(e){return k(5381,e)};function x(e){return R(j(e)>>>0)}function V(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function F(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var M=\"function\"==typeof Symbol&&Symbol.for,$=M?Symbol.for(\"react.memo\"):60115,z=M?Symbol.for(\"react.forward_ref\"):60112,B={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},L={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},G={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Y=((T={})[z]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},T[$]=G,T);function W(e){return(\"type\"in(t=e)&&t.type.$$typeof)===$?G:\"$$typeof\"in e?Y[e.$$typeof]:B;var t}var q=Object.defineProperty,H=Object.getOwnPropertyNames,U=Object.getOwnPropertySymbols,J=Object.getOwnPropertyDescriptor,X=Object.getPrototypeOf,Z=Object.prototype;function K(e,t,n){if(\"string\"!=typeof t){if(Z){var o=X(t);o&&o!==Z&&K(e,o,n)}var r=H(t);U&&(r=r.concat(U(t)));for(var s=W(e),i=W(t),a=0;a<r.length;++a){var c=r[a];if(!(c in L||n&&n[c]||i&&c in i||s&&c in s)){var l=J(t,c);try{q(e,c,l)}catch(e){}}}}return e}function Q(e){return\"function\"==typeof e}function ee(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function te(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ne(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function oe(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function re(e,t,n){if(void 0===n&&(n=!1),!n&&!oe(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=re(e[o],t[o]);else if(oe(t))for(var o in t)e[o]=re(e[o],t[o]);return e}function se(e,t){Object.defineProperty(e,\"toString\",{value:t})}var ie=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function ae(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function ce(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(ae.apply(void 0,e([ie[t]],n,!1)).trim())}var le=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw ce(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(\"/*!sc*/\\n\");return t},e}(),ue=new Map,pe=new Map,de=1,he=function(e){if(ue.has(e))return ue.get(e);for(;pe.has(de);)de++;var t=de++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>1073741824))throw ce(16,\"\".concat(t));return ue.set(e,t),pe.set(t,e),t},fe=function(e,t){ue.set(e,t),pe.set(t,e)},me=\"style[\".concat(f,\"][\").concat(\"data-styled-version\",'=\"').concat(\"6.1.0\",'\"]'),ye=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),ve=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},ge=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(\"/*!sc*/\\n\"),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(ye);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(fe(u,l),ve(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}};function Se(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var we=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,\"active\"),o.setAttribute(\"data-styled-version\",\"6.1.0\");var i=Se();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},be=function(){function e(e){this.element=we(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw ce(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Ee=function(){function e(e){this.element=we(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),Ne=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),Pe=y,_e={isServer:!y,useCSSOMInjection:!v},Ce=function(){function e(e,n,o){void 0===e&&(e=N),void 0===n&&(n={});var r=this;this.options=t(t({},_e),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&y&&Pe&&(Pe=!1,function(e){for(var t=document.querySelectorAll(me),n=0,o=t.length;n<o;n++){var r=t[n];r&&\"active\"!==r.getAttribute(f)&&(ge(e,r),r.parentNode&&r.parentNode.removeChild(r))}}(this)),se(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return pe.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(\"/*!sc*/\\n\")},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return he(e)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new Ne(n):t?new be(n):new Ee(n)}(this.options),new le(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(he(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(he(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(he(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),Ie=/&/g,Ae=/^\\s*\\/\\/.*$/gm;function Oe(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=Oe(e.children,t)),e})}function De(e){var t,n,o,r=void 0===e?N:e,s=r.options,i=void 0===s?N:s,a=r.plugins,c=void 0===a?E:a,l=function(e,o,r){return r===n||r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(Ie,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(Ae,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=Oe(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||ce(15),k(e,t.name)},5381).toString():\"\",p}var Re=new Ce,Te=De(),ke=o.createContext({shouldForwardProp:void 0,styleSheet:Re,stylis:Te}),je=ke.Consumer,xe=o.createContext(void 0);function Ve(){return c(ke)}function Fe(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Ve().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return De({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement(ke.Provider,{value:d},o.createElement(xe.Provider,{value:u},e.children))}var Me=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Te);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,se(this,function(){throw ce(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Te),this.name+e.hash},e}(),$e=function(e){return e>=\"A\"&&e<=\"Z\"};function ze(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;$e(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var Be=function(e){return null==e||!1===e||\"\"===e},Le=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!Be(i)&&(Array.isArray(i)&&i.isCss||Q(i)?r.push(\"\".concat(ze(s),\":\"),i,\";\"):oe(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Le(i),!1),[\"}\"],!1)):r.push(\"\".concat(ze(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Ge(e,t,n,o){if(Be(e))return[];if(ee(e))return[\".\".concat(e.styledComponentId)];if(Q(e)){if(!Q(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof Me||oe(r)||null===r||console.error(\"\".concat(V(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Ge(r,t,n,o)}var s;return e instanceof Me?n?(e.inject(n,o),[e.getName(o)]):[e]:oe(e)?Le(e):Array.isArray(e)?Array.prototype.concat.apply(E,e.map(function(e){return Ge(e,t,n,o)})):[e.toString()]}function Ye(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(Q(n)&&!ee(n))return!1}return!0}var We=j(\"6.1.0\"),qe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Ye(e),this.componentId=t,this.baseHash=k(We,t),this.baseStyle=n,Ce.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=te(o,this.staticRulesId);else{var r=ne(Ge(this.rules,e,t,n)),s=R(k(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=te(o,s),this.staticRulesId=s}else{for(var a=k(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=k(a,u));else if(u){var p=ne(Ge(u,e,t,n));a=k(a,p+l),c+=p}}if(c){var d=R(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=te(o,d)}}return o},e}(),He=o.createContext(void 0),Ue=He.Consumer;function Je(){var e=c(He);if(!e)throw ce(18);return e}function Xe(e){var n=o.useContext(He),r=i(function(){return function(e,n){if(!e)throw ce(14);if(Q(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw ce(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw ce(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(He.Provider,{value:r},e.children):null}var Ze={},Ke=new Set;function Qe(e,r,s){var i=ee(e),a=e,c=!F(e),p=r.attrs,d=void 0===p?E:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":A(e);Ze[n]=(Ze[n]||0)+1;var o=\"\".concat(n,\"-\").concat(x(\"6.1.0\"+n+Ze[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return F(e)?\"styled.\".concat(e):\"Styled(\".concat(V(e),\")\")}(e):m,v=r.displayName&&r.componentId?\"\".concat(A(r.displayName),\"-\").concat(r.componentId):r.componentId||f,g=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,S=r.shouldForwardProp;if(i&&a.shouldForwardProp){var w=a.shouldForwardProp;if(r.shouldForwardProp){var C=r.shouldForwardProp;S=function(e,t){return w(e,t)&&C(e,t)}}else S=w}var I=new qe(s,v,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(He),m=Ve(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=Q(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?te(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=te(s.className,n.className)),s}(i,r,P(r,f,c)||N),g=v.as||h,S={};for(var w in v)void 0===v[w]||\"$\"===w[0]||\"as\"===w||\"theme\"===w||(\"forwardedAs\"===w?S.as=v.forwardedAs:y&&!y(w,g)||(S[w]=v[w],y||\"development\"!==process.env.NODE_ENV||n(w)||Ke.has(w)||!_.has(g)||(Ke.add(w),console.warn('styled-components: it looks like an unknown prop \"'.concat(w,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var b=function(e,t){var n=Ve(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,v);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(b);var E=te(p,d);return b&&(E+=\" \"+b),v.className&&(E+=\" \"+v.className),S[F(g)&&!_.has(g)?\"class\":\"className\"]=E,S.ref=s,u(g,S)}(D,e,r)}\"production\"!==process.env.NODE_ENV&&(O.displayName=y);var D=o.forwardRef(O);return D.attrs=g,D.componentStyle=I,D.shouldForwardProp=S,\"production\"!==process.env.NODE_ENV&&(D.displayName=y),D.foldedComponentIds=i?te(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=v,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)re(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(b(y,v),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,v)),se(D,function(){return\".\".concat(D.styledComponentId)}),c&&K(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function et(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var tt=function(e){return Object.assign(e,{isCss:!0})};function nt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(Q(t)||oe(t)){var r=t;return tt(Ge(et(E,e([r],n,!0))))}var s=t;return 0===n.length&&1===s.length&&\"string\"==typeof s[0]?Ge(s):tt(Ge(et(s,n)))}function ot(n,o,r){if(void 0===r&&(r=N),!o)throw ce(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,nt.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return ot(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return ot(n,o,t(t({},r),e))},s}var rt=function(e){return ot(Qe,e)},st=rt;_.forEach(function(e){st[e]=rt(e)});var it=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Ye(e),Ce.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ne(Ge(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&Ce.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function at(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=nt.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat(x(JSON.stringify(i))),c=new it(i,a);\"production\"!==process.env.NODE_ENV&&b(a);var l=function(e){var t=Ve(),n=o.useContext(He),r=o.useRef(t.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,g,o,s);else{var i=t(t({},n),{theme:P(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function ct(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ne(nt.apply(void 0,e([t],n,!1))),s=x(r);return new Me(s,r)}function lt(e){var n=o.forwardRef(function(n,r){var s=P(n,o.useContext(He),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(V(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return\"production\"!==process.env.NODE_ENV&&(n.displayName=\"WithTheme(\".concat(V(e),\")\")),K(n,e)}var ut=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString(),n=Se(),o=ne([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(\"data-styled-version\",'=\"').concat(\"6.1.0\",'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw ce(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw ce(2);var r=((n={})[f]=\"\",n[\"data-styled-version\"]=\"6.1.0\",n.dangerouslySetInnerHTML={__html:e.instance.toString()},n),s=Se();return s&&(r.nonce=s),[o.createElement(\"style\",t({},r,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Ce({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw ce(2);return o.createElement(Fe,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw ce(3)},e}(),pt={StyleSheet:Ce,mainSheet:Re};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var dt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[dt]||(window[dt]=0),1===window[dt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[dt]+=1);export{ut as ServerStyleSheet,je as StyleSheetConsumer,ke as StyleSheetContext,Fe as StyleSheetManager,Ue as ThemeConsumer,He as ThemeContext,Xe as ThemeProvider,pt as __PRIVATE__,at as createGlobalStyle,nt as css,st as default,ee as isStyledComponent,ct as keyframes,st as styled,Je as useTheme,m as version,lt as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import { __extends } from \"tslib\";\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\nvar InvariantError = /** @class */ (function (_super) {\n __extends(InvariantError, _super);\n function InvariantError(message) {\n if (message === void 0) { message = genericMessage; }\n var _this = _super.call(this, typeof message === \"number\"\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\n : message) || this;\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n return InvariantError;\n}(Error));\nexport { InvariantError };\nexport function invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\nfunction wrapConsoleMethod(name) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n var method = console[name] || console.log;\n return method.apply(console, arguments);\n }\n };\n}\n(function (invariant) {\n invariant.debug = wrapConsoleMethod(\"debug\");\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\nexport function setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\nexport default invariant;\n//# sourceMappingURL=invariant.js.map","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) || maybe(function () { return maybe.constructor(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n /**\n * An array of `{ line, column }` locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n /**\n * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed directive location values.\n */\nvar DirectiveLocation;\n\n(function (DirectiveLocation) {\n DirectiveLocation['QUERY'] = 'QUERY';\n DirectiveLocation['MUTATION'] = 'MUTATION';\n DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n DirectiveLocation['FIELD'] = 'FIELD';\n DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n DirectiveLocation['SCHEMA'] = 'SCHEMA';\n DirectiveLocation['SCALAR'] = 'SCALAR';\n DirectiveLocation['OBJECT'] = 'OBJECT';\n DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n DirectiveLocation['INTERFACE'] = 'INTERFACE';\n DirectiveLocation['UNION'] = 'UNION';\n DirectiveLocation['ENUM'] = 'ENUM';\n DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n\nexport { DirectiveLocation };\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n TokenKind['SOF'] = '<SOF>';\n TokenKind['EOF'] = '<EOF>';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport class Lexer {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const token = (this.token = this.lookahead());\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n\n lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // <BOM>\n\n case 0x0009: // \\t\n\n case 0x0020: // <space>\n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { inspect } from './inspect.mjs';\n/* c8 ignore next 3 */\n\nconst isProduction =\n globalThis.process && // eslint-disable-next-line no-undef\n process.env.NODE_ENV === 'production';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n isProduction\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n const parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseConstValueLiteral();\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport class Parser {\n constructor(source, options = {}) {\n const sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n this._tokenCounter = 0;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n parseName() {\n const token = this.expectToken(TokenKind.NAME);\n return this.node(token, {\n kind: Kind.NAME,\n value: token.value,\n });\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n\n parseDocument() {\n return this.node(this._lexer.token, {\n kind: Kind.DOCUMENT,\n definitions: this.many(\n TokenKind.SOF,\n this.parseDefinition,\n TokenKind.EOF,\n ),\n });\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n *\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n\n parseDefinition() {\n if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } // Many definitions begin with a description and require a lookahead.\n\n const hasDescription = this.peekDescription();\n const keywordToken = hasDescription\n ? this._lexer.lookahead()\n : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n\n if (hasDescription) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n 'Unexpected description, descriptions are supported only on type definitions.',\n );\n }\n\n switch (keywordToken.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n\n parseOperationDefinition() {\n const start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n const operation = this.parseOperationType();\n let name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation,\n name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * OperationType : one of query mutation subscription\n */\n\n parseOperationType() {\n const operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return OperationTypeNode.QUERY;\n\n case 'mutation':\n return OperationTypeNode.MUTATION;\n\n case 'subscription':\n return OperationTypeNode.SUBSCRIPTION;\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n\n parseVariableDefinitions() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseVariableDefinition,\n TokenKind.PAREN_R,\n );\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n\n parseVariableDefinition() {\n return this.node(this._lexer.token, {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n ? this.parseConstValueLiteral()\n : undefined,\n directives: this.parseConstDirectives(),\n });\n }\n /**\n * Variable : $ Name\n */\n\n parseVariable() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return this.node(start, {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n });\n }\n /**\n * ```\n * SelectionSet : { Selection+ }\n * ```\n */\n\n parseSelectionSet() {\n return this.node(this._lexer.token, {\n kind: Kind.SELECTION_SET,\n selections: this.many(\n TokenKind.BRACE_L,\n this.parseSelection,\n TokenKind.BRACE_R,\n ),\n });\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n\n parseSelection() {\n return this.peek(TokenKind.SPREAD)\n ? this.parseFragment()\n : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n\n parseField() {\n const start = this._lexer.token;\n const nameOrAlias = this.parseName();\n let alias;\n let name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return this.node(start, {\n kind: Kind.FIELD,\n alias,\n name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L)\n ? this.parseSelectionSet()\n : undefined,\n });\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n\n parseArguments(isConst) {\n const item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n\n parseArgument(isConst = false) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.ARGUMENT,\n name,\n value: this.parseValueLiteral(isConst),\n });\n }\n\n parseConstArgument() {\n return this.parseArgument(true);\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n\n parseFragment() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n const hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return this.node(start, {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n });\n }\n\n return this.node(start, {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n\n parseFragmentDefinition() {\n const start = this._lexer.token;\n this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (this._options.allowLegacyFragmentVariables === true) {\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentName : Name but not `on`\n */\n\n parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseValueLiteral(isConst) {\n const token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.INT,\n value: token.value,\n });\n\n case TokenKind.FLOAT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.FLOAT,\n value: token.value,\n });\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this.advanceLexer();\n\n switch (token.value) {\n case 'true':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: true,\n });\n\n case 'false':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: false,\n });\n\n case 'null':\n return this.node(token, {\n kind: Kind.NULL,\n });\n\n default:\n return this.node(token, {\n kind: Kind.ENUM,\n value: token.value,\n });\n }\n\n case TokenKind.DOLLAR:\n if (isConst) {\n this.expectToken(TokenKind.DOLLAR);\n\n if (this._lexer.token.kind === TokenKind.NAME) {\n const varName = this._lexer.token.value;\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected variable \"$${varName}\" in constant value.`,\n );\n } else {\n throw this.unexpected(token);\n }\n }\n\n return this.parseVariable();\n\n default:\n throw this.unexpected();\n }\n }\n\n parseConstValueLiteral() {\n return this.parseValueLiteral(true);\n }\n\n parseStringLiteral() {\n const token = this._lexer.token;\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n });\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n\n parseList(isConst) {\n const item = () => this.parseValueLiteral(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n });\n }\n /**\n * ```\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n * ```\n */\n\n parseObject(isConst) {\n const item = () => this.parseObjectField(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n });\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n\n parseObjectField(isConst) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.OBJECT_FIELD,\n name,\n value: this.parseValueLiteral(isConst),\n });\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n\n parseDirectives(isConst) {\n const directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n\n parseConstDirectives() {\n return this.parseDirectives(true);\n }\n /**\n * ```\n * Directive[Const] : @ Name Arguments[?Const]?\n * ```\n */\n\n parseDirective(isConst) {\n const start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return this.node(start, {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n });\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n\n parseTypeReference() {\n const start = this._lexer.token;\n let type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n const innerType = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = this.node(start, {\n kind: Kind.LIST_TYPE,\n type: innerType,\n });\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return this.node(start, {\n kind: Kind.NON_NULL_TYPE,\n type,\n });\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n\n parseNamedType() {\n return this.node(this._lexer.token, {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n });\n } // Implements the parsing rules in the Type Definition section.\n\n peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n\n parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * ```\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n * ```\n */\n\n parseSchemaDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.many(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n return this.node(start, {\n kind: Kind.SCHEMA_DEFINITION,\n description,\n directives,\n operationTypes,\n });\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n\n parseOperationTypeDefinition() {\n const start = this._lexer.token;\n const operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n const type = this.parseNamedType();\n return this.node(start, {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation,\n type,\n });\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n\n parseScalarTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n\n parseObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n\n parseImplementsInterfaces() {\n return this.expectOptionalKeyword('implements')\n ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n : [];\n }\n /**\n * ```\n * FieldsDefinition : { FieldDefinition+ }\n * ```\n */\n\n parseFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseFieldDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n\n parseFieldDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.FIELD_DEFINITION,\n description,\n name,\n arguments: args,\n type,\n directives,\n });\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n\n parseArgumentDefs() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseInputValueDef,\n TokenKind.PAREN_R,\n );\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n\n parseInputValueDef() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n let defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseConstValueLiteral();\n }\n\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description,\n name,\n type,\n defaultValue,\n directives,\n });\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n\n parseInterfaceTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n\n parseUnionTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n return this.node(start, {\n kind: Kind.UNION_TYPE_DEFINITION,\n description,\n name,\n directives,\n types,\n });\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n\n parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS)\n ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n\n parseEnumTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n return this.node(start, {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description,\n name,\n directives,\n values,\n });\n }\n /**\n * ```\n * EnumValuesDefinition : { EnumValueDefinition+ }\n * ```\n */\n\n parseEnumValuesDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseEnumValueDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n */\n\n parseEnumValueDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseEnumValueName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseEnumValueName() {\n if (\n this._lexer.token.value === 'true' ||\n this._lexer.token.value === 'false' ||\n this._lexer.token.value === 'null'\n ) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n `${getTokenDesc(\n this._lexer.token,\n )} is reserved and cannot be used for an enum value.`,\n );\n }\n\n return this.parseName();\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n\n parseInputObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * InputFieldsDefinition : { InputValueDefinition+ }\n * ```\n */\n\n parseInputFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseInputValueDef,\n TokenKind.BRACE_R,\n );\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n\n parseTypeSystemExtension() {\n const keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * ```\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n * ```\n */\n\n parseSchemaExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.optionalMany(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCHEMA_EXTENSION,\n directives,\n operationTypes,\n });\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n\n parseScalarTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n\n parseObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n\n parseInterfaceTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n\n parseUnionTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.UNION_TYPE_EXTENSION,\n name,\n directives,\n types,\n });\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n\n parseEnumTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name,\n directives,\n values,\n });\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n\n parseInputObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n * ```\n */\n\n parseDirectiveDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n const repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n const locations = this.parseDirectiveLocations();\n return this.node(start, {\n kind: Kind.DIRECTIVE_DEFINITION,\n description,\n name,\n arguments: args,\n repeatable,\n locations,\n });\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n\n parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n\n parseDirectiveLocation() {\n const start = this._lexer.token;\n const name = this.parseName();\n\n if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a node that, if configured to do so, sets a \"loc\" field as a\n * location object, used to identify the place in the source that created a\n * given parsed object.\n */\n\n node(startToken, node) {\n if (this._options.noLocation !== true) {\n node.loc = new Location(\n startToken,\n this._lexer.lastToken,\n this._lexer.source,\n );\n }\n\n return node;\n }\n /**\n * Determines if the next token is of a given kind\n */\n\n peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return token;\n }\n\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n );\n }\n /**\n * If the next token is of the given kind, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n } else {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n );\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n\n unexpected(atToken) {\n const token =\n atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected ${getTokenDesc(token)}.`,\n );\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n\n delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n }\n\n advanceLexer() {\n const { maxTokens } = this._options;\n\n const token = this._lexer.advance();\n\n if (maxTokens !== undefined && token.kind !== TokenKind.EOF) {\n ++this._tokenCounter;\n\n if (this._tokenCounter > maxTokens) {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Document contains more that ${maxTokens} tokens. Parsing aborted.`,\n );\n }\n }\n }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n const value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","import { remove } from \"ts-invariant/process/index.js\";\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}\n//# sourceMappingURL=fix-graphql.js.map","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 39);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map","import { invariant } from \"../globals/index.js\";\nimport { visit, BREAK, } from 'graphql';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive, ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n __DEV__ ? invariant(evaledValue !== void 0, \"Invalid variable referenced in @\".concat(directive.name.value, \" directive.\")) : invariant(evaledValue !== void 0, 40);\n }\n else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function (node) {\n names.push(node.name.value);\n },\n });\n return names;\n}\nexport var hasAnyDirectives = function (names, root) { return hasDirectives(names, root, false); };\nexport var hasAllDirectives = function (names, root) { return hasDirectives(names, root, true); };\nexport function hasDirectives(names, root, all) {\n var nameSet = new Set(names);\n var uniqueCount = nameSet.size;\n visit(root, {\n Directive: function (node) {\n if (nameSet.delete(node.name.value) &&\n (!all || !nameSet.size)) {\n return BREAK;\n }\n },\n });\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\nexport function hasClientExports(document) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nexport function getInclusionDirectives(directives) {\n var result = [];\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive))\n return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\".concat(directiveName, \" directive.\")) : invariant(directiveArguments && directiveArguments.length === 1, 41);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\".concat(directiveName, \" directive.\")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 42);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\".concat(directiveName, \" directive must be a variable or a boolean value.\")) : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 43);\n result.push({ directive: directive, ifArgument: ifArgument });\n });\n }\n return result;\n}\n//# sourceMappingURL=directives.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, InvariantError } from \"../globals/index.js\";\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Found a \".concat(definition.operation, \" operation\").concat(definition.name ? \" named '\".concat(definition.name.value, \"'\") : '', \". \") +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(44);\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n __DEV__ ? invariant(fragments.length === 1, \"Found \".concat(fragments.length, \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\")) : invariant(fragments.length === 1, 45);\n actualFragmentName = fragments[0].name.value;\n }\n var query = __assign(__assign({}, document), { definitions: __spreadArray([\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n }\n ], document.definitions, true) });\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n case 'FragmentSpread': {\n var fragmentName = selection.name.value;\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n var fragment = fragmentMap && fragmentMap[fragmentName];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(fragmentName)) : invariant(fragment, 46);\n return fragment || null;\n }\n default:\n return null;\n }\n}\n//# sourceMappingURL=fragments.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n//# sourceMappingURL=objects.js.map","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return { __ref: String(id) };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return (isNonNullObject(value) &&\n value.kind === \"Document\" &&\n Array.isArray(value.definitions));\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\".concat(name.value, \"\\\" of kind \\\"\").concat(value.kind, \"\\\"\") +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.') : new InvariantError(55);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return \"\".concat(directives['connection']['key'], \"(\").concat(stringify(filteredArgs_1), \")\");\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\".concat(key, \"(\").concat(stringify(directives[key]), \")\");\n }\n else {\n completeFieldName += \"@\".concat(key);\n }\n });\n }\n return completeFieldName;\n}, {\n setStringify: function (s) {\n var previous = stringify;\n stringify = s;\n return previous;\n },\n});\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n return value;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n var fragments;\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n }\n else if (fragments) {\n fragments.push(selection);\n }\n else {\n fragments = [selection];\n }\n }\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n if (fragments) {\n for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) {\n var selection = fragments_1[_b];\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\n//# sourceMappingURL=storeUtils.js.map","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 47);\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\".concat(definition.kind, \"\\\"\")) : new InvariantError(48);\n }\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \".concat(operations.length, \" operations\")) : invariant(operations.length <= 1, 49);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nexport function getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && !!definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 50);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 51);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 52);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 53);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(54);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n return defaultValues;\n}\n//# sourceMappingURL=getFromAST.js.map","export var isArray = Array.isArray;\nexport function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\n//# sourceMappingURL=arrays.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit, Kind, } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition, } from \"./getFromAST.js\";\nimport { isField } from \"./storeUtils.js\";\nimport { createFragmentMap, } from \"./fragments.js\";\nimport { isArray } from \"../common/arrays.js\";\nvar TYPENAME_FIELD = {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n};\nfunction isEmpty(op, fragmentMap) {\n return !op || op.selectionSet.selections.every(function (selection) { return selection.kind === Kind.FRAGMENT_SPREAD &&\n isEmpty(fragmentMap[selection.name.value], fragmentMap); });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n var nameSet = new Set();\n var tests = [];\n directives.forEach(function (directive) {\n if (directive.name) {\n nameSet.add(directive.name);\n }\n else if (directive.test) {\n tests.push(directive.test);\n }\n });\n return function (directive) { return (nameSet.has(directive.name.value) ||\n tests.some(function (test) { return test(directive); })); };\n}\nfunction makeInUseGetterFunction(defaultKey) {\n var map = new Map();\n return function inUseGetterFunction(key) {\n if (key === void 0) { key = defaultKey; }\n var inUse = map.get(key);\n if (!inUse) {\n map.set(key, inUse = {\n variables: new Set,\n fragmentSpreads: new Set,\n });\n }\n return inUse;\n };\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n var getInUseByOperationName = makeInUseGetterFunction(\"\");\n var getInUseByFragmentName = makeInUseGetterFunction(\"\");\n var getInUse = function (ancestors) {\n for (var p = 0, ancestor = void 0; p < ancestors.length && (ancestor = ancestors[p]); ++p) {\n if (isArray(ancestor))\n continue;\n if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n return getInUseByOperationName(ancestor.name && ancestor.name.value);\n }\n if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n return getInUseByFragmentName(ancestor.name.value);\n }\n }\n __DEV__ && invariant.error(\"Could not find operation or fragment\");\n return null;\n };\n var operationCount = 0;\n for (var i = doc.definitions.length - 1; i >= 0; --i) {\n if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n ++operationCount;\n }\n }\n var directiveMatcher = getDirectiveMatcher(directives);\n var hasRemoveDirective = directives.some(function (directive) { return directive.remove; });\n var shouldRemoveField = function (nodeDirectives) { return (hasRemoveDirective &&\n nodeDirectives &&\n nodeDirectives.some(directiveMatcher)); };\n var originalFragmentDefsByPath = new Map();\n var firstVisitMadeChanges = false;\n var fieldOrInlineFragmentVisitor = {\n enter: function (node) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n };\n var docWithoutDirectiveSubtrees = visit(doc, {\n Field: fieldOrInlineFragmentVisitor,\n InlineFragment: fieldOrInlineFragmentVisitor,\n VariableDefinition: {\n enter: function () {\n return false;\n },\n },\n Variable: {\n enter: function (node, _key, _parent, _path, ancestors) {\n var inUse = getInUse(ancestors);\n if (inUse) {\n inUse.variables.add(node.name.value);\n }\n },\n },\n FragmentSpread: {\n enter: function (node, _key, _parent, _path, ancestors) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n var inUse = getInUse(ancestors);\n if (inUse) {\n inUse.fragmentSpreads.add(node.name.value);\n }\n },\n },\n FragmentDefinition: {\n enter: function (node, _key, _parent, path) {\n originalFragmentDefsByPath.set(JSON.stringify(path), node);\n },\n leave: function (node, _key, _parent, path) {\n var originalNode = originalFragmentDefsByPath.get(JSON.stringify(path));\n if (node === originalNode) {\n return node;\n }\n if (operationCount > 0 &&\n node.selectionSet.selections.every(function (selection) { return (selection.kind === Kind.FIELD &&\n selection.name.value === '__typename'); })) {\n getInUseByFragmentName(node.name.value).removed = true;\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n Directive: {\n leave: function (node) {\n if (directiveMatcher(node)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n });\n if (!firstVisitMadeChanges) {\n return doc;\n }\n var populateTransitiveVars = function (inUse) {\n if (!inUse.transitiveVars) {\n inUse.transitiveVars = new Set(inUse.variables);\n if (!inUse.removed) {\n inUse.fragmentSpreads.forEach(function (childFragmentName) {\n populateTransitiveVars(getInUseByFragmentName(childFragmentName)).transitiveVars.forEach(function (varName) {\n inUse.transitiveVars.add(varName);\n });\n });\n }\n }\n return inUse;\n };\n var allFragmentNamesUsed = new Set();\n docWithoutDirectiveSubtrees.definitions.forEach(function (def) {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n populateTransitiveVars(getInUseByOperationName(def.name && def.name.value)).fragmentSpreads.forEach(function (childFragmentName) {\n allFragmentNamesUsed.add(childFragmentName);\n });\n }\n else if (def.kind === Kind.FRAGMENT_DEFINITION &&\n operationCount === 0 &&\n !getInUseByFragmentName(def.name.value).removed) {\n allFragmentNamesUsed.add(def.name.value);\n }\n });\n allFragmentNamesUsed.forEach(function (fragmentName) {\n populateTransitiveVars(getInUseByFragmentName(fragmentName)).fragmentSpreads.forEach(function (childFragmentName) {\n allFragmentNamesUsed.add(childFragmentName);\n });\n });\n var fragmentWillBeRemoved = function (fragmentName) { return !!(!allFragmentNamesUsed.has(fragmentName) ||\n getInUseByFragmentName(fragmentName).removed); };\n var enterVisitor = {\n enter: function (node) {\n if (fragmentWillBeRemoved(node.name.value)) {\n return null;\n }\n },\n };\n return nullIfDocIsEmpty(visit(docWithoutDirectiveSubtrees, {\n FragmentSpread: enterVisitor,\n FragmentDefinition: enterVisitor,\n OperationDefinition: {\n leave: function (node) {\n if (node.variableDefinitions) {\n var usedVariableNames_1 = populateTransitiveVars(getInUseByOperationName(node.name && node.name.value)).transitiveVars;\n if (usedVariableNames_1.size < node.variableDefinitions.length) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) { return usedVariableNames_1.has(varDef.variable.name.value); }) });\n }\n }\n },\n },\n }));\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(doc, {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === Kind.OPERATION_DEFINITION) {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false) });\n },\n },\n });\n}, {\n added: function (field) {\n return field === TYPENAME_FIELD;\n },\n});\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (!!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === Kind.VARIABLE &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) : [] });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n return modifiedDoc;\n}\n//# sourceMappingURL=transform.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var merger = new DeepMerger();\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\nvar defaultReconciler = function (target, source, property) {\n return this.merge(target[property], source[property]);\n};\nvar DeepMerger = (function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) { reconciler = defaultReconciler; }\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n var context = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n }\n else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n return source;\n };\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n };\n return DeepMerger;\n}());\nexport { DeepMerger };\n//# sourceMappingURL=mergeDeep.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 _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// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\n\t\t\tif (typeof Symbol.for === 'function') {\n\t\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t\t// META: It's a resource locator!\n\t\t\t\tresult = Symbol.for('https://github.com/benlesh/symbol-observable');\n\t\t\t} else {\n\t\t\t\t// Symbol.for didn't exist! The best we can do at this point is a totally \n\t\t\t\t// unique symbol. Note that the string argument here is a descriptor, not\n\t\t\t\t// an identifier. This symbol is unique.\n\t\t\t\tresult = Symbol('https://github.com/benlesh/symbol-observable');\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tSymbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import { Observable, } from 'zen-observable-ts';\nimport 'symbol-observable';\nvar prototype = Observable.prototype;\nvar fakeObsSymbol = '@@observable';\nif (!prototype[fakeObsSymbol]) {\n prototype[fakeObsSymbol] = function () { return this; };\n}\nexport { Observable };\n//# sourceMappingURL=Observable.js.map","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\n//# sourceMappingURL=cloneDeep.js.map","import \"../globals/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isNonNullObject(obj[name]))\n workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\nfunction shallowFreeze(obj) {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n }\n catch (e) {\n if (e instanceof TypeError)\n return null;\n throw e;\n }\n }\n return obj;\n}\nexport function maybeDeepFreeze(obj) {\n if (__DEV__) {\n deepFreeze(obj);\n }\n return obj;\n}\n//# sourceMappingURL=maybeDeepFreeze.js.map","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next, error = observer.error, complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function (callback) {\n return new Promise(function (resolve) { return resolve(callback()); });\n },\n };\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n var both = function () { return examiner(arg); };\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n }\n else {\n return function (arg) { return delegate && delegate.call(observer, arg); };\n }\n }\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function () {\n completed = true;\n if (!activeCallbackCount) {\n complete && complete.call(observer);\n }\n },\n };\n var sub = observable.subscribe(handler);\n return function () { return sub.unsubscribe(); };\n });\n}\n//# sourceMappingURL=asyncMap.js.map","import { maybe } from \"../globals/index.js\";\nexport var canUseWeakMap = typeof WeakMap === 'function' &&\n maybe(function () { return navigator.product; }) !== 'ReactNative';\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\nexport var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\nexport var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === \"function\";\nvar usingJSDOM = maybe(function () { return navigator.userAgent.indexOf(\"jsdom\") >= 0; }) || false;\nexport var canUseLayoutEffect = canUseDOM && !usingJSDOM;\n//# sourceMappingURL=canUse.js.map","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n set(\"@@species\");\n return subclass;\n}\n//# sourceMappingURL=subclassing.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\nvar Concast = (function (_super) {\n __extends(Concast, _super);\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n return function () { return _this.removeObserver(observer); };\n }) || this;\n _this.observers = new Set();\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function (result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n _this.notify(\"next\", result);\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function (error) {\n var sub = _this.sub;\n if (sub !== null) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n _this.latest = [\"error\", error];\n _this.reject(error);\n _this.notify(\"error\", error);\n iterateObserversSafely(_this.observers, \"error\", error);\n }\n },\n complete: function () {\n var _a = _this, sub = _a.sub, _b = _a.sources, sources = _b === void 0 ? [] : _b;\n if (sub !== null) {\n var value = sources.shift();\n if (!value) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n if (_this.latest &&\n _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n }\n else {\n _this.resolve();\n }\n _this.notify(\"complete\");\n iterateObserversSafely(_this.observers, \"complete\");\n }\n else if (isPromiseLike(value)) {\n value.then(function (obs) { return _this.sub = obs.subscribe(_this.handlers); });\n }\n else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n },\n };\n _this.nextResultListeners = new Set();\n _this.cancel = function (reason) {\n _this.reject(reason);\n _this.sources = [];\n _this.handlers.complete();\n };\n _this.promise.catch(function (_) { });\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) { return _this.start(iterable); }, _this.handlers.error);\n }\n else {\n _this.start(sources);\n }\n return _this;\n }\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0)\n return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n if (this.sub === null &&\n nextOrError === \"next\" &&\n observer.complete) {\n observer.complete();\n }\n }\n };\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n };\n Concast.prototype.removeObserver = function (observer) {\n if (this.observers.delete(observer) &&\n this.observers.size < 1) {\n this.handlers.complete();\n }\n };\n Concast.prototype.notify = function (method, arg) {\n var nextResultListeners = this.nextResultListeners;\n if (nextResultListeners.size) {\n this.nextResultListeners = new Set;\n nextResultListeners.forEach(function (listener) { return listener(method, arg); });\n }\n };\n Concast.prototype.beforeNext = function (callback) {\n var called = false;\n this.nextResultListeners.add(function (method, arg) {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n };\n return Concast;\n}(Observable));\nexport { Concast };\nfixObservableSubclass(Concast);\n//# sourceMappingURL=Concast.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n return (isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value));\n}\nexport function isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n var mergedData = prevResult;\n var merger = new DeepMerger();\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (_a) {\n var data = _a.data, path = _a.path;\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\nexport function graphQLResultHasError(result) {\n var errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\nexport function getGraphQLErrorsFromResult(result) {\n var graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (incrementalResult) {\n if (incrementalResult.errors) {\n graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n//# sourceMappingURL=errorHandling.js.map","export function compact() {\n var objects = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=compact.js.map","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}\n//# sourceMappingURL=makeUniqueId.js.map","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value) {\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"<undefined>\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map","import { __assign } from \"tslib\";\nimport { compact } from \"./compact.js\";\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, (defaults && defaults.variables)), options.variables),\n });\n}\n//# sourceMappingURL=mergeOptions.js.map","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\n//# sourceMappingURL=fromError.js.map","export var throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n//# sourceMappingURL=throwServerError.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \".concat(key)) : new InvariantError(27);\n }\n }\n return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n }\n else {\n context = __assign(__assign({}, context), next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query) || undefined\n : '';\n }\n return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(22);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var from = ApolloLink.from;\n//# sourceMappingURL=from.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map","export var version = '3.7.16';\n//# sourceMappingURL=version.js.map","import { canUseAsyncIteratorSymbol } from \"./canUse.js\";\nexport function isNodeResponse(value) {\n return !!value.body;\n}\nexport function isReadableStream(value) {\n return !!value.getReader;\n}\nexport function isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol &&\n value[Symbol.asyncIterator]);\n}\nexport function isStreamableBlob(value) {\n return !!value.stream;\n}\nexport function isBlob(value) {\n return !!value.arrayBuffer;\n}\nexport function isNodeReadableStream(value) {\n return !!value.pipe;\n}\n//# sourceMappingURL=responseIterator.js.map","export default function asyncIterator(source) {\n var _a;\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function () {\n return iterator.next();\n }\n },\n _a[Symbol.asyncIterator] = function () {\n return this;\n },\n _a;\n}\n//# sourceMappingURL=async.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n function onData(chunk) {\n if (error)\n return;\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error)\n return reject(error);\n if (data.length)\n return resolve({ value: data.shift(), done: false });\n if (done)\n return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n var iterator = {\n next: function () {\n return getNext();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function () {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value, done: false });\n })\n .catch(reject);\n });\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=promise.js.map","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function () {\n return reader.read();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=reader.js.map","import { isAsyncIterableIterator, isBlob, isNodeResponse, isNodeReadableStream, isReadableStream, isStreamableBlob, } from \"../../utilities/common/responseIterator.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response))\n body = response.body;\n if (isAsyncIterableIterator(body))\n return asyncIterator(body);\n if (isReadableStream(body))\n return readerIterator(body.getReader());\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n if (isBlob(body))\n return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body))\n return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","import { __extends, __spreadArray } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonNullObject } from \"../utilities/index.js\";\nexport var PROTOCOL_ERRORS_SYMBOL = Symbol();\nexport function graphQLResultHasProtocolErrors(result) {\n if (result.extensions) {\n return Array.isArray(result.extensions[PROTOCOL_ERRORS_SYMBOL]);\n }\n return false;\n}\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var errors = __spreadArray(__spreadArray(__spreadArray([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true);\n if (err.networkError)\n errors.push(err.networkError);\n return errors\n .map(function (err) { return isNonNullObject(err) && err.message || 'Error message not found.'; })\n .join('\\n');\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, protocolErrors = _a.protocolErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.name = 'ApolloError';\n _this.graphQLErrors = graphQLErrors || [];\n _this.protocolErrors = protocolErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, observer) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _f, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n var _g, _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter))\n ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n : \"-\";\n boundary = \"\\r\\n--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _j.label = 1;\n case 1:\n if (!running) return [3, 3];\n return [4, iterator.next()];\n case 2:\n _f = _j.sent(), value = _f.value, done = _f.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1) {\n message = void 0;\n _g = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ], message = _g[0], buffer = _g[1];\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n if (contentType_1 &&\n contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n body = message.slice(i);\n if (body) {\n try {\n result = parseJsonBody(response, body);\n if (Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result) {\n if (isApolloPayloadResult(result)) {\n next = {};\n if (\"payload\" in result) {\n next = __assign({}, result.payload);\n }\n if (\"errors\" in result) {\n next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_h = {}, _h[PROTOCOL_ERRORS_SYMBOL] = result.errors, _h)) });\n }\n (_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, next);\n }\n else {\n (_c = observer.next) === null || _c === void 0 ? void 0 : _c.call(observer, result);\n }\n }\n else if (Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext) {\n (_d = observer.complete) === null || _d === void 0 ? void 0 : _d.call(observer);\n }\n }\n catch (err) {\n handleError(err, observer);\n }\n }\n bi = buffer.indexOf(boundary);\n }\n return [3, 1];\n case 3:\n (_e = observer.complete) === null || _e === void 0 ? void 0 : _e.call(observer);\n return [2];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n if (i > -1) {\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n var getResult = function () {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n return bodyText;\n }\n };\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n var _a, _b;\n if (err.name === \"AbortError\")\n return;\n if (err.result && err.result.errors && err.result.data) {\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, err.result);\n }\n (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, err);\n}\nexport function readJsonBody(response, operation, observer) {\n parseAndCheckHttpResponse(operation)(response)\n .then(function (result) {\n var _a, _b;\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, result);\n (_b = observer.complete) === null || _b === void 0 ? void 0 : _b.call(observer);\n })\n .catch(function (err) { return handleError(err, observer); });\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response\n .text()\n .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n });\n };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \".concat(label, \" is not serializable: \").concat(e.message)) : new InvariantError(24);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from 'graphql';\n;\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json',\n};\nvar defaultOptions = {\n method: 'POST',\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n;\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = { originalName: name, value: headers[name] };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n throw __DEV__ ? new InvariantError(\"\\n\\\"fetch\\\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\\n\\nimport fetch from 'cross-fetch';\\nimport { ApolloClient, HttpLink } from '@apollo/client';\\nconst client = new ApolloClient({\\n link: new HttpLink({ uri: '/graphql', fetch })\\n});\\n \") : new InvariantError(23);\n }\n};\n//# sourceMappingURL=checkFetcher.js.map","export var createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\n//# sourceMappingURL=createSignalIfSupported.js.map","export var selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n//# sourceMappingURL=selectURI.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, readJsonBody } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe, getMainDefinition } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions, preserveHeaderCase: preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function (node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n },\n });\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n var definitionIsSubscription = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'subscription';\n };\n var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));\n var hasDefer = hasDirectives(['defer'], operation.query);\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (hasDefer || isSubscription) {\n options.headers = options.headers || {};\n var acceptHeader = \"multipart/mixed;\";\n if (isSubscription && hasDefer) {\n __DEV__ && invariant.warn(\"Multipart-subscriptions do not support @defer\");\n }\n if (isSubscription) {\n acceptHeader += 'boundary=graphql;subscriptionSpec=1.0,application/json';\n }\n else if (hasDefer) {\n acceptHeader += 'deferSpec=20220824,application/json';\n }\n options.headers.accept = acceptHeader;\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n currentFetch(chosenURI, options)\n .then(function (response) {\n var _a;\n operation.setContext({ response: response });\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n }\n else {\n return readJsonBody(response, operation, observer);\n }\n })\n .catch(function (err) { return handleError(err, observer); });\n return function () {\n if (controller)\n controller.abort();\n };\n });\n });\n};\n//# sourceMappingURL=createHttpLink.js.map","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\nvar HttpLink = (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, createHttpLink(options).request) || this;\n _this.options = options;\n return _this;\n }\n return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n//# sourceMappingURL=HttpLink.js.map","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map();\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a, b) {\n try {\n return check(a, b);\n }\n finally {\n previousComparisons.clear();\n }\n}\n// Allow default imports as well.\nexport default equal;\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length)\n return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b))\n return true;\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length)\n return false;\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a)\n return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size)\n return false;\n if (previouslyCompared(a, b))\n return true;\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n while (true) {\n const info = aIterator.next();\n if (info.done)\n break;\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n return true;\n }\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\n }\n }\n return len === -1;\n }\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]': {\n const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n // Otherwise the values are not equal.\n return false;\n}\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\nconst nativeCodeSuffix = \"{ [native code] }\";\nfunction endsWith(full, suffix) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b))\n return true;\n }\n else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n//# sourceMappingURL=index.js.map","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\r\n// object keys weakly, yet can also hold non-object keys, unlike the\r\n// native `WeakMap`.\r\n// If no makeData function is supplied, the looked-up data will be an empty,\r\n// null-prototype Object.\r\nvar defaultMakeData = function () { return Object.create(null); };\r\n// Useful for processing arguments objects as well as arrays.\r\nvar _a = Array.prototype, forEach = _a.forEach, slice = _a.slice;\r\nvar Trie = /** @class */ (function () {\r\n function Trie(weakness, makeData) {\r\n if (weakness === void 0) { weakness = true; }\r\n if (makeData === void 0) { makeData = defaultMakeData; }\r\n this.weakness = weakness;\r\n this.makeData = makeData;\r\n }\r\n Trie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n Trie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n forEach.call(array, function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = this.makeData(slice.call(array)));\r\n };\r\n Trie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new Trie(this.weakness, this.makeData));\r\n return child;\r\n };\r\n return Trie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\nexport { Trie };\n//# sourceMappingURL=trie.esm.js.map\n","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext = null;\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE = {};\nlet idCounter = 1;\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n constructor() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n }\n hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE)\n break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n getValue() {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n }\n withValue(value, callback, \n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n }\n finally {\n currentContext = parent;\n }\n }\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(callback) {\n const context = currentContext;\n return function () {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n }\n finally {\n currentContext = saved;\n }\n };\n }\n // Immediately run a callback function without any captured context.\n static noContext(callback, \n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n }\n finally {\n currentContext = saved;\n }\n }\n else {\n return callback.apply(thisArg, args);\n }\n }\n};\nfunction maybe(fn) {\n try {\n return fn();\n }\n catch (ignored) { }\n}\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = \n// Prefer globalThis when available.\n// https://github.com/benjamn/wryware/issues/347\nmaybe(() => globalThis) ||\n // Fall back to global, which works in Node.js and may be converted by some\n // bundlers to the appropriate identifier (window, self, ...) depending on the\n // bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\n maybe(() => global) ||\n // Otherwise, use a dummy host that's local to this module. We used to fall\n // back to using the Array constructor as a namespace, but that was flagged in\n // https://github.com/benjamn/wryware/issues/347, and can be avoided.\n Object.create(null);\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost = host;\nexport const Slot = globalHost[globalKey] ||\n // Earlier versions of this package stored the globalKey property on the Array\n // constructor, so we check there as well, to prevent Slot class duplication.\n Array[globalKey] ||\n (function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n }\n finally {\n return Slot;\n }\n })(makeSlotClass());\n//# sourceMappingURL=slot.js.map","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var node = this.getNode(key);\r\n return node && node.value;\r\n };\r\n Cache.prototype.getNode = function (key) {\r\n var node = this.map.get(key);\r\n if (node && node !== this.newest) {\r\n var older = node.older, newer = node.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n node.older = this.newest;\r\n node.older.newer = node;\r\n node.newer = null;\r\n this.newest = node;\r\n if (node === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return node;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var node = this.getNode(key);\r\n if (node) {\r\n return node.value = value;\r\n }\r\n node = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = node;\r\n }\r\n this.newest = node;\r\n this.oldest = this.oldest || node;\r\n this.map.set(key, node);\r\n return node.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var node = this.map.get(key);\r\n if (node) {\r\n if (node === this.newest) {\r\n this.newest = node.older;\r\n }\r\n if (node === this.oldest) {\r\n this.oldest = node.newer;\r\n }\r\n if (node.newer) {\r\n node.newer.older = node.older;\r\n }\r\n if (node.older) {\r\n node.older.newer = node.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(node.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nvar \r\n// This Array.from polyfill is restricted to working with Set<any> for now,\r\n// but we can improve the polyfill and add other input types, as needed. Note\r\n// that this fallback implementation will only be used if the host environment\r\n// does not support a native Array.from function. In most modern JS runtimes,\r\n// the toArray function exported here will be === Array.from.\r\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\r\n var array = [];\r\n collection.forEach(function (item) { return array.push(item); });\r\n return array;\r\n} : _a);\r\nfunction maybeUnsubscribe(entryOrDep) {\r\n var unsubscribe = entryOrDep.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entryOrDep.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn) {\r\n this.fn = fn;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n this.deps = null;\r\n ++Entry.count;\r\n }\r\n Entry.prototype.peek = function () {\r\n if (this.value.length === 1 && !mightBeDirty(this)) {\r\n rememberParent(this);\r\n return this.value[0];\r\n }\r\n };\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function (args) {\r\n assert(!this.recomputing, \"already recomputing\");\r\n rememberParent(this);\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this, args)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n this.setDirty();\r\n // Sever any dependency relationships with our own children, so those\r\n // children don't retain this parent Entry in their child.parents sets,\r\n // thereby preventing it from being fully garbage collected.\r\n forgetChildren(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n eachParent(this, function (parent, child) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.prototype.forget = function () {\r\n // The code that creates Entry objects in index.ts will replace this method\r\n // with one that actually removes the Entry from the cache, which will also\r\n // trigger the entry.dispose method.\r\n this.dispose();\r\n };\r\n Entry.prototype.dependOn = function (dep) {\r\n dep.add(this);\r\n if (!this.deps) {\r\n this.deps = emptySetPool.pop() || new Set();\r\n }\r\n this.deps.add(dep);\r\n };\r\n Entry.prototype.forgetDeps = function () {\r\n var _this = this;\r\n if (this.deps) {\r\n toArray(this.deps).forEach(function (dep) { return dep.delete(_this); });\r\n this.deps.clear();\r\n emptySetPool.push(this.deps);\r\n this.deps = null;\r\n }\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry, args) {\r\n forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\r\n if (maybeSubscribe(entry, args)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry, args) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n eachParent(child, reportDirtyChild);\r\n}\r\nfunction reportClean(child) {\r\n eachParent(child, reportCleanChild);\r\n}\r\nfunction eachParent(child, callback) {\r\n var parentCount = child.parents.size;\r\n if (parentCount) {\r\n var parents = toArray(child.parents);\r\n for (var i = 0; i < parentCount; ++i) {\r\n callback(parents[i], child);\r\n }\r\n }\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n var parentWasClean = !mightBeDirty(parent);\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n // If parent was clean before, it just became (possibly) dirty (according to\r\n // mightBeDirty), since we just added child to parent.dirtyChildren.\r\n if (parentWasClean) {\r\n reportDirty(parent);\r\n }\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n if (parent.childValues.size > 0) {\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n });\r\n }\r\n // Remove this parent Entry from any sets to which it was added by the\r\n // addToSet method.\r\n parent.forgetDeps();\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry, args) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\n\nvar EntryMethods = {\r\n setDirty: true,\r\n dispose: true,\r\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\r\n};\r\nfunction dep(options) {\r\n var depsByKey = new Map();\r\n var subscribe = options && options.subscribe;\r\n function depend(key) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n var dep_1 = depsByKey.get(key);\r\n if (!dep_1) {\r\n depsByKey.set(key, dep_1 = new Set);\r\n }\r\n parent.dependOn(dep_1);\r\n if (typeof subscribe === \"function\") {\r\n maybeUnsubscribe(dep_1);\r\n dep_1.unsubscribe = subscribe(key);\r\n }\r\n }\r\n }\r\n depend.dirty = function dirty(key, entryMethodName) {\r\n var dep = depsByKey.get(key);\r\n if (dep) {\r\n var m_1 = (entryMethodName &&\r\n hasOwnProperty.call(EntryMethods, entryMethodName)) ? entryMethodName : \"setDirty\";\r\n // We have to use toArray(dep).forEach instead of dep.forEach, because\r\n // modifying a Set while iterating over it can cause elements in the Set\r\n // to be removed from the Set before they've been iterated over.\r\n toArray(dep).forEach(function (entry) { return entry[m_1](); });\r\n depsByKey.delete(key);\r\n maybeUnsubscribe(dep);\r\n }\r\n };\r\n return depend;\r\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\r\n var keyTrie = new Trie(typeof WeakMap === \"function\");\r\n return function () {\r\n return keyTrie.lookupArray(arguments);\r\n };\r\n}\r\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var keyArgs = options.keyArgs;\r\n var makeCacheKey = options.makeCacheKey ||\r\n makeDefaultMakeCacheKeyFunction();\r\n var optimistic = function () {\r\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var entry = cache.get(key);\r\n if (!entry) {\r\n cache.set(key, entry = new Entry(originalFunction));\r\n entry.subscribe = options.subscribe;\r\n // Give the Entry the ability to trigger cache.delete(key), even though\r\n // the Entry itself does not know about key or cache.\r\n entry.forget = function () { return cache.delete(key); };\r\n }\r\n var value = entry.recompute(Array.prototype.slice.call(arguments));\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(optimistic, \"size\", {\r\n get: function () {\r\n return cache[\"map\"].size;\r\n },\r\n configurable: false,\r\n enumerable: false,\r\n });\r\n function dirtyKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.setDirty();\r\n }\r\n }\r\n optimistic.dirtyKey = dirtyKey;\r\n optimistic.dirty = function dirty() {\r\n dirtyKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function peekKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n return entry.peek();\r\n }\r\n }\r\n optimistic.peekKey = peekKey;\r\n optimistic.peek = function peek() {\r\n return peekKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function forgetKey(key) {\r\n return cache.delete(key);\r\n }\r\n optimistic.forgetKey = forgetKey;\r\n optimistic.forget = function forget() {\r\n return forgetKey(makeCacheKey.apply(null, arguments));\r\n };\r\n optimistic.makeCacheKey = makeCacheKey;\r\n optimistic.getKey = keyArgs ? function getKey() {\r\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\r\n } : makeCacheKey;\r\n return Object.freeze(optimistic);\r\n}\n\nexport { defaultMakeCacheKey, dep, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __assign, __rest } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { getFragmentQueryDocument, } from \"../../utilities/index.js\";\nvar ApolloCache = (function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n ApolloCache.prototype.batch = function (options) {\n var _this = this;\n var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic :\n options.optimistic === false ? null : void 0;\n var updateResult;\n this.performTransaction(function () { return updateResult = options.update(_this); }, optimisticId);\n return updateResult;\n };\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n ApolloCache.prototype.gc = function () {\n return [];\n };\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { rootId: options.id || 'ROOT_QUERY', optimistic: optimistic }));\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { query: this.getFragmentDoc(options.fragment, options.fragmentName), rootId: options.id, optimistic: optimistic }));\n };\n ApolloCache.prototype.writeQuery = function (_a) {\n var id = _a.id, data = _a.data, options = __rest(_a, [\"id\", \"data\"]);\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data,\n }));\n };\n ApolloCache.prototype.writeFragment = function (_a) {\n var id = _a.id, data = _a.data, fragment = _a.fragment, fragmentName = _a.fragmentName, options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n }));\n };\n ApolloCache.prototype.updateQuery = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readQuery(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeQuery(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n ApolloCache.prototype.updateFragment = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readFragment(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeFragment(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n return ApolloCache;\n}());\nexport { ApolloCache };\n//# sourceMappingURL=cache.js.map","import { __extends } from \"tslib\";\nvar MissingFieldError = (function (_super) {\n __extends(MissingFieldError, _super);\n function MissingFieldError(message, path, query, variables) {\n var _a;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.path = path;\n _this.query = query;\n _this.variables = variables;\n if (Array.isArray(_this.path)) {\n _this.missing = _this.message;\n for (var i = _this.path.length - 1; i >= 0; --i) {\n _this.missing = (_a = {}, _a[_this.path[i]] = _this.missing, _a);\n }\n }\n else {\n _this.missing = _this.path;\n }\n _this.__proto__ = MissingFieldError.prototype;\n return _this;\n }\n return MissingFieldError;\n}(Error));\nexport { MissingFieldError };\n//# sourceMappingURL=common.js.map","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\nexport class Trie {\n constructor(weakness = true, makeData = defaultMakeData) {\n this.weakness = weakness;\n this.makeData = makeData;\n }\n lookup(...array) {\n return this.lookupArray(array);\n }\n lookupArray(array) {\n let node = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data\n : node.data = this.makeData(slice.call(array));\n }\n peek(...array) {\n return this.peekArray(array);\n }\n peekArray(array) {\n let node = this;\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map = this.weakness && isObjRef(array[i]) ? node.weak : node.strong;\n node = map && map.get(array[i]);\n }\n return node && node.data;\n }\n getChildTrie(key) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap())\n : this.strong || (this.strong = new Map());\n let child = map.get(key);\n if (!child)\n map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n}\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null)\n break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n//# sourceMappingURL=index.js.map","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, createFragmentMap, getFragmentDefinitions, isArray, } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function isNullish(value) {\n return value === null || value === void 0;\n}\nexport { isArray };\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename, id = _a.id, _id = _a._id;\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n !isNullish(id) ? { id: id } :\n !isNullish(_id) ? { _id: _id } :\n void 0;\n }\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n if (!isNullish(id)) {\n return \"\".concat(__typename, \":\").concat((typeof id === \"number\" ||\n typeof id === \"string\") ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false,\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference)\n ? store.get(objectOrReference.__ref, \"__typename\")\n : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return isArray(result)\n ? result.every(function (item) { return selectionSetMatchesResult(selectionSet, item, variables); })\n : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n return true;\n });\n }\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) &&\n !isReference(value) &&\n !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger;\n}\nexport function extractFragmentContext(document, fragments) {\n var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap: fragmentMap,\n lookupFragment: function (name) {\n var def = fragmentMap[name];\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n return def || null;\n },\n };\n}\n//# sourceMappingURL=helpers.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\nvar delModifier = function () { return DELETE; };\nvar INVALIDATE = Object.create(null);\nvar EntityStore = (function () {\n function EntityStore(policies, group) {\n var _this = this;\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n this.getFieldValue = function (objectOrReference, storeFieldName) { return maybeDeepFreeze(isReference(objectOrReference)\n ? _this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]); };\n this.canRead = function (objOrRef) {\n return isReference(objOrRef)\n ? _this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n var id = _this.policies.identify(objOrIdOrRef)[0];\n if (id) {\n var ref = makeReference(id);\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n }\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence)\n this.group.depend(dataId, \"__exists\");\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n var dataId;\n if (isReference(older))\n older = older.__ref;\n if (isReference(newer))\n newer = newer.__ref;\n var existing = typeof older === \"string\"\n ? this.lookup(dataId = older)\n : older;\n var incoming = typeof newer === \"string\"\n ? this.lookup(dataId = newer)\n : newer;\n if (!incoming)\n return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing)\n fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName &&\n !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n if (fieldsToDirty_1.__typename &&\n !(existing && existing.__typename) &&\n this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) { return _this.group.dirty(dataId, fieldName); });\n }\n }\n };\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function (fieldNameOrOptions, from) { return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n } : fieldNameOrOptions, { store: _this }); },\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0)\n return;\n var modify = typeof fields === \"function\"\n ? fields\n : fields[storeFieldName] || fields[fieldName];\n if (modify) {\n var newValue = modify === delModifier ? DELETE :\n modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), { fieldName: fieldName, storeFieldName: storeFieldName, storage: _this.getStorage(dataId, storeFieldName) }));\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n }\n else {\n if (newValue === DELETE)\n newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n }\n else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n return true;\n }\n }\n return false;\n };\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args\n ? this.policies.getStoreFieldName({ typename: typename, fieldName: fieldName, args: args })\n : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {},\n _a[storeFieldName] = delModifier,\n _a) : delModifier);\n }\n return false;\n };\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n };\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n EntityStore.prototype.extract = function () {\n var _this = this;\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n };\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n if (newData) {\n var __META = newData.__META, rest_1 = __rest(newData, [\"__META\"]);\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count)\n delete this.rootIds[rootId];\n return count;\n }\n return 0;\n };\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) { ids = new Set(); }\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n }\n else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n };\n EntityStore.prototype.gc = function () {\n var _this = this;\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n var root_1 = this;\n while (root_1 instanceof Layer)\n root_1 = root_1.parent;\n idsToRemove.forEach(function (id) { return root_1.delete(id); });\n }\n return idsToRemove;\n };\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root)\n return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n };\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n return EntityStore;\n}());\nexport { EntityStore };\nvar CacheGroup = (function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) { parent = null; }\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n return CacheGroup;\n}());\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n(function (EntityStore) {\n var Root = (function (_super) {\n __extends(Root, _super);\n function Root(_a) {\n var policies = _a.policies, _b = _a.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a.seed;\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed)\n _this.replace(seed);\n return _this;\n }\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n Root.prototype.removeLayer = function () {\n return this;\n };\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n return Root;\n }(EntityStore));\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n var parent = this.parent.removeLayer(layerId);\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n _this.delete(dataId);\n }\n else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n }\n else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n return parent;\n }\n if (parent === this.parent)\n return this;\n return parent.addLayer(this.id, this.replay);\n };\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n while (p.parent)\n p = p.parent;\n return p.getStorage.apply(p, arguments);\n };\n return Layer;\n}(EntityStore));\nvar Stump = (function (_super) {\n __extends(Stump, _super);\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () { }, new CacheGroup(root.group.caching, root.group)) || this;\n }\n Stump.prototype.removeLayer = function () {\n return this;\n };\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n return Stump;\n}(Layer));\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}\n//# sourceMappingURL=entityStore.js.map","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray, } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return isArray(value)\n ? value.slice(0)\n : __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n return value;\n}\nvar ObjectCanon = (function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n };\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original)\n return original;\n var proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value))\n return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n case null:\n case Object.prototype: {\n if (this.known.has(value))\n return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n };\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json: json });\n }\n }\n return node.keys;\n };\n return ObjectCanon;\n}());\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\nvar stringifyCanon;\nvar stringifyCache;\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n//# sourceMappingURL=object-canon.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { Kind, } from 'graphql';\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, shouldInclude, addTypenameToDocument, getDefaultValues, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact, } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\nfunction execSelectionSetKeyArgs(options) {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n options.context.canonizeResults,\n ];\n}\nvar StoreReader = (function () {\n function StoreReader(config) {\n var _this = this;\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n this.canon = config.canon || new ObjectCanon;\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), { result: _this.canon.admit(other.result) });\n }\n return other;\n }\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function (selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (_a) {\n var field = _a.field, array = _a.array, context = _a.context;\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, _b = _a.rootId, rootId = _b === void 0 ? 'ROOT_QUERY' : _b, variables = _a.variables, _c = _a.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: __assign({ store: store, query: query, policies: policies, variables: variables, varString: canonicalStringify(variables), canonizeResults: canonizeResults }, extractFragmentContext(query, this.config.fragments)),\n });\n var missing;\n if (execResult.missing) {\n missing = [new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables)];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n return {\n result: execResult.result,\n complete: !missing,\n missing: missing,\n };\n };\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n };\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, objectOrReference = _a.objectOrReference, enclosingRef = _a.enclosingRef, context = _a.context;\n if (isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\"),\n };\n }\n var variables = context.variables, policies = context.policies, store = context.store;\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n var objectsToMerge = [];\n var missing;\n var missingMerger = new DeepMerger();\n if (this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({ __typename: typename });\n }\n function handleMissing(result, resultName) {\n var _a;\n if (result.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));\n }\n return result.result;\n }\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a, _b;\n if (!shouldInclude(selection, variables))\n return;\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n }, context);\n var resultName = resultKeyNameFromField(selection);\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, (_a = {},\n _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference)\n ? objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)),\n _a));\n }\n }\n else if (isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context,\n }), resultName);\n }\n else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n }\n else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context,\n }), resultName);\n }\n if (fieldValue !== void 0) {\n objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n }\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(5);\n }\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var result = mergeDeepArray(objectsToMerge);\n var finalResult = { result: result, missing: missing };\n var frozen = context.canonizeResults\n ? this.canon.admit(finalResult)\n : maybeDeepFreeze(finalResult);\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n return frozen;\n };\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;\n var missing;\n var missingMerger = new DeepMerger();\n function handleMissing(childResult, i) {\n var _a;\n if (childResult.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n }\n return childResult.result;\n }\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n if (isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context,\n }), i);\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context,\n }), i);\n }\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing,\n };\n };\n return StoreReader;\n}());\nexport { StoreReader };\nfunction firstMissing(tree) {\n try {\n JSON.stringify(tree, function (_, value) {\n if (typeof value === \"string\")\n throw value;\n return value;\n });\n }\n catch (result) {\n return result;\n }\n}\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \".concat(getTypenameFromStoreObject(store, value), \" returned for query field \").concat(field.name.value)) : invariant(!isReference(value), 6);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}\n//# sourceMappingURL=readFromStore.js.map","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set,\n dep: dep(),\n });\n }\n return info;\n}\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.forgetCache(cache); });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.attachCache(cache); });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n var rv = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) { return listener(value); });\n }\n }\n else {\n var cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n return value;\n };\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n rv.forgetCache = function (cache) { return caches.delete(cache); };\n return rv;\n}\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n//# sourceMappingURL=reactiveVars.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\nvar specifierInfoCache = Object.create(null);\nfunction lookupSpecifierInfo(spec) {\n var cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null));\n}\nexport function keyFieldsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n var extract = function (from, key) { return context.readField(key, from); };\n var keyObject = context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n var extracted = extractKeyPath(context.storeObject, schemaKeyPath, extract);\n if (extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])) {\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n __DEV__ ? invariant(extracted !== void 0, \"Missing field '\".concat(schemaKeyPath.join('.'), \"' while extracting keyFields from \").concat(JSON.stringify(object))) : invariant(extracted !== void 0, 2);\n return extracted;\n });\n return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n });\n}\nexport function keyArgsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyArgsFn || (info.keyArgsFn = function (args, _a) {\n var field = _a.field, variables = _a.variables, fieldName = _a.fieldName;\n var collected = collectSpecifierPaths(specifier, function (keyPath) {\n var firstKey = keyPath[0];\n var firstChar = firstKey.charAt(0);\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n var directiveName_1 = firstKey.slice(1);\n var d = field.directives.find(function (d) { return d.name.value === directiveName_1; });\n var directiveArgs = d && argumentsObjectFromField(d, variables);\n return directiveArgs && extractKeyPath(directiveArgs, keyPath.slice(1));\n }\n return;\n }\n if (firstChar === \"$\") {\n var variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n var varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n return;\n }\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n var suffix = JSON.stringify(collected);\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n return fieldName;\n });\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n var merger = new DeepMerger;\n return getSpecifierPaths(specifier).reduce(function (collected, path) {\n var _a;\n var toMerge = extractor(path);\n if (toMerge !== void 0) {\n for (var i = path.length - 1; i >= 0; --i) {\n toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n var info = lookupSpecifierInfo(spec);\n if (!info.paths) {\n var paths_1 = info.paths = [];\n var currentPath_1 = [];\n spec.forEach(function (s, i) {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(function (p) { return paths_1.push(currentPath_1.concat(p)); });\n currentPath_1.length = 0;\n }\n else {\n currentPath_1.push(s);\n if (!isArray(spec[i + 1])) {\n paths_1.push(currentPath_1.slice(0));\n currentPath_1.length = 0;\n }\n }\n });\n }\n return info.paths;\n}\nfunction extractKey(object, key) {\n return object[key];\n}\nexport function extractKeyPath(object, path, extract) {\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key) {\n return isArray(obj)\n ? obj.map(function (child) { return reducer(child, key); })\n : obj && extract(obj, key);\n }, object));\n}\nfunction normalize(value) {\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize);\n }\n return collectSpecifierPaths(Object.keys(value).sort(), function (path) { return extractKeyPath(value, path); });\n }\n return value;\n}\n//# sourceMappingURL=key-extractor.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray, } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from \"./key-extractor.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args :\n spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\nvar nullKeyFieldsFn = function () { return void 0; };\nvar simpleKeyArgsFn = function (_args, context) { return context.fieldName; };\nvar mergeTrueFn = function (existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\nvar mergeFalseFn = function (_, incoming) { return incoming; };\nvar Policies = (function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({ dataIdFromObject: defaultDataIdFromObject }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n Policies.prototype.identify = function (object, partialContext) {\n var _a;\n var policies = this;\n var typename = partialContext && (partialContext.typename ||\n ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename)) || object.__typename;\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n var storeObject = partialContext && partialContext.storeObject || object;\n var context = __assign(__assign({}, partialContext), { typename: typename, storeObject: storeObject, readField: partialContext && partialContext.readField || function () {\n var options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n } });\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n while (keyFn) {\n var specifierOrId = keyFn(__assign(__assign({}, object), storeObject), context);\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n }\n else {\n id = specifierOrId;\n break;\n }\n }\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename], queryType = _a.queryType, mutationType = _a.mutationType, subscriptionType = _a.subscriptionType, incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n if (queryType)\n _this.setRootTypename(\"Query\", typename);\n if (mutationType)\n _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType)\n _this.setRootTypename(\"Subscription\", typename);\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n }\n else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields, fields = incoming.fields;\n function setMerge(existing, merge) {\n existing.merge =\n typeof merge === \"function\" ? merge :\n merge === true ? mergeTrueFn :\n merge === false ? mergeFalseFn :\n existing.merge;\n }\n setMerge(existing, incoming.merge);\n existing.keyFn =\n keyFields === false ? nullKeyFieldsFn :\n isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) :\n typeof keyFields === \"function\" ? keyFields :\n existing.keyFn;\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n var incoming = fields[fieldName];\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n }\n else {\n var keyArgs = incoming.keyArgs, read = incoming.read, merge = incoming.merge;\n existing.keyFn =\n keyArgs === false ? simpleKeyArgsFn :\n isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) :\n typeof keyArgs === \"function\" ? keyArgs :\n existing.keyFn;\n if (typeof read === \"function\") {\n existing.read = read;\n }\n setMerge(existing, merge);\n }\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) { typename = which; }\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \".concat(which, \" __typename more than once\")) : invariant(!old || old === which, 3);\n if (old)\n delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n var match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype), fields = _a.fields, rest = __rest(_a, [\"fields\"]);\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n var inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n return this.typePolicies[typename];\n };\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)));\n }\n };\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n return supertypeSet;\n };\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n if (!fragment.typeCondition)\n return true;\n if (!typename)\n return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype)\n return true;\n if (this.usingPossibleTypes &&\n this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n var maybeEnqueue_1 = function (subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n if (supertypeSet &&\n supertypeSet.size &&\n workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \".concat(typename, \" of supertype \").concat(supertype));\n }\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n supertypeSet.forEach(maybeEnqueue_1);\n if (needToCheckFuzzySubtypes &&\n i === workQueue_1.length - 1 &&\n selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n return false;\n };\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n }\n else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field\n ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n if (storeFieldName === false) {\n return fieldName;\n }\n return fieldName === fieldNameFromStoreName(storeFieldName)\n ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n };\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference)\n return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField)\n return;\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename)\n options.typename = typename;\n }\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference)\n ? objectOrReference.__ref\n : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n return existing;\n };\n Policies.prototype.getReadFunction = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n };\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n };\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field, typename = _a.typename, merge = _a.merge;\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n if (merge === mergeFalseFn) {\n return incoming;\n }\n if (context.overwrite) {\n existing = void 0;\n }\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, { typename: typename, fieldName: field.name.value, field: field, variables: context.variables }, context, storage || Object.create(null)));\n };\n return Policies;\n}());\nexport { Policies };\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store, toReference = _a.toReference, canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function () {\n return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n var fieldNameOrOptions = readFieldArgs[0], from = readFieldArgs[1], argc = readFieldArgs.length;\n var options;\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: argc > 1 ? from : objectOrReference,\n };\n }\n else {\n options = __assign({}, fieldNameOrOptions);\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \".concat(stringifyForDisplay(Array.from(readFieldArgs))));\n }\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n return options;\n}\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(4);\n }\n if (isNonNullObject(existing) &&\n isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n if (typesDiffer) {\n return incoming;\n }\n if (isReference(existing) &&\n storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n if (storeValueIsStoreObject(existing) &&\n isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n if (storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n return incoming;\n };\n}\n//# sourceMappingURL=policies.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { Kind, } from 'graphql';\nimport { getFragmentFromSelection, getDefaultValues, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField, } from \"../../utilities/index.js\";\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n;\nfunction getContextFlavor(context, clientOnly, deferred) {\n var key = \"\".concat(clientOnly).concat(deferred);\n var flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(key, flavored = (context.clientOnly === clientOnly &&\n context.deferred === deferred) ? context : __assign(__assign({}, context), { clientOnly: clientOnly, deferred: deferred }));\n }\n return flavored;\n}\nvar StoreWriter = (function () {\n function StoreWriter(cache, reader, fragments) {\n this.cache = cache;\n this.reader = reader;\n this.fragments = fragments;\n }\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n var query = _a.query, result = _a.result, dataId = _a.dataId, variables = _a.variables, overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n var context = __assign(__assign({ store: store, written: Object.create(null), merge: function (existing, incoming) {\n return merger.merge(existing, incoming);\n }, variables: variables, varString: canonicalStringify(variables) }, extractFragmentContext(query, this.fragments)), { overwrite: !!overwrite, incomingById: new Map, clientOnly: false, deferred: false, flavors: new Map });\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map },\n context: context,\n });\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \".concat(JSON.stringify(result))) : new InvariantError(7);\n }\n context.incomingById.forEach(function (_a, dataId) {\n var storeObject = _a.storeObject, mergeTree = _a.mergeTree, fieldNodeSet = _a.fieldNodeSet;\n var entityRef = makeReference(dataId);\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n if (isReference(applied)) {\n return;\n }\n storeObject = applied;\n }\n if (__DEV__ && !context.overwrite) {\n var fieldsWithSelectionSets_1 = Object.create(null);\n fieldNodeSet.forEach(function (field) {\n if (field.selectionSet) {\n fieldsWithSelectionSets_1[field.name.value] = true;\n }\n });\n var hasSelectionSet_1 = function (storeFieldName) {\n return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true;\n };\n var hasMergeFunction_1 = function (storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) &&\n !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n }\n });\n }\n store.merge(dataId, storeObject);\n });\n store.retain(ref.__ref);\n return ref;\n };\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n var dataId = _a.dataId, result = _a.result, selectionSet = _a.selectionSet, context = _a.context, mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var incoming = Object.create(null);\n var typename = (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && context.store.get(dataId, \"__typename\"));\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n var readField = function () {\n var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n if (isReference(options.from)) {\n var info = context.incomingById.get(options.from.__ref);\n if (info) {\n var result_1 = policies.readField(__assign(__assign({}, options), { from: info.storeObject }), context);\n if (result_1 !== void 0) {\n return result_1;\n }\n }\n }\n return policies.readField(options, context);\n };\n var fieldNodeSet = new Set();\n this.flattenFields(selectionSet, result, context, typename).forEach(function (context, field) {\n var _a;\n var resultFieldKey = resultKeyNameFromField(field);\n var value = result[resultFieldKey];\n fieldNodeSet.add(field);\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables,\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n var incomingValue = _this.processFieldValue(value, field, field.selectionSet\n ? getContextFlavor(context, false, false)\n : context, childTree);\n var childTypename = void 0;\n if (field.selectionSet &&\n (isReference(incomingValue) ||\n storeValueIsStoreObject(incomingValue))) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n if (merge) {\n childTree.info = {\n field: field,\n typename: typename,\n merge: merge,\n };\n }\n else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n incoming = context.merge(incoming, (_a = {},\n _a[storeFieldName] = incomingValue,\n _a));\n }\n else if (__DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n !policies.getReadFunction(typename, field.name.value)) {\n __DEV__ && invariant.error(\"Missing field '\".concat(resultKeyNameFromField(field), \"' while writing result \").concat(JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n });\n try {\n var _b = policies.identify(result, {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField: readField,\n }), id = _b[0], keyObject = _b[1];\n dataId = dataId || id;\n if (keyObject) {\n incoming = context.merge(incoming, keyObject);\n }\n }\n catch (e) {\n if (!dataId)\n throw e;\n }\n if (\"string\" === typeof dataId) {\n var dataRef = makeReference(dataId);\n var sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0)\n return dataRef;\n sets.push(selectionSet);\n if (this.reader && this.reader.isFresh(result, dataRef, selectionSet, context)) {\n return dataRef;\n }\n var previous_1 = context.incomingById.get(dataId);\n if (previous_1) {\n previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n fieldNodeSet.forEach(function (field) { return previous_1.fieldNodeSet.add(field); });\n }\n else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet: fieldNodeSet,\n });\n }\n return dataRef;\n }\n return incoming;\n };\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n if (isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree,\n });\n };\n StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n if (typename === void 0) { typename = getTypenameFromResult(result, selectionSet, context.fragmentMap); }\n var fieldMap = new Map();\n var policies = this.cache.policies;\n var limitingTrie = new Trie(false);\n (function flatten(selectionSet, inheritedContext) {\n var visitedNode = limitingTrie.lookup(selectionSet, inheritedContext.clientOnly, inheritedContext.deferred);\n if (visitedNode.visited)\n return;\n visitedNode.visited = true;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, context.variables))\n return;\n var clientOnly = inheritedContext.clientOnly, deferred = inheritedContext.deferred;\n if (!(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)) {\n selection.directives.forEach(function (dir) {\n var name = dir.name.value;\n if (name === \"client\")\n clientOnly = true;\n if (name === \"defer\") {\n var args = argumentsObjectFromField(dir, context.variables);\n if (!args || args.if !== false) {\n deferred = true;\n }\n }\n });\n }\n if (isField(selection)) {\n var existing = fieldMap.get(selection);\n if (existing) {\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(8);\n }\n if (fragment &&\n policies.fragmentMatches(fragment, typename, result, context.variables)) {\n flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n }\n }\n });\n })(selectionSet, context);\n return fieldMap;\n };\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n var _this = this;\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = (!isArray(incoming) &&\n (isReference(existing) || storeValueIsStoreObject(existing))) ? existing : void 0;\n var i_1 = incoming;\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n var changedFields_1;\n var getValue_1 = function (from, name) {\n return isArray(from)\n ? (typeof name === \"number\" ? from[name] : void 0)\n : context.store.getFieldValue(from, String(name));\n };\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal)\n return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map;\n changedFields_1.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n if (changedFields_1) {\n incoming = (isArray(i_1) ? i_1.slice(0) : __assign({}, i_1));\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n return incoming;\n };\n return StoreWriter;\n}());\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map });\n }\n return map.get(name);\n}\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right))\n return left;\n if (!left || mergeTreeIsEmpty(left))\n return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map :\n left.map.size ? left.map : right.map;\n var merged = { info: info, map: map };\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n return merged;\n}\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\nvar warnings = new Set();\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function (objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n var existing = getChild(existingRef);\n if (!existing)\n return;\n var incoming = getChild(incomingObj);\n if (!incoming)\n return;\n if (isReference(existing))\n return;\n if (equal(existing, incoming))\n return;\n if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {\n return;\n }\n var parentType = store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n if (warnings.has(typeDotName))\n return;\n warnings.add(typeDotName);\n var childTypenames = [];\n if (!isArray(existing) &&\n !isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" &&\n !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \".concat(fieldName, \" field of a \").concat(parentType, \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \").concat(childTypenames.length\n ? \"either ensure all objects of type \" +\n childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \"\n : \"\", \"define a custom merge function for the \").concat(typeDotName, \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \").concat(JSON.stringify(existing).slice(0, 1000), \"\\n incoming: \").concat(JSON.stringify(incoming).slice(0, 1000), \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\"));\n}\n//# sourceMappingURL=writeToStore.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference, } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies,\n });\n _this.init();\n return _this;\n }\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n var previousReader = this.storeReader;\n var fragments = this.config.fragments;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities\n ? void 0\n : previousReader && previousReader.canon,\n fragments: fragments,\n }), fragments);\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic, id = c.id, variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic, id: id, variables: variables }));\n }\n }\n });\n new Set([\n this.data.group,\n this.optimisticData.group,\n ]).forEach(function (group) { return group.resetCaching(); });\n };\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData, returnPartialData = _a === void 0 ? false : _a;\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData: returnPartialData })).result || null;\n }\n catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n throw e;\n }\n };\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n var store = options.optimistic\n ? this.optimisticData\n : this.data;\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || \"ROOT_QUERY\", config: this.config }));\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n if (!this.watches.size) {\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n }\n else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n };\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n InMemoryCache.prototype.identify = function (object) {\n if (isReference(object))\n return object.__ref;\n try {\n return this.policies.identify(object)[0];\n }\n catch (e) {\n __DEV__ && invariant.warn(e);\n }\n };\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n options = __assign(__assign({}, options), { id: \"ROOT_QUERY\" });\n }\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n this.init();\n canonicalStringify.reset();\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) { return _this.maybeBroadcastWatch.forget(watch); });\n this.watches.clear();\n forgetCache(this);\n }\n else {\n this.broadcastWatches();\n }\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n var update = options.update, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated;\n var updateResult;\n var perform = function (layer) {\n var _a = _this, data = _a.data, optimisticData = _a.optimisticData;\n ++_this.txCount;\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n try {\n return updateResult = update(_this);\n }\n finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n var alreadyDirty = new Set();\n if (onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch) {\n alreadyDirty.add(watch);\n return false;\n } }));\n }\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n }\n else if (optimistic === false) {\n perform(this.data);\n }\n else {\n perform();\n }\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch, diff) {\n var result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n return result;\n } }));\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) { return _this.maybeBroadcastWatch.dirty(watch); });\n }\n }\n else {\n this.broadcastWatches(options);\n }\n return updateResult;\n };\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || (optimisticId !== null),\n });\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.transformForLink = function (document) {\n var fragments = this.config.fragments;\n return fragments\n ? fragments.transform(document)\n : document;\n };\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n if (!this.txCount) {\n this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c, options); });\n }\n };\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n if (options) {\n if (c.optimistic &&\n typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n if (options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\n//# sourceMappingURL=inMemoryCache.js.map","export var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}\n//# sourceMappingURL=networkStatus.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !_this.observers.size;\n _this.observers.add(observer);\n var last = _this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n }\n else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n if (first) {\n _this.reobserve().catch(function () { });\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n _this.isTornDown = false;\n var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, _f = options.initialFetchPolicy, initialFetchPolicy = _f === void 0 ? (fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy) : _f;\n _this.options = __assign(__assign({}, options), { initialFetchPolicy: initialFetchPolicy, fetchPolicy: fetchPolicy });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n get: function () {\n return this.queryManager.transform(this.options.query).document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function () {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n if (fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache' ||\n fetchPolicy === 'standby' ||\n this.queryManager.transform(this.options.query).hasForcedResolvers) {\n }\n else {\n var diff = this.queryInfo.getDiff();\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n if (diff.complete) {\n delete result.partial;\n if (diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === 'cache-first' ||\n fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n }\n else {\n result.partial = true;\n }\n if (__DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n return result;\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n return (!this.last ||\n !equal(this.last.result, newResult) ||\n (variables && !equal(this.last.variables, variables)));\n };\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n if (last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n var reobserveOptions = {\n pollInterval: 0,\n };\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-and-network') {\n reobserveOptions.fetchPolicy = fetchPolicy;\n }\n else if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n }\n else {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n __DEV__ && invariant.warn(\"Called refetch(\".concat(JSON.stringify(variables), \") for query \").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\"));\n }\n }\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign(__assign({}, this.options), { query: this.query }), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: \"no-cache\" });\n var qid = this.queryManager.generateQueryId();\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n var updatedQuerySet = new Set();\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n _this.queryManager.cache.batch({\n update: function (cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false,\n }, function (previous) { return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n }); });\n }\n else {\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n onWatchUpdated: function (watch) {\n updatedQuerySet.add(watch.query);\n },\n });\n return fetchMoreResult;\n }).finally(function () {\n if (!updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size\n ? this.result()\n : Promise.resolve();\n }\n this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.reobserve({\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables,\n }, NetworkStatus.setVariables);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables,\n });\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n if (fetchPolicy === \"standby\") {\n }\n else if (typeof options.nextFetchPolicy === \"function\") {\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy,\n });\n }\n else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n }\n else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n return options.fetchPolicy;\n };\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager['fetchConcastWithInfo'](this.queryId, options, newNetworkStatus);\n };\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n if (this.queryManager.ssrMode) {\n return;\n }\n var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n if (pollingInfo &&\n pollingInfo.interval === pollInterval) {\n return;\n }\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 13);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n var maybeFetch = function () {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: _this.options.initialFetchPolicy === 'no-cache' ? 'no-cache' : 'network-only',\n }, NetworkStatus.poll).then(poll, poll);\n }\n else {\n poll();\n }\n }\n ;\n };\n var poll = function () {\n var info = _this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n poll();\n };\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) { variables = this.variables; }\n this.last = __assign(__assign({}, this.last), { result: this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult), variables: variables });\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n return this.last;\n };\n ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {\n var _this = this;\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch ||\n newNetworkStatus === NetworkStatus.fetchMore ||\n newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast\n ? mergedOptions\n : assign(this.options, mergedOptions);\n if (!useDisposableConcast) {\n this.updatePolling();\n if (newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n options.fetchPolicy !== \"standby\" &&\n options.fetchPolicy === oldFetchPolicy) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n var variables = options.variables && __assign({}, options.variables);\n var _a = this.fetch(options, newNetworkStatus), concast = _a.concast, fromLink = _a.fromLink;\n var observer = {\n next: function (result) {\n _this.reportResult(result, variables);\n },\n error: function (error) {\n _this.reportError(error, variables);\n },\n };\n if (!useDisposableConcast && fromLink) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n this.concast = concast;\n this.observer = observer;\n }\n concast.addObserver(observer);\n return concast;\n };\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n return this.reobserveAsConcast(newOptions, newNetworkStatus).promise;\n };\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n if (lastError || this.isDifferentFromLastResult(result, variables)) {\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown)\n return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n this.stopPolling();\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;\n if (fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: function () {\n this.nextFetchPolicy = nextFetchPolicy;\n if (typeof nextFetchPolicy === \"function\") {\n return nextFetchPolicy.apply(this, arguments);\n }\n return fetchPolicy;\n },\n });\n }\n return obsQuery.reobserve();\n}\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && missing) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \".concat(JSON.stringify(missing)), missing);\n }\n}\n//# sourceMappingURL=ObservableQuery.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK, isSelectionNode, } from 'graphql';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\nvar LocalState = (function () {\n function LocalState(_a) {\n var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n this.selectionsToResolveCache = new WeakMap();\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n }\n else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document, remoteResult = _a.remoteResult, context = _a.context, variables = _a.variables, _b = _a.onlyRunForcedResolvers, onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n }\n return [2, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n };\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), { cache: cache, getCacheKey: function (obj) {\n return cache.identify(obj);\n } });\n };\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) { variables = {}; }\n if (context === void 0) { context = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n }\n return [2, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n };\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n };\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) { context = {}; }\n if (variables === void 0) { variables = {}; }\n if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation\n ? definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), { cache: cache, client: client }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n selectionsToResolve: selectionsToResolve,\n onlyRunForcedResolvers: onlyRunForcedResolvers,\n };\n isClientFieldDescendant = false;\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({\n result: result,\n exportedVariables: execContext.exportedVariables,\n }); })];\n });\n });\n };\n LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {\n return [2];\n }\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n if (isField(selection)) {\n return [2, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value)) : invariant(fragment, 11);\n }\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n return [2];\n });\n }); };\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n var _this = this;\n return __generator(this, function (_a) {\n if (!rootValue) {\n return [2, null];\n }\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n if (!execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field: field, fragmentMap: execContext.fragmentMap },\n ]));\n }\n }\n }\n return [2, resultPromise.then(function (result) {\n var _a, _b;\n if (result === void 0) { result = defaultResult; }\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n if (!field.selectionSet) {\n return result;\n }\n if (result == null) {\n return result;\n }\n var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === 'client'; })) !== null && _b !== void 0 ? _b : false;\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n }\n }));\n };\n LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {\n var isSingleASTNode = function (node) { return !Array.isArray(node); };\n var selectionsToResolveCache = this.selectionsToResolveCache;\n function collectByDefinition(definitionNode) {\n if (!selectionsToResolveCache.has(definitionNode)) {\n var matches_1 = new Set();\n selectionsToResolveCache.set(definitionNode, matches_1);\n visit(definitionNode, {\n Directive: function (node, _, __, ___, ancestors) {\n if (node.name.value === 'client') {\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n }\n },\n FragmentSpread: function (spread, _, __, ___, ancestors) {\n var fragment = fragmentMap[spread.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(spread.name.value)) : invariant(fragment, 12);\n var fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n matches_1.add(spread);\n fragmentSelections.forEach(function (selection) {\n matches_1.add(selection);\n });\n }\n }\n });\n }\n return selectionsToResolveCache.get(definitionNode);\n }\n return collectByDefinition(mainDefinition);\n };\n return LocalState;\n}());\nexport { LocalState };\n//# sourceMappingURL=LocalState.js.map","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap, } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight, } from \"./networkStatus.js\";\n;\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\nvar QueryInfo = (function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) { queryId = queryManager.generateQueryId(); }\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = this.cache = queryManager.cache;\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n if (this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus,\n });\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n return this;\n };\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.dirty = false;\n };\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) { variables = this.variables; }\n var options = this.getDiffOptions(variables);\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n this.updateWatch(this.variables = variables);\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff = diff ? {\n diff: diff,\n options: options || this.getDiffOptions(),\n } : void 0;\n };\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n if (variables === void 0) { variables = this.variables; }\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults,\n };\n };\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n if (!this.dirty &&\n !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () { return _this.notify(); }, 0);\n }\n }\n };\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n if (oq === this.observableQuery)\n return;\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n this.observableQuery = oq;\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n var diff = _this.getDiff();\n if (diff.fromOptimisticTransaction) {\n oq[\"observe\"]();\n }\n else {\n reobserveCacheFirst(oq);\n }\n });\n }\n else {\n delete this.oqListener;\n }\n };\n QueryInfo.prototype.notify = function () {\n var _this = this;\n cancelNotifyTimeout(this);\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) { return listener(_this); });\n }\n this.dirty = false;\n };\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n if (isNetworkRequestInFlight(this.networkStatus) &&\n this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n if (fetchPolicy !== \"cache-only\" &&\n fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n return true;\n };\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n this.cancel = QueryInfo.prototype.cancel;\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n var oq = this.observableQuery;\n if (oq)\n oq.stopPolling();\n }\n };\n QueryInfo.prototype.cancel = function () { };\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n if (variables === void 0) { variables = this.variables; }\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), { watcher: this, callback: function (diff) { return _this.setDiff(diff); } });\n if (!this.lastWatch ||\n !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n };\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite &&\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data));\n };\n QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n var _this = this;\n var merger = new DeepMerger();\n var graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n this.reset();\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n var mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n }\n else if ('hasNext' in result && result.hasNext) {\n var diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data);\n }\n this.graphQLErrors = graphQLErrors;\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff({ result: result.data, complete: true }, this.getDiffOptions(options.variables));\n }\n else if (cacheWriteBehavior !== 0) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1,\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache),\n };\n }\n else {\n if (_this.lastDiff &&\n _this.lastDiff.diff.complete) {\n result.data = _this.lastDiff.diff.result;\n return;\n }\n }\n var diffOptions = _this.getDiffOptions(options.variables);\n var diff = cache.diff(diffOptions);\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n _this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n }\n else {\n this.lastWrite = void 0;\n }\n }\n };\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n return error;\n };\n return QueryInfo;\n}());\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) { errorPolicy = \"none\"; }\n var ignoreErrors = errorPolicy === \"ignore\" ||\n errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n//# sourceMappingURL=QueryInfo.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { isExecutionPatchIncrementalResult, isExecutionPatchResult, } from \"../utilities/common/incrementalResult.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, getGraphQLErrorsFromResult, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { ApolloError, isApolloError, graphQLResultHasProtocolErrors } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult, } from \"./QueryInfo.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var cache = _a.cache, link = _a.link, defaultOptions = _a.defaultOptions, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, onBroadcast = _a.onBroadcast, _c = _a.ssrMode, ssrMode = _c === void 0 ? false : _c, _d = _a.clientAwareness, clientAwareness = _d === void 0 ? {} : _d, localState = _a.localState, assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n QueryManager.prototype.stop = function () {\n var _this = this;\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(__DEV__ ? new InvariantError('QueryManager stopped while query was in flight') : new InvariantError(14));\n };\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });\n this.fetchCancelFns.clear();\n };\n QueryManager.prototype.mutate = function (_a) {\n var _b, _c;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueries = _a.updateQueries, _d = _a.refetchQueries, refetchQueries = _d === void 0 ? [] : _d, _e = _a.awaitRefetchQueries, awaitRefetchQueries = _e === void 0 ? false : _e, updateWithProxyFn = _a.update, onQueryUpdated = _a.onQueryUpdated, _f = _a.fetchPolicy, fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"network-only\" : _f, _g = _a.errorPolicy, errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || \"none\" : _g, keepRootFields = _a.keepRootFields, context = _a.context;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, _h, document, hasClientExports, mutationStoreValue, self;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n __DEV__ ? invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : invariant(mutation, 15);\n __DEV__ ? invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\") : invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', 16);\n mutationId = this.generateMutationId();\n _h = this.transform(mutation), document = _h.document, hasClientExports = _h.hasClientExports;\n mutation = this.cache.transformForLink(document);\n variables = this.getVariables(mutation, variables);\n if (!hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n case 1:\n variables = (_j.sent());\n _j.label = 2;\n case 2:\n mutationStoreValue = this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null,\n });\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields,\n });\n }\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), { optimisticResponse: optimisticResponse }), variables, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n var storeResult = __assign({}, result);\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields,\n });\n }).subscribe({\n next: function (storeResult) {\n self.broadcastQueries();\n if (!('hasNext' in storeResult) || storeResult.hasNext === false) {\n resolve(storeResult);\n }\n },\n error: function (err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }));\n },\n });\n })];\n }\n });\n });\n };\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n if (cache === void 0) { cache = this.cache; }\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (isExecutionPatchIncrementalResult(result) && isNonEmptyArray(result.incremental)) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n var mergedData = void 0;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== 'undefined') {\n result.data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n }\n var updateQueries_1 = mutation.updateQueries;\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n var updater = updateQueries_1[queryName];\n var _b = _this.queries.get(queryId), document = _b.document, variables = _b.variables;\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _c.result, complete = _c.complete;\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables,\n });\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n });\n }\n }\n if (cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function (cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) { return cache.write(write); });\n }\n var update = mutation.update;\n var isFinalResult = !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n if (update) {\n if (!skipCache) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: _this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n if (diff.complete) {\n result = __assign(__assign({}, result), { data: diff.result });\n if ('incremental' in result) {\n delete result.incremental;\n }\n if ('hasNext' in result) {\n delete result.hasNext;\n }\n }\n }\n if (isFinalResult) {\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields: function (value, _a) {\n var fieldName = _a.fieldName, DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n include: mutation.refetchQueries,\n optimistic: false,\n removeOptimistic: mutation.removeOptimistic,\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach(function (result) { return results_1.push(result); });\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n return Promise.all(results_1).then(function () { return result; });\n }\n }\n return Promise.resolve(result);\n };\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n var data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), { result: { data: data } }), cache);\n }\n catch (error) {\n __DEV__ && invariant.error(error);\n }\n }, mutation.mutationId);\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n };\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var noConnection = removeConnectionDirectiveFromDocument(transformed);\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = noConnection && this.localState.serverQuery(noConnection);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed)),\n asQuery: __assign(__assign({}, transformed), { definitions: transformed.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return __assign(__assign({}, def), { operation: \"query\" });\n }\n return def;\n }) })\n };\n var add = function (doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), { variables: this.getVariables(options.query, options.variables) });\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options,\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables,\n });\n return observable;\n };\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n if (queryId === void 0) { queryId = this.generateQueryId(); }\n __DEV__ ? invariant(options.query, 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.') : invariant(options.query, 17);\n __DEV__ ? invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.') : invariant(options.query.kind === 'Document', 18);\n __DEV__ ? invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : invariant(!options.returnPartialData, 19);\n __DEV__ ? invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : invariant(!options.pollInterval, 20);\n return this.fetchQuery(queryId, options).finally(function () { return _this.stopQuery(queryId); });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo)\n queryInfo.stop();\n };\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) { options = {\n discardWatches: true,\n }; }\n this.cancelPendingFetches(__DEV__ ? new InvariantError('Store reset while query was in flight (not completed in link chain)') : new InvariantError(21));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n }\n else {\n queryInfo.stop();\n }\n });\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n return this.cache.reset(options);\n };\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n if (include === void 0) { include = \"active\"; }\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n }\n else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc).document, false);\n }\n else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery, document = _a.document;\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy;\n if (fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())) {\n return;\n }\n if (include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))) {\n queries.set(queryId, oq);\n if (queryName)\n queryNamesAndDocs.set(queryName, true);\n if (document)\n queryNamesAndDocs.set(document, true);\n }\n }\n });\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), { fetchPolicy: \"network-only\" }),\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n __DEV__ && invariant.warn(\"Unknown query \".concat(typeof nameOrDoc === \"string\" ? \"named \" : \"\").concat(JSON.stringify(nameOrDoc, null, 2), \" requested in refetchQueries options.include array\"));\n }\n });\n }\n return queries;\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) { includeStandby = false; }\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query, fetchPolicy = _a.fetchPolicy, errorPolicy = _a.errorPolicy, variables = _a.variables, _b = _a.context, context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n var makeObservable = function (variables) {\n return _this.getObservableFromLink(query, context, variables).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n _this.broadcastQueries();\n }\n var hasErrors = graphQLResultHasError(result);\n var hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n if (hasErrors || hasProtocolErrors) {\n var errors = {};\n if (hasErrors) {\n errors.graphQLErrors = result.errors;\n }\n if (hasProtocolErrors) {\n errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n }\n throw new ApolloError(errors);\n }\n return result;\n });\n };\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) { return sub = observable.subscribe(observer); }, observer.error);\n return function () { return sub && sub.unsubscribe(); };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast)\n this.onBroadcast();\n this.queries.forEach(function (info) { return info.notify(); });\n };\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n var _a;\n if (deduplication === void 0) { deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication; }\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n if (serverQuery) {\n var _b = this, inFlightLinkObservables_1 = _b.inFlightLinkObservables, link = _b.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n };\n context = operation.context;\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = canonicalStringify(variables);\n observable = byVariables_1.get(varJson_1);\n if (!observable) {\n var concast = new Concast([\n execute(link, operation)\n ]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.beforeNext(function () {\n if (byVariables_1.delete(varJson_1) &&\n byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n }\n else {\n observable = new Concast([\n execute(link, operation)\n ]);\n }\n }\n else {\n observable = new Concast([\n Observable.of({ data: {} })\n ]);\n context = this.prepareContext(context);\n }\n var clientQuery = this.transform(query).clientQuery;\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables,\n });\n });\n }\n return observable;\n };\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n var linkDocument = this.cache.transformForLink(this.transform(queryInfo.document).document);\n return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n var graphQLErrors = getGraphQLErrorsFromResult(result);\n var hasErrors = graphQLErrors.length > 0;\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: graphQLErrors,\n }));\n }\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError: networkError });\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n throw error;\n });\n };\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n return this.fetchConcastWithInfo(queryId, options, networkStatus).concast;\n };\n QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, networkStatus) {\n var _this = this;\n if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || \"cache-first\" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || \"none\" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context,\n });\n var fromVariables = function (variables) {\n normalized.variables = variables;\n var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n if (normalized.fetchPolicy !== \"standby\" &&\n sourcesWithInfo.sources.length > 0 &&\n queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n return sourcesWithInfo;\n };\n var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n setTimeout(function () { return concast.cancel(reason); });\n });\n var concast, containsDataFromLink;\n if (this.transform(normalized.query).hasClientExports) {\n concast = new Concast(this.localState\n .addExportedVariables(normalized.query, normalized.variables, normalized.context)\n .then(fromVariables).then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));\n containsDataFromLink = true;\n }\n else {\n var sourcesWithInfo = fromVariables(normalized.variables);\n containsDataFromLink = sourcesWithInfo.fromLink;\n concast = new Concast(sourcesWithInfo.sources);\n }\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return {\n concast: concast,\n fromLink: containsDataFromLink,\n };\n };\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n var updateCache = _a.updateCache, include = _a.include, _b = _a.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c, onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff(),\n });\n });\n }\n var results = new Map;\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n optimistic: optimistic && removeOptimistic || false,\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function (watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n if (oq) {\n if (onQueryUpdated) {\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n if (result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n return result;\n }\n if (onQueryUpdated !== null) {\n includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });\n }\n }\n },\n });\n }\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq, lastDiff = _a.lastDiff, diff = _a.diff;\n var result;\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset();\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n if (removeOptimistic) {\n this.cache.removeOptimistic(removeOptimistic);\n }\n return results;\n };\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {\n var _this = this;\n var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: this.transform(query).document,\n variables: variables,\n networkStatus: networkStatus,\n });\n var readCache = function () { return queryInfo.getDiff(variables); };\n var resultsFromCache = function (diff, networkStatus) {\n if (networkStatus === void 0) { networkStatus = queryInfo.networkStatus || NetworkStatus.loading; }\n var data = diff.result;\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n var fromData = function (data) { return Observable.of(__assign({ data: data, loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus }, (diff.complete ? null : { partial: true }))); };\n if (data && _this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: { data: data },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true,\n }).then(function (resolved) { return fromData(resolved.data || void 0); });\n }\n if (errorPolicy === 'none' &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)) {\n return fromData(void 0);\n }\n return fromData(data);\n };\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 :\n (networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\") ? 1\n : 2;\n var resultsFromLink = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n }); };\n var shouldNotify = notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n var diff = readCache();\n if (diff.complete) {\n return { fromLink: false, sources: [resultsFromCache(diff, queryInfo.markReady())] };\n }\n if (returnPartialData || shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-and-network\": {\n var diff = readCache();\n if (diff.complete || returnPartialData || shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(diff), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-only\":\n return { fromLink: false, sources: [resultsFromCache(readCache(), queryInfo.markReady())] };\n case \"network-only\":\n if (shouldNotify) {\n return { fromLink: true, sources: [resultsFromCache(readCache()), resultsFromLink()] };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"no-cache\":\n if (shouldNotify) {\n return {\n fromLink: true,\n sources: [\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"standby\":\n return { fromLink: false, sources: [] };\n }\n };\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId);\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), { clientAwareness: this.clientAwareness });\n };\n return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState, } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nimport { mergeOptions } from \"../utilities/index.js\";\nexport { mergeOptions };\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n var _this = this;\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.connectToDevTools, connectToDevTools = _c === void 0 ? typeof window === 'object' &&\n !window.__APOLLO_CLIENT__ &&\n __DEV__ : _c, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions = options.defaultOptions, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? false : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version;\n var link = options.link;\n if (!link) {\n link = uri\n ? new HttpLink({ uri: uri, credentials: credentials, headers: headers })\n : ApolloLink.empty();\n }\n if (!cache) {\n throw __DEV__ ? new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\") : new InvariantError(9);\n }\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && connectToDevTools && __DEV__) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self &&\n !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n }\n else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n __DEV__ && invariant.log(\"Download the Apollo DevTools for a better development \" +\n \"experience: \" + url);\n }\n }\n }\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher,\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {},\n },\n dataWithOptimisticResults: _this.cache.extract(true),\n });\n }\n } : void 0,\n });\n }\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n __DEV__ ? invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.') : invariant(options.fetchPolicy !== 'cache-and-network', 10);\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n var ref = this.cache.writeQuery(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n ApolloClient.prototype.writeFragment = function (options) {\n var ref = this.cache.writeFragment(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: false,\n }); })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () { return _this.reFetchObservableQueries(); });\n };\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: true,\n }); })\n .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n result.queries = queries;\n result.results = results;\n result.catch(function (error) {\n __DEV__ && invariant.debug(\"In client.refetchQueries, Promise.all promise rejected with error \".concat(error));\n });\n return result;\n };\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) { include = \"active\"; }\n return this.queryManager.getObservableQueries(include);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n return ApolloClient;\n}());\nexport { ApolloClient };\n//# sourceMappingURL=ApolloClient.js.map","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n//# sourceMappingURL=index.js.map","import * as React from 'react';\nimport { canUseSymbol } from \"../../utilities/index.js\";\nvar contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\nexport { getApolloContext as resetApolloContext };\n//# sourceMappingURL=ApolloContext.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return (React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 29);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n }));\n};\n//# sourceMappingURL=ApolloProvider.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { useContext } from 'react';\nimport { getApolloContext } from \"../context/index.js\";\nexport function useApolloClient(override) {\n var context = useContext(getApolloContext());\n var client = override || context.client;\n __DEV__ ? invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +\n 'instance in via options.') : invariant(!!client, 32);\n return client;\n}\n//# sourceMappingURL=useApolloClient.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { canUseLayoutEffect } from \"../../utilities/index.js\";\nvar didWarnUncachedGetSnapshot = false;\nvar uSESKey = \"useSyncExternalStore\";\nvar realHook = React[uSESKey];\nexport var useSyncExternalStore = realHook || (function (subscribe, getSnapshot, getServerSnapshot) {\n var value = getSnapshot();\n if (__DEV__ &&\n !didWarnUncachedGetSnapshot &&\n value !== getSnapshot()) {\n didWarnUncachedGetSnapshot = true;\n __DEV__ && invariant.error('The result of getSnapshot should be cached to avoid an infinite loop');\n }\n var _a = React.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];\n if (canUseLayoutEffect) {\n React.useLayoutEffect(function () {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n }, [subscribe, value, getSnapshot]);\n }\n else {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n }\n React.useEffect(function () {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n return subscribe(function handleStoreChange() {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n });\n }, [subscribe]);\n return value;\n});\nfunction checkIfSnapshotChanged(_a) {\n var value = _a.value, getSnapshot = _a.getSnapshot;\n try {\n return value !== getSnapshot();\n }\n catch (_b) {\n return true;\n }\n}\n//# sourceMappingURL=useSyncExternalStore.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nexport var DocumentType;\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached)\n return cached;\n var variables, type, name;\n __DEV__ ? invariant(!!document && !!document.kind, \"Argument of \".concat(document, \" passed to parser was not a valid GraphQL \") +\n \"DocumentNode. You may need to use 'graphql-tag' or another method \" +\n \"to convert your operation into a document\") : invariant(!!document && !!document.kind, 33);\n var fragments = [];\n var queries = [];\n var mutations = [];\n var subscriptions = [];\n for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {\n var x = _a[_i];\n if (x.kind === 'FragmentDefinition') {\n fragments.push(x);\n continue;\n }\n if (x.kind === 'OperationDefinition') {\n switch (x.operation) {\n case 'query':\n queries.push(x);\n break;\n case 'mutation':\n mutations.push(x);\n break;\n case 'subscription':\n subscriptions.push(x);\n break;\n }\n }\n }\n __DEV__ ? invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), \"Passing only a fragment to 'graphql' is not yet supported. \" +\n \"You must include a query, subscription or mutation as well\") : invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), 34);\n __DEV__ ? invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" +\n \"\".concat(document, \" had \").concat(queries.length, \" queries, \").concat(subscriptions.length, \" \") +\n \"subscriptions and \".concat(mutations.length, \" mutations. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(queries.length + mutations.length + subscriptions.length <= 1, 35);\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length)\n type = DocumentType.Subscription;\n var definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n __DEV__ ? invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \".concat(document, \" had \") +\n \"\".concat(definitions.length, \" definitions. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(definitions.length === 1, 36);\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n }\n else {\n name = 'data';\n }\n var payload = { name: name, type: type, variables: variables };\n cache.set(document, payload);\n return payload;\n}\nexport function verifyDocumentType(document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n __DEV__ ? invariant(operation.type === type, \"Running a \".concat(requiredOperationName, \" requires a graphql \") +\n \"\".concat(requiredOperationName, \", but a \").concat(usedOperationName, \" was used instead.\")) : invariant(operation.type === type, 37);\n}\n//# sourceMappingURL=index.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { useCallback, useContext, useMemo, useRef, useState, } from 'react';\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\nimport { equal } from '@wry/equality';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus, } from \"../../core/index.js\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { canUseWeakMap, compact, isNonEmptyArray, maybeDeepFreeze } from \"../../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function useQuery(query, options) {\n if (options === void 0) { options = Object.create(null); }\n return useInternalState(useApolloClient(options.client), query).useQuery(options);\n}\nexport function useInternalState(client, query) {\n var stateRef = useRef();\n if (!stateRef.current ||\n client !== stateRef.current.client ||\n query !== stateRef.current.query) {\n stateRef.current = new InternalState(client, query, stateRef.current);\n }\n var state = stateRef.current;\n var _a = useState(0), _tick = _a[0], setTick = _a[1];\n state.forceUpdate = function () {\n setTick(function (tick) { return tick + 1; });\n };\n return state;\n}\nvar InternalState = (function () {\n function InternalState(client, query, previous) {\n this.client = client;\n this.query = query;\n this.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.loading,\n });\n this.skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.ready,\n });\n this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();\n verifyDocumentType(query, DocumentType.Query);\n var previousResult = previous && previous.result;\n var previousData = previousResult && previousResult.data;\n if (previousData) {\n this.previousData = previousData;\n }\n }\n InternalState.prototype.forceUpdate = function () {\n __DEV__ && invariant.warn(\"Calling default no-op implementation of InternalState#forceUpdate\");\n };\n InternalState.prototype.executeQuery = function (options) {\n var _this = this;\n var _a;\n if (options.query) {\n Object.assign(this, { query: options.query });\n }\n this.watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);\n var concast = this.observable.reobserveAsConcast(this.getObsQueryOptions());\n this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;\n this.result = void 0;\n this.forceUpdate();\n return new Promise(function (resolve) {\n var result;\n concast.subscribe({\n next: function (value) {\n result = value;\n },\n error: function () {\n resolve(_this.toQueryResult(_this.observable.getCurrentResult()));\n },\n complete: function () {\n resolve(_this.toQueryResult(result));\n }\n });\n });\n };\n InternalState.prototype.useQuery = function (options) {\n var _this = this;\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n this.useOptions(options);\n var obsQuery = this.useObservableQuery();\n var result = useSyncExternalStore(useCallback(function () {\n if (_this.renderPromises) {\n return function () { };\n }\n var onNext = function () {\n var previousResult = _this.result;\n var result = obsQuery.getCurrentResult();\n if (previousResult &&\n previousResult.loading === result.loading &&\n previousResult.networkStatus === result.networkStatus &&\n equal(previousResult.data, result.data)) {\n return;\n }\n _this.setResult(result);\n };\n var onError = function (error) {\n var last = obsQuery[\"last\"];\n subscription.unsubscribe();\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n }\n finally {\n obsQuery[\"last\"] = last;\n }\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n throw error;\n }\n var previousResult = _this.result;\n if (!previousResult ||\n (previousResult && previousResult.loading) ||\n !equal(error, previousResult.error)) {\n _this.setResult({\n data: (previousResult && previousResult.data),\n error: error,\n loading: false,\n networkStatus: NetworkStatus.error,\n });\n }\n };\n var subscription = obsQuery.subscribe(onNext, onError);\n return function () { return setTimeout(function () { return subscription.unsubscribe(); }); };\n }, [\n obsQuery,\n this.renderPromises,\n this.client.disableNetworkFetches,\n ]), function () { return _this.getCurrentResult(); }, function () { return _this.getCurrentResult(); });\n this.unsafeHandlePartialRefetch(result);\n return this.toQueryResult(result);\n };\n InternalState.prototype.useOptions = function (options) {\n var _a;\n var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);\n var currentWatchQueryOptions = this.watchQueryOptions;\n if (!equal(watchQueryOptions, currentWatchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n if (currentWatchQueryOptions && this.observable) {\n this.observable.reobserve(this.getObsQueryOptions());\n this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;\n this.result = void 0;\n }\n }\n this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;\n this.onError = options.onError || InternalState.prototype.onError;\n if ((this.renderPromises || this.client.disableNetworkFetches) &&\n this.queryHookOptions.ssr === false &&\n !this.queryHookOptions.skip) {\n this.result = this.ssrDisabledResult;\n }\n else if (this.queryHookOptions.skip ||\n this.watchQueryOptions.fetchPolicy === 'standby') {\n this.result = this.skipStandbyResult;\n }\n else if (this.result === this.ssrDisabledResult ||\n this.result === this.skipStandbyResult) {\n this.result = void 0;\n }\n };\n InternalState.prototype.getObsQueryOptions = function () {\n var toMerge = [];\n var globalDefaults = this.client.defaultOptions.watchQuery;\n if (globalDefaults)\n toMerge.push(globalDefaults);\n if (this.queryHookOptions.defaultOptions) {\n toMerge.push(this.queryHookOptions.defaultOptions);\n }\n toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));\n return toMerge.reduce(mergeOptions);\n };\n InternalState.prototype.createWatchQueryOptions = function (_a) {\n var _b;\n if (_a === void 0) { _a = {}; }\n var skip = _a.skip, ssr = _a.ssr, onCompleted = _a.onCompleted, onError = _a.onError, defaultOptions = _a.defaultOptions, otherOptions = __rest(_a, [\"skip\", \"ssr\", \"onCompleted\", \"onError\", \"defaultOptions\"]);\n var watchQueryOptions = Object.assign(otherOptions, { query: this.query });\n if (this.renderPromises &&\n (watchQueryOptions.fetchPolicy === 'network-only' ||\n watchQueryOptions.fetchPolicy === 'cache-and-network')) {\n watchQueryOptions.fetchPolicy = 'cache-first';\n }\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {};\n }\n if (skip) {\n var _c = watchQueryOptions.fetchPolicy, fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c, _d = watchQueryOptions.initialFetchPolicy, initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;\n Object.assign(watchQueryOptions, {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: 'standby',\n });\n }\n else if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy =\n ((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) ||\n this.getDefaultFetchPolicy();\n }\n return watchQueryOptions;\n };\n InternalState.prototype.getDefaultFetchPolicy = function () {\n var _a, _b;\n return (((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||\n ((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||\n \"cache-first\");\n };\n InternalState.prototype.onCompleted = function (data) { };\n InternalState.prototype.onError = function (error) { };\n InternalState.prototype.useObservableQuery = function () {\n var obsQuery = this.observable =\n this.renderPromises\n && this.renderPromises.getSSRObservable(this.watchQueryOptions)\n || this.observable\n || this.client.watchQuery(this.getObsQueryOptions());\n this.obsQueryFields = useMemo(function () { return ({\n refetch: obsQuery.refetch.bind(obsQuery),\n reobserve: obsQuery.reobserve.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),\n }); }, [obsQuery]);\n var ssrAllowed = !(this.queryHookOptions.ssr === false ||\n this.queryHookOptions.skip);\n if (this.renderPromises && ssrAllowed) {\n this.renderPromises.registerSSRObservable(obsQuery);\n if (obsQuery.getCurrentResult().loading) {\n this.renderPromises.addObservableQueryPromise(obsQuery);\n }\n }\n return obsQuery;\n };\n InternalState.prototype.setResult = function (nextResult) {\n var previousResult = this.result;\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n this.result = nextResult;\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n };\n InternalState.prototype.handleErrorOrCompleted = function (result) {\n var _this = this;\n if (!result.loading) {\n var error_1 = this.toApolloError(result);\n Promise.resolve().then(function () {\n if (error_1) {\n _this.onError(error_1);\n }\n else if (result.data) {\n _this.onCompleted(result.data);\n }\n }).catch(function (error) {\n __DEV__ && invariant.warn(error);\n });\n }\n };\n InternalState.prototype.toApolloError = function (result) {\n return isNonEmptyArray(result.errors)\n ? new ApolloError({ graphQLErrors: result.errors })\n : result.error;\n };\n InternalState.prototype.getCurrentResult = function () {\n if (!this.result) {\n this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());\n }\n return this.result;\n };\n InternalState.prototype.toQueryResult = function (result) {\n var queryResult = this.toQueryResultCache.get(result);\n if (queryResult)\n return queryResult;\n var data = result.data, partial = result.partial, resultWithoutPartial = __rest(result, [\"data\", \"partial\"]);\n this.toQueryResultCache.set(result, queryResult = __assign(__assign(__assign({ data: data }, resultWithoutPartial), this.obsQueryFields), { client: this.client, observable: this.observable, variables: this.observable.variables, called: !this.queryHookOptions.skip, previousData: this.previousData }));\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n queryResult.error = new ApolloError({ graphQLErrors: result.errors });\n }\n return queryResult;\n };\n InternalState.prototype.unsafeHandlePartialRefetch = function (result) {\n if (result.partial &&\n this.queryHookOptions.partialRefetch &&\n !result.loading &&\n (!result.data || Object.keys(result.data).length === 0) &&\n this.observable.options.fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch,\n });\n this.observable.refetch();\n }\n };\n return InternalState;\n}());\n//# sourceMappingURL=useQuery.js.map","import { __assign } from \"tslib\";\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { mergeOptions, } from \"../../core/index.js\";\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n }\n var execute = useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading && !baseOptions.ignoreResults && ref.current.isMounted) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n });\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client.mutate(clientOptions).then(function (response) {\n var _a;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : void 0;\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult(ref.current.result = result_1);\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted);\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n return response;\n }).catch(function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult(ref.current.result = result_2);\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = useCallback(function () {\n if (ref.current.isMounted) {\n setResult({ called: false, loading: false, client: client });\n }\n }, []);\n useEffect(function () {\n ref.current.isMounted = true;\n return function () {\n ref.current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map","import { __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nexport function setContext(setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n return new Observable(function (observer) {\n var handle;\n var closed = false;\n Promise.resolve(request)\n .then(function (req) { return setter(req, operation.getContext()); })\n .then(operation.setContext)\n .then(function () {\n if (closed)\n return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n return function () {\n closed = true;\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nexport function onError(errorHandler) {\n return new ApolloLink(function (operation, forward) {\n return new Observable(function (observer) {\n var sub;\n var retriedSub;\n var retriedResult;\n try {\n sub = forward(operation).subscribe({\n next: function (result) {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation: operation,\n forward: forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n }\n observer.next(result);\n },\n error: function (networkError) {\n retriedResult = errorHandler({\n operation: operation,\n networkError: networkError,\n graphQLErrors: networkError &&\n networkError.result &&\n networkError.result.errors,\n forward: forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n observer.error(networkError);\n },\n complete: function () {\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n },\n });\n }\n catch (e) {\n errorHandler({ networkError: e, operation: operation, forward: forward });\n observer.error(e);\n }\n return function () {\n if (sub)\n sub.unsubscribe();\n if (retriedSub)\n sub.unsubscribe();\n };\n });\n });\n}\nvar ErrorLink = (function (_super) {\n __extends(ErrorLink, _super);\n function ErrorLink(errorHandler) {\n var _this = _super.call(this) || this;\n _this.link = onError(errorHandler);\n return _this;\n }\n ErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return ErrorLink;\n}(ApolloLink));\nexport { ErrorLink };\n//# sourceMappingURL=index.js.map","/*!\n * Microsoft Dynamic Proto Utility, 1.1.7\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n/**\r\n * Gets the runtime global reference\r\n * @returns\r\n */\r\nfunction _getGlobal() {\r\n var result;\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n return result || {};\r\n}\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = _getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!_hasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nfunction dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\n\nexport { dynamicProto as default };\n//# sourceMappingURL=dynamicproto-js.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\nexport var ObjAssign = ObjClass[\"assign\"];\r\nexport var ObjCreate = ObjClass[\"create\"];\r\nexport var ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\nvar _cachedGlobal = null;\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - <null> (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal(useCached) {\r\n if (useCached === void 0) { useCached = true; }\r\n var result = useCached === false ? null : _cachedGlobal;\r\n if (!result) {\r\n if (typeof globalThis !== strShimUndefined) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== strShimUndefined) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== strShimUndefined) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== strShimUndefined) {\r\n result = global;\r\n }\r\n _cachedGlobal = result;\r\n }\r\n return result;\r\n}\r\nexport function throwTypeError(message) {\r\n throw new TypeError(message);\r\n}\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj) {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n function tmpFunc() { }\r\n tmpFunc[strShimPrototype] = obj;\r\n return new tmpFunc();\r\n}\r\n//# sourceMappingURL=Helpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype } from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasSymbol = !!SymbolObj;\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = ObjAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!ObjCreate) {\r\n ObjDefineProperty(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 8\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 3\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 30\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_CONFIG = \"config\"; // Count: 7\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 9\r\nexport var _DYN_LENGTH = \"length\"; // Count: 43\r\nexport var _DYN_TIME = \"time\"; // Count: 5\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 21\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 5\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 5\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 4\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 5\r\nexport var _DYN_FLUSH = \"flush\"; // Count: 5\r\nexport var _DYN__EXTENSIONS = \"_extensions\"; // Count: 4\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 6\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 10\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 7\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 7\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 8\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 6\r\nexport var _DYN_COOKIE_CFG = \"cookieCfg\"; // Count: 3\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 6\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 10\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 5\r\nexport var _DYN_SET_ENABLED = \"setEnabled\"; // Count: 5\r\nexport var _DYN_SUBSTR = \"substr\"; // Count: 6\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_APPLY = \"apply\"; // Count: 6\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 10\r\nexport var _DYN_ENABLE_DEBUG_EXCEPTI4 = \"enableDebugExceptions\"; // Count: 2\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 5\r\nexport var _DYN_CALL = \"call\"; // Count: 18\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_LISTENERS = \"listeners\"; // Count: 6\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_VERSION = \"version\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_ERROR_TO_CONSOLE = \"errorToConsole\";\r\nexport var STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strShimFunction, strShimObject, strShimPrototype, strShimUndefined, throwTypeError } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_APPLY, _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strToISOString = \"toISOString\";\r\nvar cStrEndsWith = \"endsWith\";\r\nvar cStrStartsWith = \"startsWith\";\r\nvar strIndexOf = \"indexOf\";\r\nvar strMap = \"map\";\r\nvar strReduce = \"reduce\";\r\nvar cStrTrim = \"trim\";\r\nvar strToString = \"toString\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass.freeze;\r\nvar _objSeal = ObjClass.seal;\r\nvar _objKeys = ObjClass.keys;\r\nvar StringProto = String[strShimPrototype];\r\nvar _strTrim = StringProto[cStrTrim];\r\nvar _strEndsWith = StringProto[cStrEndsWith];\r\nvar _strStartsWith = StringProto[cStrStartsWith];\r\nvar DateProto = Date[strShimPrototype];\r\nvar _dataToISOString = DateProto[strToISOString];\r\nvar _isArray = Array.isArray;\r\nvar _objToString = ObjProto[strToString];\r\nvar _fnToString = ObjHasOwnProperty[strToString];\r\n// Cache what this browser reports as the object function constructor (as a string)\r\nvar _objFunctionString = _fnToString[_DYN_CALL /* @min:%2ecall */](ObjClass);\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nexport function _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function objToString(obj) {\r\n return _objToString[_DYN_CALL /* @min:%2ecall */](obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return !!(obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop));\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimObject);\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimFunction);\r\n}\r\nexport function isPromiseLike(value) {\r\n return value && isFunction(value.then);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](target, prop)) {\r\n callbackfn[_DYN_CALL /* @min:%2ecall */](target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n var result = false;\r\n if (value && search && !(result = value === search)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strEndsWith ? value[cStrEndsWith](search) : _strEndsWithPoly(value, search);\r\n }\r\n return result;\r\n}\r\n/**\r\n * The _strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function _strEndsWithPoly(value, search) {\r\n var result = false;\r\n var searchLen = search ? search[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n var valLen = value ? value[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (searchLen && valLen && valLen >= searchLen && !(result = value === search)) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function strStartsWith(value, checkValue) {\r\n var result = false;\r\n if (value && checkValue && !(result = value === checkValue)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function _strStartsWithPoly(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n var chkLen = checkValue ? checkValue[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (value && chkLen && value[_DYN_LENGTH /* @min:%2elength */] >= chkLen && !(result = value === checkValue)) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value[_DYN_INDEX_OF /* @min:%2eindexOf */](search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Date]\");\r\n}\r\n/**\r\n * Check if an object is of type Array with optional generic T, the generic type is not validated\r\n * and exists to help with TypeScript validation only.\r\n */\r\nexport var isArray = _isArray || _isArrayPoly;\r\nfunction _isArrayPoly(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Array]\");\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Error]\");\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\n/**\r\n * Checks if the type of the value is a normal plain object (not a null or data)\r\n * @param value\r\n */\r\nexport function isPlainObject(value) {\r\n var result = false;\r\n if (value && typeof value === \"object\") {\r\n // Inlining _objGetPrototypeOf for performance to avoid an additional function call\r\n var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);\r\n if (!proto) {\r\n // No prototype found so this is a plain Object eg. 'Object.create(null)'\r\n result = true;\r\n }\r\n else {\r\n // Objects that have a prototype are plain only if they were created using the Object global (native) function\r\n if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](proto, strConstructor)) {\r\n proto = proto[strConstructor];\r\n }\r\n result = typeof proto === strShimFunction && _fnToString[_DYN_CALL /* @min:%2ecall */](proto) === _objFunctionString;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (date) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n return _dataToISOString ? date[strToISOString]() : _toISOStringPoly(date);\r\n }\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function _toISOStringPoly(date) {\r\n if (date && date.getUTCFullYear) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn[_DYN_CALL /* @min:%2ecall */](thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strIndexOf]) {\r\n return arr[strIndexOf](searchElement, fromIndex);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var results;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strMap]) {\r\n return arr[strMap](callbackfn, thisArg);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var _this = thisArg || arr;\r\n results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn[_DYN_CALL /* @min:%2ecall */](_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var value;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strReduce]) {\r\n return arr[strReduce](callbackfn, initialValue);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var lp = 0;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments[_DYN_LENGTH /* @min:%2elength */] >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (str) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE /* @min:%2ereplace */] ? str[_DYN_REPLACE /* @min:%2ereplace */](/^\\s+|(?=\\s)\\s+$/g, STR_EMPTY) : str);\r\n }\r\n return str;\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (!_objKeysHasDontEnumBug && _objKeys) {\r\n return _objKeys(obj);\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop)) {\r\n result[_DYN_PUSH /* @min:%2epush */](prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, _objKeysDontEnums[lp])) {\r\n result[_DYN_PUSH /* @min:%2epush */](_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nfunction _doNothing(value) {\r\n return value;\r\n}\r\nexport function deepFreeze(obj) {\r\n if (_objFreeze) {\r\n objForEachKey(obj, function (name, value) {\r\n if (isArray(value) || isObject(value)) {\r\n _objFreeze(value);\r\n }\r\n });\r\n }\r\n return objFreeze(obj);\r\n}\r\nexport var objFreeze = _objFreeze || _doNothing;\r\nexport var objSeal = _objSeal || _doNothing;\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n var dt = Date;\r\n return dt.now ? dt.now() : new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Get the mapped config value, if null or undefined any supplied defaultValue will be returned.\r\n * @param field - The name of the field as the named enum value (number) or the string name.\r\n * @param defaultValue - The default value to return if the config field is not present, null or undefined.\r\n */\r\nexport function getCfgValue(theValue, defaultValue) {\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](arg, prop)));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objForEachKey, deepFreeze } from \"../JavaScriptSDK/HelperFuncs\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumStyle(values) {\r\n var enumClass = {};\r\n objForEachKey(values, function (field, value) {\r\n enumClass[field] = value;\r\n enumClass[value] = field;\r\n });\r\n return deepFreeze(enumClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key as both the key and value, X[\"key\"] => \"key\" and X[0] => \"keyof 0\".\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = field;\r\n mapClass[value] = field;\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createValueMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = value[1];\r\n mapClass[value[0]] = value[1];\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strDocumentMode = \"documentMode\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where <global>.window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL /* @min:%2ecall */](object);\r\n var propertyValueDump = STR_EMPTY;\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object[_DYN_NAME /* @min:%2ename */] + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getGlobalInst(\"fetch\");\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_DIAG_LOG, _DYN_ENABLE_DEBUG_EXCEPTI4, _DYN_LOGGER, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { dumpObj, getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { getCfgValue, isFunction, isUndefined } from \"./HelperFuncs\";\r\nimport { STR_EMPTY, STR_ERROR_TO_CONSOLE, STR_WARN_TO_CONSOLE } from \"./InternalConstants\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebugExceptions;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };\r\n _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };\r\n _self[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */] = function () { return _enableDebugExceptions; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebugExceptions) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === 1 /* eLoggingSeverity.CRITICAL */ ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */] = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */](throttleLimitMessage);\r\n }\r\n else {\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);\r\n _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);\r\n _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);\r\n _enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */], false);\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.enableDebugExceptions.\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.telemetryLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.maxInternalMessageLimit.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = dateNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar version = '2.8.9';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\nfunction _createAccessor(target, prop, value) {\r\n if (_objDefineProperty) {\r\n try {\r\n _objDefineProperty(target, prop, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n if (!_createAccessor(target, data.id, theCache)) {\r\n // Environment doesn't support accessor, so just use direct assignment\r\n target[data.id] = theCache;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _DYN_COOKIE_CFG, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_ENABLED, _DYN_SPLIT, _DYN_SUBSTRING, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isArray, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return cookieMgrCfg.ignoreCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (cookieMgrCfg.blockedCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */];\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n }\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n _a.set = function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = theValue[_DYN_INDEX_OF /* @min:%2eindexOf */](\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx));\r\n values = _extractParts(value[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a.get = function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n _a.del = function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n _a.purge = function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = thePart[_DYN_INDEX_OF /* @min:%2eindexOf */](\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx))] = strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDocument, getWindow } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, isArray, objForEachKey, objKeys } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventName String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SET_ENABLED, _DYN_SUBSTR, _DYN_SUBSTRING } from \"../__DynamicConstants\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getPerformance, isIE } from \"./EnvUtils\";\r\nimport { addEventHandler, attachEvent, detachEvent } from \"./EventHelpers\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { mwcRandom32, mwcRandomSeed, newId, random32, randomValue } from \"./RandomHelper\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return uuid[_DYN_SUBSTRING /* @min:%2esubstring */](0, 8) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](8, 12) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](12, 16) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](16, 20) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](20);\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return value[_DYN_SUBSTRING /* @min:%2esubstring */](start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct[_DYN_SUBSTR /* @min:%2esubstr */](0, 8) + oct[_DYN_SUBSTR /* @min:%2esubstr */](9, 4) + \"4\" + oct[_DYN_SUBSTR /* @min:%2esubstr */](13, 3) + clockSequenceHi + oct[_DYN_SUBSTR /* @min:%2esubstr */](16, 3) + oct[_DYN_SUBSTR /* @min:%2esubstr */](19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs[_DYN_PUSH /* @min:%2epush */](cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr()[_DYN_SET_ENABLED /* @min:%2esetEnabled */](false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SUBSTR, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { isArray, isString, strTrim } from \"./HelperFuncs\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]*)?$/;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a.spanId = isValidSpanId(spanId) ? spanId : generateW3CId()[_DYN_SUBSTR /* @min:%2esubstr */](0, 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = match[1],\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = match[2],\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = match[3],\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version, \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), \"-\").concat(flags);\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name));\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name));\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]) &&\r\n isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n var isInitialized = false;\r\n if (isFunction(thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */])) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n else {\r\n pluginState = _getPluginState(thePlugin);\r\n isInitialized = pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extent from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = isFunction(extB[STR_PROCESS_TELEMETRY]);\r\n if (isFunction(extA[STR_PROCESS_TELEMETRY])) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func[_DYN_CALL /* @min:%2ecall */](component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, isObject, isUndefined, objExtend, objForEachKey, objFreeze, objKeys, proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core[_DYN_CONFIG /* @min:%2econfig */] || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param config\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, config, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, config);\r\n },\r\n getCfg: function () {\r\n return config;\r\n },\r\n getExtCfg: _getExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func[_DYN_CALL /* @min:%2ecall */](completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, defaultValue, mergeDefault) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n if (mergeDefault === void 0) { mergeDefault = 0 /* GetExtCfgMergeType.None */; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n if (!theConfig) {\r\n // Just use the defaults\r\n theConfig = defaultValue;\r\n }\r\n else if (isObject(defaultValue)) {\r\n if (mergeDefault !== 0 /* GetExtCfgMergeType.None */) {\r\n // Merge the defaults and configured values\r\n var newConfig_1 = objExtend(true, defaultValue, theConfig);\r\n if (config && mergeDefault === 2 /* GetExtCfgMergeType.MergeDefaultFromRootOrDefault */) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config\r\n objForEachKey(defaultValue, function (field) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig_1[field])) {\r\n var cfgValue = config[field];\r\n if (!isNullOrUndefined(cfgValue)) {\r\n newConfig_1[field] = cfgValue;\r\n }\r\n }\r\n });\r\n }\r\n theConfig = newConfig_1;\r\n }\r\n }\r\n return theConfig;\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, config, core, startAt) {\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin.unload(context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// \r\nimport { _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_FLUSH, _DYN_IDENTIFIER, _DYN_LENGTH, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, objFreeze, throwError } from \"./HelperFuncs\";\r\nimport { STR_PRIORITY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nexport var ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority - \";\r\nfunction _addChannelQueue(channelQueue, queue, core) {\r\n if (queue && isArray(queue) && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a[STR_PRIORITY /* @min:%2epriority */] - b[STR_PRIORITY /* @min:%2epriority */];\r\n });\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem[STR_PRIORITY /* @min:%2epriority */] < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n }\r\n });\r\n channelQueue[_DYN_PUSH /* @min:%2epush */]({\r\n queue: objFreeze(queue),\r\n chain: createTelemetryProxyChain(queue, core[_DYN_CONFIG /* @min:%2econfig */], core)\r\n });\r\n }\r\n}\r\nexport function createChannelControllerPlugin(channelQueue, core) {\r\n function _getTelCtx() {\r\n return createProcessTelemetryContext(null, core[_DYN_CONFIG /* @min:%2econfig */], core, null);\r\n }\r\n function _processChannelQueue(theChannels, itemCtx, processFn, onComplete) {\r\n var waiting = theChannels ? (theChannels[_DYN_LENGTH /* @min:%2elength */] + 1) : 1;\r\n function _runChainOnComplete() {\r\n waiting--;\r\n if (waiting === 0) {\r\n onComplete && onComplete();\r\n onComplete = null;\r\n }\r\n }\r\n if (waiting > 0) {\r\n arrForEach(theChannels, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var channelChain = channels.chain;\r\n var chainCtx = itemCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](channelChain);\r\n chainCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_runChainOnComplete);\r\n // Cause this chain to start processing\r\n processFn(chainCtx);\r\n }\r\n else {\r\n waiting--;\r\n }\r\n });\r\n }\r\n _runChainOnComplete();\r\n }\r\n function _doUpdate(updateCtx, updateState) {\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n _processChannelQueue(channelQueue, updateCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n }, function () {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n });\r\n return true;\r\n }\r\n function _doTeardown(unloadCtx, unloadState) {\r\n var theUnloadState = unloadState || {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */,\r\n isAsync: false\r\n };\r\n _processChannelQueue(channelQueue, unloadCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }, function () {\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n isInitialized = false;\r\n });\r\n return true;\r\n }\r\n function _getChannel(pluginIdentifier) {\r\n var thePlugin = null;\r\n if (channelQueue && channelQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelQueue, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channels.queue, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier) {\r\n thePlugin = ext;\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n });\r\n if (thePlugin) {\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n }\r\n });\r\n }\r\n return thePlugin;\r\n }\r\n var isInitialized = false;\r\n var channelController = {\r\n identifier: \"ChannelControllerPlugin\",\r\n priority: ChannelControllerPriority,\r\n initialize: function (config, core, extensions, pluginChain) {\r\n isInitialized = true;\r\n arrForEach(channelQueue, function (channels) {\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(createProcessTelemetryContext(channels.chain, config, core), extensions);\r\n }\r\n });\r\n },\r\n isInitialized: function () {\r\n return isInitialized;\r\n },\r\n processTelemetry: function (item, itemCtx) {\r\n _processChannelQueue(channelQueue, itemCtx || _getTelCtx(), function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n }, function () {\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n });\r\n },\r\n update: _doUpdate,\r\n pause: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.pause && plugin.pause();\r\n });\r\n }, null);\r\n },\r\n resume: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.resume && plugin.resume();\r\n });\r\n }, null);\r\n },\r\n teardown: _doTeardown,\r\n getChannel: _getChannel,\r\n flush: function (isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n if (cbTimer) {\r\n clearTimeout(cbTimer);\r\n cbTimer = null;\r\n }\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n if (plugin[_DYN_FLUSH /* @min:%2eflush */]) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin[_DYN_FLUSH /* @min:%2eflush */](isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = setTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }, function () {\r\n doneIterating = true;\r\n doCallback();\r\n });\r\n return true;\r\n },\r\n _setQueue: function (queue) {\r\n channelQueue = queue;\r\n }\r\n };\r\n return channelController;\r\n}\r\nexport function createChannelQueues(channels, extensions, core) {\r\n var channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(channelQueue, queue, core); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin[STR_PRIORITY /* @min:%2epriority */] > ChannelControllerPriority) {\r\n extensionQueue_1[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n });\r\n _addChannelQueue(channelQueue, extensionQueue_1, core);\r\n }\r\n return channelQueue;\r\n}\r\n//# sourceMappingURL=ChannelController.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach } from \"./HelperFuncs\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, proxyFunctionAs, setValue } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hooks;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all instrumentation hooks\r\n arrForEach(oldHooks, function (fn) {\r\n fn.rm();\r\n });\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self._addHook = function (hooks) {\r\n if (hooks) {\r\n if (isArray(hooks)) {\r\n _hooks = _hooks.concat(hooks);\r\n }\r\n else {\r\n _hooks[_DYN_PUSH /* @min:%2epush */](hooks);\r\n }\r\n }\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hooks = [];\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n var theInitializer = {\r\n id: _id++,\r\n fn: telemetryInitializer\r\n };\r\n _initializers[_DYN_PUSH /* @min:%2epush */](theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CONFIG, _DYN_FLUSH, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_ENABLED, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN__EXTENSIONS } from \"../__DynamicConstants\";\r\nimport { ChannelControllerPriority, createChannelControllerPlugin, createChannelQueues } from \"./ChannelController\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { arrForEach, arrIndexOf, getCfgValue, getSetValue, isFunction, isNullOrUndefined, objExtend, objFreeze, proxyFunctionAs, proxyFunctions, throwError, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY } from \"./InternalConstants\";\r\nimport { PerfManager, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\nvar defaultInitConfig = {\r\n // Have the Diagnostic Logger default to log critical errors to the console\r\n loggingLevelConsole: 1 /* eLoggingSeverity.CRITICAL */\r\n};\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {\r\n all: allExtensions\r\n },\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _createDummyNotificationManager() {\r\n var _a;\r\n return objCreateFn((_a = {},\r\n _a[_DYN_ADD_NOTIFICATION_LIS1 /* @min:addNotificationListener */] = function (listener) { },\r\n _a[_DYN_REMOVE_NOTIFICATION_2 /* @min:removeNotificationListener */] = function (listener) { },\r\n _a[STR_EVENTS_SENT /* @min:eventsSent */] = function (events) { },\r\n _a[STR_EVENTS_DISCARDED /* @min:eventsDiscarded */] = function (events, reason) { },\r\n _a[STR_EVENTS_SEND_REQUEST /* @min:eventsSendRequest */] = function (sendReason, isAsync) { },\r\n _a));\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _config;\r\n var _isInitialized;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _coreExtensions;\r\n var _channelControl;\r\n var _channelConfig;\r\n var _channelQueue;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _debugListener;\r\n var _traceCtx;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n _config = config || {};\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n if (isNullOrUndefined(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _initDebugListener();\r\n _initPerfManager();\r\n // add notification to the extensions in the config so other plugins can access it\r\n _initExtConfig();\r\n if (logger) {\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n }\r\n var cfgExtensions = getSetValue(_config, STR_EXTENSIONS, []);\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = getSetValue(_config, STR_CHANNELS, []);\r\n _initPluginChain(null);\r\n if (!_channelQueue || _channelQueue[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n var controls = [];\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (channels) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channels.queue);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = _createDummyNotificationManager();\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_config, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n if (!_perfManager && !_cfgPerfManager) {\r\n if (getCfgValue(_config.enablePerfMgr)) {\r\n var createPerfMgr = getCfgValue(_config[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */]);\r\n if (isFunction(createPerfMgr)) {\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n }\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\r\n _self.pollInternalLogs = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n var interval = getCfgValue(_config.diagnosticLogInterval);\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n }\r\n _internalLogPoller = setInterval(function () {\r\n _flushInternalLogs();\r\n }, interval);\r\n return _internalLogPoller;\r\n };\r\n /**\r\n * Stop polling log messages from logger.queue\r\n */\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n _flushInternalLogs();\r\n }\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self[_DYN_FLUSH /* @min:%2eflush */] = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _config = objExtend(true, {}, defaultInitConfig);\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_config);\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = [];\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _coreExtensions = null;\r\n _configExtensions = [];\r\n _channelControl = null;\r\n _channelConfig = null;\r\n _channelQueue = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n }\r\n function _createTelCtx() {\r\n return createProcessTelemetryContext(_getPluginChain(), _config, _self);\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _coreExtensions = theExtensions[STR_CORE /* @min:%2ecore */];\r\n _pluginChain = null;\r\n // Sort the complete set of extensions by priority\r\n var allExtensions = theExtensions.all;\r\n // Initialize the Channel Queues and the channel plugins first\r\n _channelQueue = objFreeze(createChannelQueues(_channelConfig, allExtensions, _self));\r\n if (_channelControl) {\r\n // During add / remove of a plugin this may get called again, so don't re-add if already present\r\n // But we also want the controller as the last, so remove if already present\r\n // And reusing the existing instance, just in case an installed plugin has a reference and\r\n // is using it.\r\n var idx = arrIndexOf(allExtensions, _channelControl);\r\n if (idx !== -1) {\r\n allExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n idx = arrIndexOf(_coreExtensions, _channelControl);\r\n if (idx !== -1) {\r\n _coreExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n _channelControl._setQueue(_channelQueue);\r\n }\r\n else {\r\n _channelControl = createChannelControllerPlugin(_channelQueue, _self);\r\n }\r\n // Add on \"channelController\" as the last \"plugin\"\r\n allExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n _coreExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = sortPlugins(allExtensions);\r\n // Initialize the controls\r\n _channelControl[_DYN_INITIALIZE /* @min:%2einitialize */](_config, _self, allExtensions);\r\n initializePlugins(_createTelCtx(), allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = objFreeze(sortPlugins(_coreExtensions || [])).slice();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var _a;\r\n var theExt = null;\r\n var thePlugin = null;\r\n arrForEach(_self[_DYN__EXTENSIONS /* @min:%2e_extensions */], function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _channelControl && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n });\r\n if (!thePlugin && _channelControl) {\r\n // Check the channel Controller\r\n thePlugin = _channelControl.getChannel(pluginIdentifier);\r\n }\r\n if (thePlugin) {\r\n theExt = (_a = {\r\n plugin: thePlugin\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n _a.isEnabled = function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n _a.remove = function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n },\r\n _a);\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_coreExtensions || []).slice();\r\n // During add / remove this may get called again, so don't readd if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _config, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _config, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n var queue = _self[_DYN_LOGGER /* @min:%2elogger */] ? _self[_DYN_LOGGER /* @min:%2elogger */].queue : [];\r\n if (queue) {\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = getCfgValue(_config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]),\r\n _a.time = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n if (_channelControl) {\r\n return _channelControl[_DYN_FLUSH /* @min:%2eflush */](isAsync, callBack, sendReason || 6 /* SendRequestReason.SdkUnload */, cbTimeout);\r\n }\r\n callBack && callBack(false);\r\n return true;\r\n }\r\n function _initDebugListener() {\r\n var disableDbgExt = getCfgValue(_config.disableDbgExt);\r\n if (disableDbgExt === true && _debugListener) {\r\n // Remove any previously loaded debug listener\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](_debugListener);\r\n _debugListener = null;\r\n }\r\n if (_notificationManager && !_debugListener && disableDbgExt !== true) {\r\n _debugListener = getDebugListener(_config);\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](_debugListener);\r\n }\r\n }\r\n function _initPerfManager() {\r\n var enablePerfMgr = getCfgValue(_config.enablePerfMgr);\r\n if (!enablePerfMgr && _cfgPerfManager) {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n if (enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n getSetValue(_config, STR_CREATE_PERF_MGR, _createPerfManager);\r\n }\r\n }\r\n function _initExtConfig() {\r\n var extConfig = getSetValue(_config, STR_EXTENSION_CONFIG, {});\r\n extConfig.NotificationManager = _notificationManager;\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.getTransmissionControls.\r\n// Removed Stub for BaseCore.prototype.track.\r\n// Removed Stub for BaseCore.prototype.getProcessTelContext.\r\n// Removed Stub for BaseCore.prototype.getNotifyMgr.\r\n// Removed Stub for BaseCore.prototype.addNotificationListener.\r\n// Removed Stub for BaseCore.prototype.removeNotificationListener.\r\n// Removed Stub for BaseCore.prototype.getCookieMgr.\r\n// Removed Stub for BaseCore.prototype.setCookieMgr.\r\n// Removed Stub for BaseCore.prototype.getPerfMgr.\r\n// Removed Stub for BaseCore.prototype.setPerfMgr.\r\n// Removed Stub for BaseCore.prototype.eventCnt.\r\n// Removed Stub for BaseCore.prototype.pollInternalLogs.\r\n// Removed Stub for BaseCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for BaseCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for BaseCore.prototype.unload.\r\n// Removed Stub for BaseCore.prototype.getPlugin.\r\n// Removed Stub for BaseCore.prototype.addPlugin.\r\n// Removed Stub for BaseCore.prototype.evtNamespace.\r\n// Removed Stub for BaseCore.prototype.addUnloadCb.\r\n// Removed Stub for BaseCore.prototype.flush.\r\n// Removed Stub for BaseCore.prototype.getTraceCtx.\r\n// Removed Stub for BaseCore.prototype.setTraceCtx.\r\n// Removed Stub for BaseCore.prototype.releaseQueue.\r\n// Removed Stub for BaseCore.prototype._updateHook.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseCore.__ieDyn=1;\n\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LISTENERS, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nfunction _runListeners(listeners, name, isAsync, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (isAsync) {\r\n setTimeout(function () { return callback(listener); }, 0);\r\n }\r\n else {\r\n try {\r\n callback(listener);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n while (index > -1) {\r\n _self.listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SENT, true, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_DISCARDED, true, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_PERF_EVENT, false, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n setTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_GET_NOTIFY_MGR, _DYN_INITIALIZE, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { BaseCore } from \"./BaseCore\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { isNullOrUndefined, throwError } from \"./HelperFuncs\";\r\nimport { STR_EVENTS_DISCARDED, STR_GET_PERF_MGR } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n function _validateTelemetryItem(telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nimport { _getObjProto, hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getGlobalInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype) {\r\n var owner = null;\r\n if (target) {\r\n if (hasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 4\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 12\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_MAX_TIMES_PER_MONTH = \"maxTimesPerMonth\"; // Count: 2\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 4\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 11\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 5\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 6\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 6\r\nexport var _DYN_SANITIZE_KEY_AND_ADD2 = \"sanitizeKeyAndAddUniqueness\"; // Count: 2\r\nexport var _DYN_SANITIZE_EXCEPTION = \"sanitizeException\"; // Count: 2\r\nexport var _DYN_SANITIZE_PROPERTIES = \"sanitizeProperties\"; // Count: 2\r\nexport var _DYN_SANITIZE_MEASUREMENT3 = \"sanitizeMeasurements\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](uid);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_SANITIZE_EXCEPTION, _DYN_SANITIZE_KEY_AND_ADD2, _DYN_SANITIZE_MEASUREMENT3, _DYN_SANITIZE_PROPERTIES, _DYN_STRINGIFY, _DYN_SUBSTRING, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name[_DYN_TO_STRING /* @min:%2etoString */]());\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = name[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString()[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = value[_DYN_TO_STRING /* @min:%2etoString */]()[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = input[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = (_a = {\r\n MAX_NAME_LENGTH: 150 /* DataSanitizerValues.MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* DataSanitizerValues.MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* DataSanitizerValues.MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */\r\n },\r\n _a[_DYN_SANITIZE_KEY_AND_ADD2 /* @min:sanitizeKeyAndAddUniqueness */] = dataSanitizeKeyAndAddUniqueness,\r\n _a.sanitizeKey = dataSanitizeKey,\r\n _a.sanitizeString = dataSanitizeString,\r\n _a.sanitizeUrl = dataSanitizeUrl,\r\n _a.sanitizeMessage = dataSanitizeMessage,\r\n _a[_DYN_SANITIZE_EXCEPTION /* @min:sanitizeException */] = dataSanitizeException,\r\n _a[_DYN_SANITIZE_PROPERTIES /* @min:sanitizeProperties */] = dataSanitizeProperties,\r\n _a[_DYN_SANITIZE_MEASUREMENT3 /* @min:sanitizeMeasurements */] = dataSanitizeMeasurements,\r\n _a.sanitizeId = dataSanitizeId,\r\n _a.sanitizeInput = dataSanitizeInput,\r\n _a.padNumber = dsPadNumber,\r\n _a.trim = strTrim,\r\n _a);\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, attachEvent, canUseCookies as coreCanUseCookies, dateNow, deleteCookie as coreDeleteCookie, disableCookies as coreDisableCookies, dumpObj, generateW3CId, getCookie as coreGetCookie, getExceptionName as coreGetExceptionName, getIEVersion, getPerformance, isArray, isBeaconsSupported, isDate, isError, isNullOrUndefined, isValidSpanId, isValidTraceId, newId, random32, setCookie as coreSetCookie, strTrim, toISOString, uaDisallowsSameSiteNone } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { getExtensionByName, isCrossOriginError, msToTimeSpan, stringToBoolOrDefault } from \"./HelperFuncs\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetLocalStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlRemoveSessionStorage, utlRemoveStorage, utlSetLocalStorage, utlSetSessionStorage } from \"./StorageHelperFuncs\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":443\") !== -1 || requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_INDEX_OF, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"<no_method>\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\")[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_DISABLE_EXCEPTION_TR0 = \"disableExceptionTracking\"; // Count: 3\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI1 = \"autoTrackPageVisitTime\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D2 = \"overridePageViewDuration\"; // Count: 3\r\nexport var _DYN_ENABLE_UNHANDLED_PRO3 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 3\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB4 = \"isStorageUseDisabled\"; // Count: 4\r\nexport var _DYN_IS_BROWSER_LINK_TRAC5 = \"isBrowserLinkTrackingEnabled\"; // Count: 4\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR6 = \"enableAutoRouteTracking\"; // Count: 3\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_DISABLE_FLUSH_ON_BEF7 = \"disableFlushOnBeforeUnload\"; // Count: 3\r\nexport var _DYN_DISABLE_FLUSH_ON_UNL8 = \"disableFlushOnUnload\"; // Count: 2\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_9 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER10 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO11 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P12 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER13 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI14 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA15 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_DURATION = \"duration\"; // Count: 10\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN16 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI17 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT18 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN19 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 3\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM20 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DURATION, _DYN_GET_PERFORMANCE_TIMI17, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN16, _DYN_IS_PERFORMANCE_TIMIN19, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_SEND_PAGE_VIEW_INTER10, _DYN_SEND_PAGE_VIEW_PERFO11, _DYN_SHOULD_COLLECT_DURAT18, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN16 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI17 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN19 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (intervalHandle) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI17, _DYN_IS_PERFORMANCE_TIMIN16, _DYN_IS_PERFORMANCE_TIMIN19, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT18 } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _this = this;\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_this[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI17 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN16 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN19 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, objDefineAccessors, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PAGE_VISIT_START_TIM20, _DYN_TRACK_PREVIOUS_PAGE_9 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n startPageVisitTimer(pageName, pageUrl);\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n function startPageVisitTimer(pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n _warnToConsole(logger, \"Call to start failed: \" + dumpObj(e));\r\n }\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM20 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefineAccessors(_self, \"_logger\", function () { return logger; });\r\n objDefineAccessors(_self, \"pageVisitTimeTrackingHandler\", function () { return pageVisitTimeTrackingHandler; });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM20 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, stringToBoolOrDefault, utlDisableStorage, utlEnableStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, objDefineAccessors, objForEachKey, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA15, _DYN_AUTO_TRACK_PAGE_VISI1, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DISABLE_EXCEPTION_TR0, _DYN_DISABLE_FLUSH_ON_BEF7, _DYN_ENABLE_AUTO_ROUTE_TR6, _DYN_ENABLE_UNHANDLED_PRO3, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC5, _DYN_IS_STORAGE_USE_DISAB4, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_NAME_PREFIX, _DYN_OVERRIDE_PAGE_VIEW_D2, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_SAMPLING_PERCENTAGE, _DYN_SEND_EXCEPTION_INTER13, _DYN_SEND_PAGE_VIEW_INTER10, _DYN_SEND_PAGE_VIEW_PERFO11, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_9, _DYN__CREATE_AUTO_EXCEPTI14, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nfunction _configMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return value;\r\n}\r\nfunction _getDefaultConfig(config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);\r\n config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);\r\n config[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */] = stringToBoolOrDefault(config[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */]);\r\n config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */] = stringToBoolOrDefault(config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]);\r\n config[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */] = stringToBoolOrDefault(config[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */]);\r\n config[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */] = stringToBoolOrDefault(config[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */]);\r\n if (isNaN(config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */]) || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] <= 0 || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] >= 100) {\r\n config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] = 100;\r\n }\r\n config[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */] = stringToBoolOrDefault(config[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */]);\r\n config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */] = stringToBoolOrDefault(config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */]);\r\n config[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */] = stringToBoolOrDefault(config[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */]);\r\n config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */] = stringToBoolOrDefault(config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n return config;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base._addHook;\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER13 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n var theError = exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */] || new Error(strNotSpecified);\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER13 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n var extConfig = _populateDefaults(config);\r\n _updateStorageUsage(extConfig);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_this, extConfig[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */], _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _updateBrowserLinkTracking(extConfig, config);\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking(extConfig);\r\n _updateLocationChange(extConfig);\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n var identifier = _self.identifier;\r\n // load default values if specified\r\n var defaults = _getDefaultConfig(config);\r\n var extConfig = _self.config = ctx.getExtCfg(identifier);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n extConfig[field] = ctx.getConfig(identifier, field, value);\r\n if (extConfig[field] === undefined) {\r\n extConfig = value;\r\n }\r\n });\r\n }\r\n return extConfig;\r\n }\r\n function _updateBrowserLinkTracking(extConfig, config) {\r\n _isBrowserLinkTrackingEnabled = extConfig[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */] || config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests);\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking(extConfig) {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _disableExceptionTracking = extConfig[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */];\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);\r\n }\r\n function _updateLocationChange(extConfig) {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _enableAutoRouteTracking = extConfig[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(extConfig, win, _history, locn);\r\n }\r\n }\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(extConfig, win, history, locn) {\r\n var namePrefix = extConfig[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(this, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n if (!_historyListenerAdded) {\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n }\r\n function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {\r\n _enableUnhandledPromiseRejectionTracking = extConfig[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoUnhandledPromiseInstrumented = true;\r\n extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;\r\n }\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {eLoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n }\r\n // For backward compatibility\r\n objDefineAccessors(_self, \"_pageViewManager\", function () { return _pageViewManager; });\r\n objDefineAccessors(_self, \"_pageViewPerformanceManager\", function () { return _pageViewPerformanceManager; });\r\n objDefineAccessors(_self, \"_pageVisitTimeManager\", function () { return _pageVisitTimeManager; });\r\n objDefineAccessors(_self, \"_evtNamespace\", function () { return \".\" + _evtNamespace; });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '2.8.9'; // Not currently used anywhere\r\n AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 36\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ON_LINE = \"onLine\"; // Count: 4\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 5\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_PUSH = \"push\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_BATCH_PAYLOADS = \"batchPayloads\"; // Count: 5\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 6\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 7\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 6\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 3\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 15\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 2\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN__SENDER_CONFIG = \"_senderConfig\"; // Count: 4\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 7\r\nexport var _DYN_ENABLE_SESSION_STORA4 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 2\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 8\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 4\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_DISABLE_FET5 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_TELEMETRY = \"disableTelemetry\"; // Count: 2\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN__XHR_READY_STATE_CHA6 = \"_xhrReadyStateChange\"; // Count: 2\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 11\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 5\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 6\r\nexport var _DYN_IS_RETRY_DISABLED = \"isRetryDisabled\"; // Count: 5\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_DISABLE_INSTRUMENTAT7 = \"disableInstrumentationKeyValidation\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '2.8.9'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ON_LINE } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var _onlineStatus = true;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n result = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n return result;\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BATCH_PAYLOADS, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_NAME_PREFIX, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += _buffer[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */] = function (payload) {\r\n if (payload && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n utlSetSessionStorage(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, DisabledPropertyName, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, _warnToConsole, arrForEach, createUniqueNamespace, dateNow, dumpObj, getExceptionName, getIEVersion, getJSON, getNavigator, getWindow, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isXhrSupported, mergeEvtNamespace, objForEachKey, objKeys, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_BASE_TYPE, _DYN_BATCH_PAYLOADS, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_INSTRUMENTAT7, _DYN_DISABLE_TELEMETRY, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA4, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_SEND_REQUEST, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_IS_RETRY_DISABLED, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_NAME_PREFIX, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET5, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SAMPLING_PERCENTAGE, _DYN_SET_REQUEST_HEADER, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER, _DYN__SENDER_CONFIG, _DYN__XHR_READY_STATE_CHA6 } from \"./__DynamicConstants\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n var _a;\r\n var defaultValue;\r\n var defaultCustomHeaders;\r\n // set default values\r\n return _a = {\r\n endpointUrl: function () { return DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH; }\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = function () { return false; },\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = function () { return 15000; },\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = function () { return 102400; },\r\n _a[_DYN_DISABLE_TELEMETRY /* @min:disableTelemetry */] = function () { return false; },\r\n _a[_DYN_ENABLE_SESSION_STORA4 /* @min:enableSessionStorageBuffer */] = function () { return true; },\r\n _a[_DYN_IS_RETRY_DISABLED /* @min:isRetryDisabled */] = function () { return false; },\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = function () { return true; },\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = function () { return false; },\r\n _a[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:onunloadDisableFetch */] = function () { return false; },\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = function () { return false; },\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = function () { return defaultValue; },\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = function () { return defaultValue; },\r\n _a[_DYN_SAMPLING_PERCENTAGE /* @min:samplingPercentage */] = function () { return 100; },\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = function () { return defaultCustomHeaders; },\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = function () { return defaultValue; },\r\n _a.eventsLimitInMem = function () { return 10000; },\r\n _a;\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * The configuration for this sender instance\r\n */\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _fallbackSender; // The sender to use if the payload size is too large\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */]()) {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */]() === false || _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */]() === false) && isBeaconsSupported()) {\r\n try {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // TODO v3.x: Change the ISenderConfig to not be function calls\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][field] = function () {\r\n var theValue = ctx.getConfig(identifier, field, value());\r\n if (!theValue && field === \"endpointUrl\") {\r\n // Use the default value (handles empty string in the configuration)\r\n theValue = value();\r\n }\r\n return theValue;\r\n };\r\n });\r\n _self._buffer = (_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENABLE_SESSION_STORA4 /* @min:%2eenableSessionStorageBuffer */]() && utlCanUseSessionStorage())\r\n ? new SessionStorageSendBuffer(diagLog, _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */]) : new ArraySendBuffer(diagLog, _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */]);\r\n _self._sample = new Sample(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */](), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders()[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */](), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */];\r\n var sendPostFunc = null;\r\n if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */]() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:%2eonunloadDisableFetch */]() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */]()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n var convertUndefined = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */]() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, convertUndefined);\r\n if (!aiEnvelope_1) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload[_DYN_LENGTH /* @min:%2elength */]) > _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */]()) {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self[_DYN__XHR_READY_STATE_CHA6 /* @min:%2e_xhrReadyStateChange */] = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */]()) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n _offlineListener.unload();\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, _formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]()) {\r\n _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var url = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSender && _fallbackSender(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH /* @min:%2elength */]); };\r\n xhr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xhr.send(batch);\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n try {\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response.ok) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload[_DYN_LENGTH /* @min:%2elength */], response.statusText, text);\r\n });\r\n }\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, error.message);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, dumpObj(e));\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */] &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */](), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 401 // Unauthorized\r\n || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n return;\r\n }\r\n var endpointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xdr.send(batch);\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config[_DYN_DISABLE_INSTRUMENTAT7 /* @min:%2edisableInstrumentationKeyValidation */]) ? false : config[_DYN_DISABLE_INSTRUMENTAT7 /* @min:%2edisableInstrumentationKeyValidation */];\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _fallbackSender = null;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 12\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 10\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_CAN_INCLUDE_CORRELAT3 = \"canIncludeCorrelationHeader\"; // Count: 2\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_APP_ID = \"appId\"; // Count: 5\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT4 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_DISTRIBUTED_TRACING_5 = \"distributedTracingMode\"; // Count: 3\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE6 = \"enableRequestHeaderTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST7 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA8 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V9 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD10 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM11 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN12 = \"disableAjaxTracking\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI13 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 10\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 8\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 10\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE14 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 5\r\nexport var _DYN_RESPONSE_FINISHED_TI15 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA16 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_GET_CORRELATION_CONT17 = \"getCorrelationContext\"; // Count: 2\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL18 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES19 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI15, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE14, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n self[_DYN_STATE_CHANGE_ATTACHE14 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a.method = self[_DYN_METHOD /* @min:%2emethod */],\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self.errorStatusText && self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CorrelationIdHelper, DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, deepFreeze, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, objForEachKey, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES19, _DYN_AJAX_PERF_LOOKUP_DEL18, _DYN_APP_ID, _DYN_CAN_INCLUDE_CORRELAT3, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN12, _DYN_DISABLE_FETCH_TRACKI13, _DYN_DISTRIBUTED_TRACING_5, _DYN_ENABLE_AJAX_ERROR_ST7, _DYN_ENABLE_AJAX_PERF_TRA8, _DYN_ENABLE_REQUEST_HEADE6, _DYN_ENABLE_RESPONSE_HEAD10, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM11, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA16, _DYN_GET_CORRELATION_CONT17, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V9, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI15, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE14, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT4, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strFetch = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST /* @min:%2einst */]),\r\n exception: dumpObj(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = deepFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nfunction _getDefaultConfig() {\r\n var _a;\r\n var config = (_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V9 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN12 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI13 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM11 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a[_DYN_APP_ID /* @min:appId */] = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE6 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST7 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA8 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL18 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a);\r\n return config;\r\n}\r\nfunction _getEmptyConfig() {\r\n var emptyConfig = _getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _config;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base._addHook;\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());\r\n if (appId) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT4 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */] === 2 /* eDistributedTracingModes.W3C */\r\n || _config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */] === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _config = AjaxMonitor.getEmptyConfig();\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n }\r\n function _populateDefaults(config) {\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n // Reset to the empty config\r\n _config = _getEmptyConfig();\r\n var defaultConfig = _getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */];\r\n _enableRequestHeaderTracking = _config[_DYN_ENABLE_REQUEST_HEADE6 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _config[_DYN_ENABLE_AJAX_ERROR_ST7 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA8 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V9 /* @min:%2emaxAjaxCallsPerView */];\r\n _enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:%2eenableResponseHeaderTracking */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM11 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _config.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n _disableAjaxTracking = !!_config[_DYN_DISABLE_AJAX_TRACKIN12 /* @min:%2edisableAjaxTracking */];\r\n _disableFetchTracking = !!_config[_DYN_DISABLE_FETCH_TRACKI13 /* @min:%2edisableFetchTracking */];\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _config.ignoreHeaders) {\r\n arrForEach(_config.ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, strFetch, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: response[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, strFetch, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (args, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (args, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (args) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (args, header, value) {\r\n if (!_disableAjaxTracking && _enableRequestHeaderTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData][_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// <summary>Verifies that particalar instance of XMLHttpRequest needs to be monitored</summary>\r\n /// <param name=\"excludeAjaxDataValidation\">Optional parameter. True if ajaxData must be excluded from verification</param>\r\n /// <returns type=\"bool\">True if instance needs to be monitored, otherwise false</returns>\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE14 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES19 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),\r\n _a.exception = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA16 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA16 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 /* @min:%2egetCorrelationContext */](responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES19 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr),\r\n _a.exception = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config[_DYN_AJAX_PERF_LOOKUP_DEL18 /* @min:%2eajaxPerfLookupDelay */];\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(\"fetch\", ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 /* @min:%2egetCorrelationContext */](responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT4 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n AjaxMonitor.getDefaultConfig = _getDefaultConfig;\r\n AjaxMonitor.getEmptyConfig = _getEmptyConfig;\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 8\r\nexport var _DYN_SDK_EXTENSION = \"sdkExtension\"; // Count: 4\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 7\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 4\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 4\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 5\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_SESSION_EXPIRATION_M7 = \"sessionExpirationMs\"; // Count: 5\r\nexport var _DYN_SESSION_RENEWAL_MS = \"sessionRenewalMs\"; // Count: 4\r\nexport var _DYN_CONFIG = \"config\"; // Count: 4\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_COOKIE_DOMAIN = \"cookieDomain\"; // Count: 3\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM8 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_SDK_EXTENSION } from \"../__DynamicConstants\";\r\nvar Version = '2.8.9';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */] && config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */]() ? config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */]() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_CONFIG, _DYN_COOKIE_DOMAIN, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_EXPIRATION_M7, _DYN_SESSION_RENEWAL_MS, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!isFunction(config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */])) {\r\n config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */] = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!isFunction(config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */])) {\r\n config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */] = function () { return _SessionManager.renewalSpan; };\r\n }\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = (_self.config[_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */]()) ?\r\n _self.config[_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */]() :\r\n ((_self.config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_NAME_PREFIX /* @min:%2enamePrefix */]()) ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() : \"\");\r\n _storageNamePrefix = function () { return cookieNameConst + sessionCookiePostfix; };\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n var sessionExpirationMs = _self.config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]();\r\n if (!isExpired && sessionExpirationMs > 0) {\r\n var sessionRenewalMs = _self.config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */]();\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var theConfig = (_self[_DYN_CONFIG /* @min:%2econfig */] || {});\r\n var getNewId = (theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] ? theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */]() : null) || newId;\r\n _self.automaticSession.id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */]() : 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var config = _self[_DYN_CONFIG /* @min:%2econfig */];\r\n var renewalPeriodMs = config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */]();\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]()) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config[_DYN_COOKIE_DOMAIN /* @min:%2ecookieDomain */] ? config[_DYN_COOKIE_DOMAIN /* @min:%2ecookieDomain */]() : null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]() > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM8, _DYN_CONFIG, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n var userCookiePostfix = (_self.config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */]()) ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */]() : \"\";\r\n _storageNamePrefix = function () { return User.userCookieName + userCookiePostfix; };\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix());\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = (theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] ? theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */]() : null) || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */]() : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"ai_session\" : \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] ? config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */]() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: <authenticatedId>|<accountId>\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx) {\r\n var _this = this;\r\n var logger = core.logger;\r\n this.appId = function () { return null; };\r\n this[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () { return null; };\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_COOKIE_DOMAIN, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SDK_EXTENSION, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_self.context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _self.context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n _extensionConfig = _extensionConfig || {};\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _self.context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var _a;\r\n var defaultValue;\r\n var nullValue = null;\r\n var defaultConfig = (_a = {\r\n instrumentationKey: function () { return defaultValue; }\r\n },\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = function () { return nullValue; },\r\n _a.sessionRenewalMs = function () { return 30 * 60 * 1000; },\r\n _a.samplingPercentage = function () { return 100; },\r\n _a.sessionExpirationMs = function () { return 24 * 60 * 60 * 1000; },\r\n _a[_DYN_COOKIE_DOMAIN /* @min:cookieDomain */] = function () { return nullValue; },\r\n _a[_DYN_SDK_EXTENSION /* @min:sdkExtension */] = function () { return nullValue; },\r\n _a.isBrowserLinkTrackingEnabled = function () { return false; },\r\n _a.appId = function () { return nullValue; },\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = function () { return nullValue; },\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = function () { return defaultValue; },\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = function () { return defaultValue; },\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = function () { return defaultValue; },\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = function () { return 22; },\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = function () { return nullValue; },\r\n _a);\r\n return defaultConfig;\r\n };\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN0 = \"updateSnippetDefinitions\"; // Count: 4\r\nexport var _DYN_LOAD_APP_INSIGHTS = \"loadAppInsights\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 4\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 3\r\nexport var _DYN_DISABLE_EXCEPTION_TR2 = \"disableExceptionTracking\"; // Count: 2\r\nexport var _DYN_DISABLE_TELEMETRY = \"disableTelemetry\"; // Count: 2\r\nexport var _DYN_EMIT_LINE_DELIMITED_3 = \"emitLineDelimitedJson\"; // Count: 2\r\nexport var _DYN_DIAGNOSTIC_LOG_INTER4 = \"diagnosticLogInterval\"; // Count: 6\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI5 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 4\r\nexport var _DYN_DISABLE_AJAX_TRACKIN6 = \"disableAjaxTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL8 = \"isBeaconApiDisabled\"; // Count: 2\r\nexport var _DYN_DISABLE_CORRELATION_9 = \"disableCorrelationHeaders\"; // Count: 2\r\nexport var _DYN_CORRELATION_HEADER_E10 = \"correlationHeaderExcludedDomains\"; // Count: 2\r\nexport var _DYN_DISABLE_FLUSH_ON_BEF11 = \"disableFlushOnBeforeUnload\"; // Count: 4\r\nexport var _DYN_DISABLE_FLUSH_ON_UNL12 = \"disableFlushOnUnload\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA13 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN_IS_COOKIE_USE_DISABL14 = \"isCookieUseDisabled\"; // Count: 2\r\nexport var _DYN_IS_STORAGE_USE_DISAB15 = \"isStorageUseDisabled\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC16 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_ENABLE_CORS_CORRELAT17 = \"enableCorsCorrelation\"; // Count: 2\r\nexport var _DYN_CONFIG = \"config\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 3\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_APP_INSIGHTS = \"appInsights\"; // Count: 3\r\nexport var _DYN_DISABLE_IKEY_DEPRECA18 = \"disableIkeyDeprecationMessage\"; // Count: 2\r\nexport var _DYN_GET_TRANSMISSION_CON19 = \"getTransmissionControls\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF20 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, BreezeChannelIdentifier, ConfigurationManager, ConnectionStringParser, ContextTagKeys, CorrelationIdHelper, CtxTagKeys, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Data, DataSanitizer, DateTimeUtils, DisabledPropertyName, DistributedTracingModes, Envelope, Event, Exception, Extensions, HttpMethod, Metric, PageView, PageViewPerformance, ProcessLegacy, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, SampleRate, SeverityLevel, TelemetryItemCreator, Trace, UrlHelper, Util, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, arrForEach, arrIndexOf, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, objForEachKey, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF20, _DYN_APP_INSIGHTS, _DYN_CONFIG, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_DIAGNOSTIC_LOG_INTER4, _DYN_DISABLE_FLUSH_ON_BEF11, _DYN_DISABLE_FLUSH_ON_UNL12, _DYN_DISABLE_IKEY_DEPRECA18, _DYN_ENDPOINT_URL, _DYN_GET_TRANSMISSION_CON19, _DYN_INDEX_OF, _DYN_INSTRUMENTATION_KEY, _DYN_LOAD_APP_INSIGHTS, _DYN_ONUNLOAD_FLUSH, _DYN_PUSH, _DYN_QUEUE, _DYN_UPDATE_SNIPPET_DEFIN0, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* FieldType.Default */,\r\n Required: 1 /* FieldType.Required */,\r\n Array: 2 /* FieldType.Array */,\r\n Hidden: 4 /* FieldType.Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n dynamicProto(Initialization, this, function (_self) {\r\n _initDefaults();\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var config = snippet[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n if (config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = ingest ? (ingest + DEFAULT_BREEZE_PATH) : config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]; // only add /v2/track when from connectionstring\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */] = new AnalyticsPlugin();\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n _self.core = _core;\r\n var isErrMessageDisabled = isNullOrUndefined(config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */]) ? true : config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */];\r\n if (!config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && !isErrMessageDisabled) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"Instrumentation key support will end soon, see aka.ms/IkeyMigrate\");\r\n }\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n _getSKUDefaults();\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n });\r\n };\r\n _self[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */] = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self[_DYN_CONFIG /* @min:%2econfig */].extensions && _self[_DYN_CONFIG /* @min:%2econfig */].extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions[_DYN_PUSH /* @min:%2epush */](_sender);\r\n extensions[_DYN_PUSH /* @min:%2epush */](properties);\r\n extensions[_DYN_PUSH /* @min:%2epush */](dependencies);\r\n extensions[_DYN_PUSH /* @min:%2epush */](_self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */]);\r\n // initialize core\r\n _core.initialize(_self[_DYN_CONFIG /* @min:%2econfig */], extensions, logger, notificationManager);\r\n _self[_DYN_CONTEXT /* @min:%2econtext */] = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n if (_internalSdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */](_this);\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights[_DYN_CONFIG /* @min:%2econfig */].disablePageUnloadEvents;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n if (!appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */]) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n _throwInternal(appInsightsInstance[_DYN_APP_INSIGHTS /* @min:%2eappInsights */].core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_UNL12 /* @min:%2edisableFlushOnUnload */]) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n _core.unload && _core.unload(isAsync, unloadComplete, cbTimeout);\r\n };\r\n proxyFunctions(_self, _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */], [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n function _getSKUDefaults() {\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] =\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] > 0 ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] : 10000;\r\n }\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for Initialization.prototype.getCookieMgr.\r\n// Removed Stub for Initialization.prototype.trackEvent.\r\n// Removed Stub for Initialization.prototype.trackPageView.\r\n// Removed Stub for Initialization.prototype.trackPageViewPerformance.\r\n// Removed Stub for Initialization.prototype.trackException.\r\n// Removed Stub for Initialization.prototype._onerror.\r\n// Removed Stub for Initialization.prototype.trackTrace.\r\n// Removed Stub for Initialization.prototype.trackMetric.\r\n// Removed Stub for Initialization.prototype.startTrackPage.\r\n// Removed Stub for Initialization.prototype.stopTrackPage.\r\n// Removed Stub for Initialization.prototype.startTrackEvent.\r\n// Removed Stub for Initialization.prototype.stopTrackEvent.\r\n// Removed Stub for Initialization.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for Initialization.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for Initialization.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for Initialization.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for Initialization.prototype.flush.\r\n// Removed Stub for Initialization.prototype.onunloadFlush.\r\n// Removed Stub for Initialization.prototype.loadAppInsights.\r\n// Removed Stub for Initialization.prototype.updateSnippetDefinitions.\r\n// Removed Stub for Initialization.prototype.emptyQueue.\r\n// Removed Stub for Initialization.prototype.pollInternalLogs.\r\n// Removed Stub for Initialization.prototype.stopPollingInternalLogs.\r\n// Removed Stub for Initialization.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for Initialization.prototype.getSender.\r\n// Removed Stub for Initialization.prototype.unload.\r\n// Removed Stub for Initialization.prototype.getPlugin.\r\n// Removed Stub for Initialization.prototype.addPlugin.\r\n// Removed Stub for Initialization.prototype.evtNamespace.\r\n// Removed Stub for Initialization.prototype.addUnloadCb.\r\n// Removed Stub for Initialization.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n Initialization.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for Initialization.prototype.getTraceCtx.\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/scripts/\") === -1) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","export const env = {\n\t/** Client ID for authenticating with AAD */\n\taadClientId: import.meta.env.VITE_AAD_CLIENT_ID,\n\t/** Tenant ID for AAD */\n\taadTenantId: import.meta.env.VITE_AAD_TENANT_ID,\n\t/** Application insights instrumentation key */\n\taiInstrumentationKey: import.meta.env.VITE_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY,\n\t/** App display name in the header */\n\tappTitle: import.meta.env.VITE_APP_TITLE,\n\t/** The base url for links that take user from modern frontend to the dotnet frontend */\n\tdotnetFrontendBaseUrl: import.meta.env.VITE_DOTNET_FRONTEND_BASE_URL,\n\t/** Azure Application Gateway for routing and load balancing */\n\thitsApiGatewayUrl: import.meta.env.VITE_HITS_API_GATEWAY_URL,\n\t/** Resource ID for authenticating with AAD */\n\thitsApiResourceId: import.meta.env.VITE_HITS_API_RESOURCE_ID,\n\t/** URL for HITS graphql api server */\n\thitsGraphqlEndpoint: import.meta.env.VITE_HITS_GRAPHQL_ENDPOINT,\n\t/** The HITS REST API endpoint consumed by graphql server.\n\t * @deprecated graphql server will get its target from its own environment\n\t */\n\thitsGraphqlRestTarget: import.meta.env.VITE_HITS_GRAPHQL_REST_TARGET,\n\t/** API endpoint for the web socket service that handles multi-user editing */\n\thitsRealtimeEndpoint: import.meta.env.VITE_HITS_REALTIME_ENDPOINT,\n\t/** Azure function endpoint for Save API */\n\thitsSaveApiBaseUrl: import.meta.env.VITE_HITS_SAVE_API_BASE_URL,\n\t/** For embedded Office file */\n\thitsSharePointApiBaseUrl: import.meta.env.VITE_SHARE_POINT_API_BASE_URL,\n\t/** AppId for Office Customer Voice service, generated during onboarding: https://www.owiki.ms/wiki/OCV/Getting_Started_With_OCV */\n\tocvAppId: parseInt(import.meta.env.VITE_OCV_APP_ID),\n\t/** API endpoint for Office Customer Voice service */\n\tpetroApiBaseUrl: import.meta.env.VITE_PETRO_API_BASE_URL,\n};\n","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\nimport { env } from \"./env\";\n\nexport const appInsights = new ApplicationInsights({\n\tconfig: {\n\t\tinstrumentationKey: env.aiInstrumentationKey,\n\t\tenableCorsCorrelation: true,\n\t\tenableUnhandledPromiseRejectionTracking: true,\n\t},\n});\nappInsights.loadAppInsights();\n\n/**\n * A custom could role is needed because modern frontend currently shares application insight app id with MVC frontend.\n * When modern frontend becomes fully standalone, this can be removed.\n * Ref: https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-map?tabs=javascript#set-or-override-cloud-role-name\n */\nappInsights.addTelemetryInitializer((envelope) => {\n\tif (!envelope.tags) {\n\t\tenvelope.tags = [];\n\t}\n\n\tenvelope.tags[\"ai.cloud.role\"] = \"modern-frontend\";\n});\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\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 */\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 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\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\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\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 __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __rest, __spread };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\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 */\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 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\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\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 __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n DSTS: \"dstsv2\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n NOT_APPLICABLE: \"N/A\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n REGIONAL_AUTH_NON_MSI_QUERY_STRING: \"allowestsrnonmsi=true\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\r\n SHR_NONCE_VALIDITY: 240,\r\n INVALID_INSTANCE: \"invalid_instance\",\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n HeaderNames[\"WWWAuthenticate\"] = \"WWW-Authenticate\";\r\n HeaderNames[\"AuthenticationInfo\"] = \"Authentication-Info\";\r\n HeaderNames[\"X_MS_REQUEST_ID\"] = \"x-ms-request-id\";\r\n HeaderNames[\"X_MS_HTTP_VERSION\"] = \"x-ms-httpver\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT_FILTERS\"] = \"active-account-filters\"; // new cache entry for active_account for a more robust version for browser\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"X_APP_NAME\"] = \"x-app-name\";\r\n AADServerParamKeys[\"X_APP_VER\"] = \"x-app-ver\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n AADServerParamKeys[\"RETURN_SPA_CODE\"] = \"return_spa_code\";\r\n AADServerParamKeys[\"NATIVE_BROKER\"] = \"nativebroker\";\r\n AADServerParamKeys[\"LOGOUT_HINT\"] = \"logout_hint\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\",\r\n NO_SESSION: \"no_session\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CacheSchemaType;\r\n(function (CacheSchemaType) {\r\n CacheSchemaType[\"ACCOUNT\"] = \"Account\";\r\n CacheSchemaType[\"CREDENTIAL\"] = \"Credential\";\r\n CacheSchemaType[\"ID_TOKEN\"] = \"IdToken\";\r\n CacheSchemaType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CacheSchemaType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n CacheSchemaType[\"APP_METADATA\"] = \"AppMetadata\";\r\n CacheSchemaType[\"TEMPORARY\"] = \"TempCache\";\r\n CacheSchemaType[\"TELEMETRY\"] = \"Telemetry\";\r\n CacheSchemaType[\"UNDEFINED\"] = \"Undefined\";\r\n CacheSchemaType[\"THROTTLING\"] = \"Throttling\";\r\n})(CacheSchemaType || (CacheSchemaType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n AuthorityMetadataSource[\"HARDCODED_VALUES\"] = \"hardcoded_values\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"SSH\"] = \"ssh-cert\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\r\nvar JsonTypes;\r\n(function (JsonTypes) {\r\n JsonTypes[\"Jwt\"] = \"JWT\";\r\n JsonTypes[\"Jwk\"] = \"JWK\";\r\n})(JsonTypes || (JsonTypes = {}));\r\nvar ONE_DAY_IN_MS = 86400000;\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheSchemaType, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, JsonTypes, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, ONE_DAY_IN_MS, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n//# sourceMappingURL=Constants.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n _this.subError = suberror || Constants.EMPTY_STRING;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.prototype.setCorrelationId = function (correlationId) {\r\n this.correlationId = correlationId;\r\n };\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n /**\r\n * Creates an error for post request failures.\r\n * @param errDesc\r\n * @returns\r\n */\r\n AuthError.createPostRequestFailed = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.postRequestFailed.code, AuthErrorMessage.postRequestFailed.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n//# sourceMappingURL=AuthError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n removeTokenBindingKey: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - removeTokenBindingKey() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n clearKeystore: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - clearKeystore() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n hashString: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - hashString() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n//# sourceMappingURL=ICrypto.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n authTimeNotFoundError: {\r\n code: \"auth_time_not_found\",\r\n desc: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\r\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\r\n \" See https://aka.ms/msaljs/optional-claims for more information.\"\r\n },\r\n maxAgeTranspiredError: {\r\n code: \"max_age_transpired\",\r\n desc: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: \"binding_key_not_removed\",\r\n desc: \"Could not remove the credential's binding key from storage.\"\r\n },\r\n logoutNotSupported: {\r\n code: \"end_session_endpoint_not_supported\",\r\n desc: \"Provided authority does not support logout.\"\r\n },\r\n keyIdMissing: {\r\n code: \"key_id_missing\",\r\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createAuthTimeNotFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.authTimeNotFoundError.code, ClientAuthErrorMessage.authTimeNotFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when too much time has elapsed since the last end-user authentication\r\n */\r\n ClientAuthError.createMaxAgeTranspiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.maxAgeTranspiredError.code, ClientAuthErrorMessage.maxAgeTranspiredError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n ClientAuthError.createBindingKeyNotRemovedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\r\n };\r\n /**\r\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\r\n */\r\n ClientAuthError.createLogoutNotSupportedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\r\n };\r\n /**\r\n * Create an error when kid attribute is missing from a PoP token's cache record\r\n */\r\n ClientAuthError.createKeyIdMissingError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n//# sourceMappingURL=ClientAuthError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var obj = {};\r\n var params = query.split(\"&\");\r\n var decode = function (s) { return decodeURIComponent(s.replace(/\\+/g, \" \")); };\r\n params.forEach(function (pair) {\r\n if (pair.trim()) {\r\n var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n//# sourceMappingURL=StringUtils.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () {\r\n return;\r\n };\r\n var setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback = setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level = typeof (setLoggerOptions.logLevel) === \"number\" ? setLoggerOptions.logLevel : LogLevel.Info;\r\n this.correlationId = setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n Logger.createDefaultLoggerOptions = function () {\r\n return {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info\r\n };\r\n };\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"10.0.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AzureCloudInstance;\r\n(function (AzureCloudInstance) {\r\n // AzureCloudInstance is not specified.\r\n AzureCloudInstance[AzureCloudInstance[\"None\"] = 0] = \"None\";\r\n // Microsoft Azure public cloud\r\n AzureCloudInstance[\"AzurePublic\"] = \"https://login.microsoftonline.com\";\r\n // Microsoft PPE\r\n AzureCloudInstance[\"AzurePpe\"] = \"https://login.windows-ppe.net\";\r\n // Microsoft Chinese national cloud\r\n AzureCloudInstance[\"AzureChina\"] = \"https://login.chinacloudapi.cn\";\r\n // Microsoft German national cloud (\"Black Forest\")\r\n AzureCloudInstance[\"AzureGermany\"] = \"https://login.microsoftonline.de\";\r\n // US Government cloud\r\n AzureCloudInstance[\"AzureUsGovernment\"] = \"https://login.microsoftonline.us\";\r\n})(AzureCloudInstance || (AzureCloudInstance = {}));\n\nexport { AzureCloudInstance };\n//# sourceMappingURL=AuthorityOptions.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { CredentialType, CacheType, Constants, Separators, AuthenticationScheme } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>-<requestedClaims*>-<scheme*>\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)\r\n * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request\r\n * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Initializes a map with credential {CredentialType} regular expressions.\r\n */\r\n CredentialEntity._initRegex = function () {\r\n var separator = Separators.CACHE_KEY_SEPARATOR;\r\n CredentialEntity.credentialRegexMap = new Map();\r\n for (var _i = 0, _a = Object.keys(CredentialType); _i < _a.length; _i++) {\r\n var credKey = _a[_i];\r\n var credVal = CredentialType[credKey].toLowerCase();\r\n try {\r\n // Verify credential type is preceded by a valid host name (environment) using lookbehind\r\n CredentialEntity.credentialRegexMap.set(CredentialType[credKey], new RegExp(\"(?<=\" + separator + CredentialEntity.credentialDomainRegex + \")\" + separator + credVal + separator));\r\n }\r\n catch (err) {\r\n // Lookbehind is not supported (Safari or older versions of IE) - removing it\r\n CredentialEntity.credentialRegexMap.set(CredentialType[credKey], new RegExp(\"\" + separator + CredentialEntity.credentialDomainRegex + separator + credVal + separator));\r\n }\r\n }\r\n };\r\n /**\r\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: <target>\r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * helper function to return `CredentialType`\r\n * @param key\r\n */\r\n CredentialEntity.getCredentialType = function (key) {\r\n var _a;\r\n for (var _i = 0, _b = Object.keys(CredentialType); _i < _b.length; _i++) {\r\n var credKey = _b[_i];\r\n if ((_a = this.credentialRegexMap.get(CredentialType[credKey])) === null || _a === void 0 ? void 0 : _a.test(key.toLowerCase())) {\r\n return CredentialType[credKey];\r\n }\r\n }\r\n return Constants.NOT_DEFINED;\r\n };\r\n /**\r\n * generates credential key\r\n * <home_account_id*>-\\<environment>-<credential_type>-<client_id>-<realm\\*>-<target\\*>-<scheme\\*>\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n this.generateClaimsHashForCacheKey(requestedClaimsHash),\r\n this.generateSchemeForCacheKey(tokenType)\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || Constants.EMPTY_STRING,\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: <target>\r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate requested claims key component as per schema: <requestedClaims>\r\n */\r\n CredentialEntity.generateClaimsHashForCacheKey = function (requestedClaimsHash) {\r\n return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate scheme key componenet as per schema: <scheme>\r\n */\r\n CredentialEntity.generateSchemeForCacheKey = function (tokenType) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return (tokenType && tokenType.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? tokenType.toLowerCase() : Constants.EMPTY_STRING;\r\n };\r\n // Match host names like \"login.microsoftonline.com\", \"https://accounts.google.com:4000\", https://localhost:5000, etc.\r\n CredentialEntity.credentialDomainRegex = \"(https?:\\\\/\\\\/)?((([\\\\w-]+\\\\.)*([\\\\w-]{1,63})(\\\\.(\\\\w{2,63})))|(localhost))(\\\\:[0-9]{4,5})?\";\r\n return CredentialEntity;\r\n}());\r\nCredentialEntity._initRegex();\n\nexport { CredentialEntity };\n//# sourceMappingURL=CredentialEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n },\r\n invalidAzureCloudInstance: {\r\n code: \"invalid_azure_cloud_instance\",\r\n desc: \"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values\"\r\n },\r\n missingSshJwk: {\r\n code: \"missing_ssh_jwk\",\r\n desc: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\"\r\n },\r\n missingSshKid: {\r\n code: \"missing_ssh_kid\",\r\n desc: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\"\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: \"missing_nonce_authentication_header\",\r\n desc: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\"\r\n },\r\n invalidAuthenticationHeader: {\r\n code: \"invalid_authentication_header\",\r\n desc: \"Invalid authentication header provided\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n /**\r\n * Throws error when the AzureCloudInstance is set to an invalid value\r\n */\r\n ClientConfigurationError.createInvalidAzureCloudInstanceError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAzureCloudInstance.code, ClientConfigurationErrorMessage.invalidAzureCloudInstance.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshJwkError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshJwk.code, ClientConfigurationErrorMessage.missingSshJwk.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key ID is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshKidError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshKid.code, ClientConfigurationErrorMessage.missingSshKid.desc);\r\n };\r\n /**\r\n * Throws error when provided headers don't contain a header that a server nonce can be extracted from\r\n */\r\n ClientConfigurationError.createMissingNonceAuthenticationHeadersError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.code, ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.desc);\r\n };\r\n /**\r\n * Throws error when a provided header is invalid in any way\r\n */\r\n ClientConfigurationError.createInvalidAuthenticationHeaderError = function (invalidHeaderName, details) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthenticationHeader.code, ClientConfigurationErrorMessage.invalidAuthenticationHeader.desc + \". Invalid header: \" + invalidHeaderName + \". Details: \" + details);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n//# sourceMappingURL=ClientConfigurationError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { OIDC_SCOPES, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array<string>} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n//# sourceMappingURL=ScopeSet.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Separators, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e.message);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n//# sourceMappingURL=ClientInfo.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n AuthorityType[AuthorityType[\"Dsts\"] = 2] = \"Dsts\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n//# sourceMappingURL=AuthorityType.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: <home_account_id>-<environment>-<realm*>\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * nativeAccountId: Account identifier on the native device\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims,\r\n nativeAccountId: this.nativeAccountId\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || Constants.EMPTY_STRING,\r\n accountInterface.tenantId || Constants.EMPTY_STRING,\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment, nativeAccountId) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n account.nativeAccountId = nativeAccountId;\r\n var env = environment || (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || Constants.EMPTY_STRING;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || Constants.EMPTY_STRING;\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\r\n * In most cases it will contain a single email. This field should not be relied upon if a custom\r\n * policy is configured to return more than 1 email.\r\n */\r\n var preferredUsername = (_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username;\r\n var email = ((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : null;\r\n account.username = preferredUsername || email || Constants.EMPTY_STRING;\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority &&\r\n authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = Constants.EMPTY_STRING;\r\n var env = environment || authority && authority.getPreferredCache();\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || Constants.EMPTY_STRING;\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || Constants.EMPTY_STRING;\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || Constants.EMPTY_STRING;\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs || authType === AuthorityType.Dsts) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n//# sourceMappingURL=AccountEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n /**\r\n * Determine if the token's max_age has transpired\r\n */\r\n AuthToken.checkMaxAge = function (authTime, maxAge) {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n var fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\r\n throw ClientAuthError.createMaxAgeTranspiredError();\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n//# sourceMappingURL=AuthToken.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator, __extends } from '../_virtual/_tslib.js';\nimport { Constants, CredentialType, AuthenticationScheme, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';\nimport { CredentialEntity } from './entities/CredentialEntity.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var currentAccounts = this.getAccountsFilteredBy();\r\n var accountValues = Object.keys(currentAccounts).map(function (accountKey) { return currentAccounts[accountKey]; });\r\n var numAccounts = accountValues.length;\r\n if (numAccounts < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountValues.map(function (value) {\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), value);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = _this.readIdTokenFromCache(_this.clientId, accountInfo);\r\n if (idToken && !accountInfo.idTokenClaims) {\r\n accountInfo.idToken = idToken.secret;\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, _this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!!cacheRecord.accessToken) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.saveAccessToken(cacheRecord.accessToken)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var currentTokenCache, currentScopes, currentAccessTokens, removedAccessTokens_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n currentTokenCache = this.getCredentialsFilteredBy({\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash\r\n });\r\n currentScopes = ScopeSet.fromString(credential.target);\r\n currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });\r\n if (!currentAccessTokens) return [3 /*break*/, 2];\r\n removedAccessTokens_1 = [];\r\n currentAccessTokens.forEach(function (tokenEntity) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens_1.push(_this.removeCredential(tokenEntity));\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens_1)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n this.setAccessTokenCredential(credential);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : Constants.EMPTY_STRING, accountFilter ? accountFilter.environment : Constants.EMPTY_STRING, accountFilter ? accountFilter.realm : Constants.EMPTY_STRING, accountFilter ? accountFilter.nativeAccountId : Constants.EMPTY_STRING);\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredByInternal = function (homeAccountId, environment, realm, nativeAccountId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAccounts = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n if (!!nativeAccountId && !_this.matchNativeAccountId(entity, nativeAccountId)) {\r\n return;\r\n }\r\n matchingAccounts[cacheKey] = entity;\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * retrieve credentails matching all provided filters; if no filter is set, get all credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredBy = function (filter) {\r\n return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.userAssertionHash, filter.tokenType, filter.keyId, filter.requestedClaimsHash);\r\n };\r\n /**\r\n * Support function to help match credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n * @param userAssertionHash\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, userAssertionHash, tokenType, keyId, requestedClaimsHash) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingCredentials = {\r\n idTokens: {},\r\n accessTokens: {},\r\n refreshTokens: {},\r\n };\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!userAssertionHash && !_this.matchUserAssertionHash(entity, userAssertionHash)) {\r\n return;\r\n }\r\n /*\r\n * homeAccountId can undefined, and we want to filter out cached items that have a homeAccountId of \"\"\r\n * because we don't want a client_credential request to return a cached token that has a homeAccountId\r\n */\r\n if ((typeof homeAccountId === \"string\") && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n if (!!credentialType && !_this.matchCredentialType(entity, credentialType)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n if (!!familyId && !_this.matchFamilyId(entity, familyId)) {\r\n return;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!target && !_this.matchTarget(entity, target)) {\r\n return;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== requestedClaimsHash) {\r\n return;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!tokenType && !_this.matchTokenType(entity, tokenType)) {\r\n return;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (tokenType === AuthenticationScheme.SSH) {\r\n if (keyId && !_this.matchKeyId(entity, keyId)) {\r\n return;\r\n }\r\n }\r\n }\r\n // At this point, the entity matches the request, update cache key if key schema has changed\r\n var updatedCacheKey = _this.updateCredentialCacheKey(cacheKey, entity);\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN:\r\n matchingCredentials.idTokens[updatedCacheKey] = entity;\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n matchingCredentials.accessTokens[updatedCacheKey] = entity;\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n matchingCredentials.refreshTokens[updatedCacheKey] = entity;\r\n break;\r\n }\r\n });\r\n return matchingCredentials;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allCacheKeys, removedAccounts;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allCacheKeys = this.getKeys();\r\n removedAccounts = [];\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n removedAccounts.push(_this.removeAccount(cacheKey));\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccounts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return [4 /*yield*/, this.removeAccountContext(account)];\r\n case 1: return [2 /*return*/, ((_a.sent()) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT))];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes credentials associated with the provided account\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allCacheKeys, accountId, removedCredentials;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allCacheKeys = this.getKeys();\r\n accountId = account.generateAccountId();\r\n removedCredentials = [];\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n var cacheEntity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\r\n removedCredentials.push(_this.removeCredential(cacheEntity));\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedCredentials)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeCredential = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var key, accessTokenWithAuthSchemeEntity, kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n key = credential.generateCredentialKey();\r\n if (!(credential.credentialType.toLowerCase() === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())) return [3 /*break*/, 4];\r\n if (!(credential.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n accessTokenWithAuthSchemeEntity = credential;\r\n kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (!kid) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.cryptoImpl.removeTokenBindingKey(kid)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n throw ClientAuthError.createBindingKeyNotRemovedError();\r\n case 4: return [2 /*return*/, this.removeItem(key, CacheSchemaType.CREDENTIAL)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, clientId, request, environment) {\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.readIdTokenFromCache(clientId, account);\r\n var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, request);\r\n var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param nativeAccountId\r\n * @returns AccountEntity or Null\r\n */\r\n CacheManager.prototype.readAccountFromCacheWithNativeAccountId = function (nativeAccountId) {\r\n // fetch account from memory\r\n var accountFilter = {\r\n nativeAccountId: nativeAccountId\r\n };\r\n var accountCache = this.getAccountsFilteredBy(accountFilter);\r\n var accounts = Object.keys(accountCache).map(function (key) { return accountCache[key]; });\r\n if (accounts.length < 1) {\r\n return null;\r\n }\r\n else if (accounts.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingAccountsInCacheError();\r\n }\r\n return accountCache[0];\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.readIdTokenFromCache = function (clientId, account) {\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(idTokenFilter);\r\n var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return idTokens[0];\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, request) {\r\n var scopes = new ScopeSet(request.scopes || []);\r\n var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n target: scopes.printScopesLowerCase(),\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.readRefreshTokenFromCache = function (clientId, account, familyRT) {\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: clientId,\r\n familyId: id,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\r\n var refreshTokens = Object.keys(credentialCache.refreshTokens).map(function (key) { return credentialCache.refreshTokens[key]; });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment, clientId) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment, clientId) {\r\n var appMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!((typeof entity.homeAccountId === \"string\") && (homeAccountId === entity.homeAccountId));\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchUserAssertionHash = function (entity, userAssertionHash) {\r\n return !!(entity.userAssertionHash && userAssertionHash === entity.userAssertionHash);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * helper to match nativeAccountId\r\n * @param entity\r\n * @param nativeAccountId\r\n * @returns boolean indicating the match result\r\n */\r\n CacheManager.prototype.matchNativeAccountId = function (entity, nativeAccountId) {\r\n return !!(entity.nativeAccountId && nativeAccountId === entity.nativeAccountId);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n var requestTargetScopeSet = ScopeSet.fromString(target);\r\n if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\r\n requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\r\n }\r\n else {\r\n requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return entityScopeSet.containsScopeSet(requestTargetScopeSet);\r\n };\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchTokenType = function (entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n };\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchKeyId = function (entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\r\n * @param key\r\n * @param credType\r\n */\r\n CacheManager.prototype.getSpecificCredential = function (key, credType) {\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN: {\r\n return this.getIdTokenCredential(key);\r\n }\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\r\n return this.getAccessTokenCredential(key);\r\n }\r\n case CredentialType.REFRESH_TOKEN: {\r\n return this.getRefreshTokenCredential(key);\r\n }\r\n default:\r\n return null;\r\n }\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n };\r\n DefaultStorageClass.prototype.updateCredentialCacheKey = function () {\r\n var notImplErr = \"Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n//# sourceMappingURL=CacheManager.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { AzureCloudInstance } from '../authority/AuthorityOptions.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined\r\n};\r\nvar DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\" + Constants.DEFAULT_COMMON_TENANT\r\n};\r\nvar DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\"\r\n }\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: loggerOptions,\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), telemetry),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null,\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [], azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS, skipAuthorityMetadataCache: false }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n//# sourceMappingURL=ClientConfiguration.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ThrottlingConstants, CacheSchemaType, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, request, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n//# sourceMappingURL=ThrottlingUtils.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n//# sourceMappingURL=NetworkManager.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n//# sourceMappingURL=CcsCredential.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary, duplicate, and empty string query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n // remove empty string parameters\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n return Object.fromEntries(Object.entries(eQParams).filter(function (_a) {\r\n var value = _a[1];\r\n return value !== \"\";\r\n }));\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n//# sourceMappingURL=RequestValidator.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_type = token id_token\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + \" \" + Constants.ID_TOKEN_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * Add flag to indicate STS should attempt to use WAM if available\r\n */\r\n RequestParameterBuilder.prototype.addNativeBroker = function () {\r\n this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent(\"1\"));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n };\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {\r\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {\r\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\r\n }\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n if (!StringUtils.isEmpty(clientAssertion)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n if (!StringUtils.isEmpty(clientAssertionType)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQParams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQParams) {\r\n var _this = this;\r\n var sanitizedEQParams = RequestValidator.sanitizeEQParams(eQParams, this.parameters);\r\n Object.keys(sanitizedEQParams).forEach(function (key) {\r\n _this.parameters.set(key, eQParams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {\r\n if (!StringUtils.isEmpty(sshJwkString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {\r\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n//# sourceMappingURL=RequestParameterBuilder.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration, performanceClient) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n // set performance telemetry client\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n BaseClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n//# sourceMappingURL=BaseClient.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n//# sourceMappingURL=IdTokenEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n//# sourceMappingURL=TimeUtils.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {\r\n var _a, _b;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.userAssertionHash = userAssertionHash;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (((_a = atEntity.tokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_b = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _b === void 0 ? void 0 : _b.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n//# sourceMappingURL=AccessTokenEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, userAssertionHash) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.userAssertionHash = userAssertionHash;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n//# sourceMappingURL=RefreshTokenEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nvar InteractionRequiredServerErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Interaction required errors defined by the SDK\r\n */\r\nvar InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No refresh token found in the cache. Please sign-in.\"\r\n },\r\n native_account_unavailable: {\r\n code: \"native_account_unavailable\",\r\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n _this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n _this.traceId = traceId || Constants.EMPTY_STRING;\r\n _this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n _this.claims = claims || Constants.EMPTY_STRING;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n InteractionRequiredAuthError.createNoTokensFoundError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\r\n * @returns\r\n */\r\n InteractionRequiredAuthError.createNativeAccountUnavailableError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(AuthError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage };\n//# sourceMappingURL=InteractionRequiredAuthError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n//# sourceMappingURL=CacheRecord.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n//# sourceMappingURL=ProtocolUtils.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Parses query string from given string. Returns empty string if no query symbol is found.\r\n * @param queryString\r\n */\r\n UrlString.parseQueryString = function (queryString) {\r\n var queryIndex1 = queryString.indexOf(\"?\");\r\n var queryIndex2 = queryString.indexOf(\"/?\");\r\n if (queryIndex2 > -1) {\r\n return queryString.substring(queryIndex2 + 2);\r\n }\r\n else if (queryIndex1 > -1) {\r\n return queryString.substring(queryIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Returns URL query string as server auth code response object.\r\n */\r\n UrlString.getDeserializedQueryString = function (query) {\r\n // Check if given query is empty\r\n if (StringUtils.isEmpty(query)) {\r\n return {};\r\n }\r\n // Strip the ? symbol if present\r\n var parsedQueryString = UrlString.parseQueryString(query);\r\n // If ? symbol was not present, above will return empty string, so give original query value\r\n var deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);\r\n // Check if deserialization didn't work\r\n if (!deserializedQueryString) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));\r\n }\r\n return deserializedQueryString;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n//# sourceMappingURL=UrlString.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEvents;\r\n(function (PerformanceEvents) {\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByCode\"] = \"acquireTokenByCode\";\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshToken\"] = \"acquireTokenByRefreshToken\";\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n PerformanceEvents[\"AcquireTokenSilent\"] = \"acquireTokenSilent\";\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n PerformanceEvents[\"AcquireTokenSilentAsync\"] = \"acquireTokenSilentAsync\";\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n PerformanceEvents[\"AcquireTokenPopup\"] = \"acquireTokenPopup\";\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n PerformanceEvents[\"CryptoOptsGetPublicKeyThumbprint\"] = \"cryptoOptsGetPublicKeyThumbprint\";\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n PerformanceEvents[\"CryptoOptsSignJwt\"] = \"cryptoOptsSignJwt\";\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n PerformanceEvents[\"SilentCacheClientAcquireToken\"] = \"silentCacheClientAcquireToken\";\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n PerformanceEvents[\"SilentIframeClientAcquireToken\"] = \"silentIframeClientAcquireToken\";\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n PerformanceEvents[\"SilentRefreshClientAcquireToken\"] = \"silentRefreshClientAcquireToken\";\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n PerformanceEvents[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n PerformanceEvents[\"StandardInteractionClientGetDiscoveredAuthority\"] = \"standardInteractionClientGetDiscoveredAuthority\";\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n PerformanceEvents[\"FetchAccountIdWithNativeBroker\"] = \"fetchAccountIdWithNativeBroker\";\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n PerformanceEvents[\"NativeInteractionClientAcquireToken\"] = \"nativeInteractionClientAcquireToken\";\r\n /**\r\n * Time spent creating default headers for requests to token endpoint\r\n */\r\n PerformanceEvents[\"BaseClientCreateTokenRequestHeaders\"] = \"baseClientCreateTokenRequestHeaders\";\r\n /**\r\n * Used to measure the time taken for completing embedded-broker handshake (PW-Broker).\r\n */\r\n PerformanceEvents[\"BrokerHandhshake\"] = \"brokerHandshake\";\r\n /**\r\n * acquireTokenByRefreshToken API in BrokerClientApplication (PW-Broker) .\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshTokenInBroker\"] = \"acquireTokenByRefreshTokenInBroker\";\r\n /**\r\n * Time taken for token acquisition by broker\r\n */\r\n PerformanceEvents[\"AcquireTokenByBroker\"] = \"acquireTokenByBroker\";\r\n /**\r\n * Time spent on the network for refresh token acquisition\r\n */\r\n PerformanceEvents[\"RefreshTokenClientExecuteTokenRequest\"] = \"refreshTokenClientExecuteTokenRequest\";\r\n /**\r\n * Time taken for acquiring refresh token , records RT size\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireToken\"] = \"refreshTokenClientAcquireToken\";\r\n /**\r\n * Time taken for acquiring cached refresh token\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenWithCachedRefreshToken\"] = \"refreshTokenClientAcquireTokenWithCachedRefreshToken\";\r\n /**\r\n * acquireTokenByRefreshToken API in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenByRefreshToken\"] = \"refreshTokenClientAcquireTokenByRefreshToken\";\r\n /**\r\n * Helper function to create token request body in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientCreateTokenRequestBody\"] = \"refreshTokenClientCreateTokenRequestBody\";\r\n /**\r\n * acquireTokenFromCache (msal-browser).\r\n * Internal API for acquiring token from cache\r\n */\r\n PerformanceEvents[\"AcquireTokenFromCache\"] = \"acquireTokenFromCache\";\r\n /**\r\n * acquireTokenBySilentIframe (msal-browser).\r\n * Internal API for acquiring token by silent Iframe\r\n */\r\n PerformanceEvents[\"AcquireTokenBySilentIframe\"] = \"acquireTokenBySilentIframe\";\r\n /**\r\n * Internal API for initializing base request in BaseInteractionClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeBaseRequest\"] = \"initializeBaseRequest\";\r\n /**\r\n * Internal API for initializing silent request in SilentCacheClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeSilentRequest\"] = \"initializeSilentRequest\";\r\n /**\r\n * Helper function in SilentIframeClient class (msal-browser).\r\n */\r\n PerformanceEvents[\"SilentIframeClientTokenHelper\"] = \"silentIframeClientTokenHelper\";\r\n /**\r\n * SilentHandler\r\n */\r\n PerformanceEvents[\"SilentHandlerInitiateAuthRequest\"] = \"silentHandlerInitiateAuthRequest\";\r\n PerformanceEvents[\"SilentHandlerMonitorIframeForHash\"] = \"silentHandlerMonitorIframeForHash\";\r\n PerformanceEvents[\"SilentHandlerLoadFrame\"] = \"silentHandlerLoadFrame\";\r\n /**\r\n * Helper functions in StandardInteractionClient class (msal-browser)\r\n */\r\n PerformanceEvents[\"StandardInteractionClientCreateAuthCodeClient\"] = \"standardInteractionClientCreateAuthCodeClient\";\r\n PerformanceEvents[\"StandardInteractionClientGetClientConfiguration\"] = \"standardInteractionClientGetClientConfiguration\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationRequest\"] = \"standardInteractionClientInitializeAuthorizationRequest\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationCodeRequest\"] = \"standardInteractionClientInitializeAuthorizationCodeRequest\";\r\n /**\r\n * getAuthCodeUrl API (msal-browser and msal-node).\r\n */\r\n PerformanceEvents[\"GetAuthCodeUrl\"] = \"getAuthCodeUrl\";\r\n /**\r\n * Functions from InteractionHandler (msal-browser)\r\n */\r\n PerformanceEvents[\"HandleCodeResponseFromServer\"] = \"handleCodeResponseFromServer\";\r\n PerformanceEvents[\"HandleCodeResponseFromHash\"] = \"handleCodeResponseFromHash\";\r\n PerformanceEvents[\"UpdateTokenEndpointAuthority\"] = \"updateTokenEndpointAuthority\";\r\n /**\r\n * APIs in Authorization Code Client (msal-common)\r\n */\r\n PerformanceEvents[\"AuthClientAcquireToken\"] = \"authClientAcquireToken\";\r\n PerformanceEvents[\"AuthClientExecuteTokenRequest\"] = \"authClientExecuteTokenRequest\";\r\n PerformanceEvents[\"AuthClientCreateTokenRequestBody\"] = \"authClientCreateTokenRequestBody\";\r\n PerformanceEvents[\"AuthClientCreateQueryString\"] = \"authClientCreateQueryString\";\r\n /**\r\n * Generate functions in PopTokenGenerator (msal-common)\r\n */\r\n PerformanceEvents[\"PopTokenGenerateCnf\"] = \"popTokenGenerateCnf\";\r\n PerformanceEvents[\"PopTokenGenerateKid\"] = \"popTokenGenerateKid\";\r\n /**\r\n * handleServerTokenResponse API in ResponseHandler (msal-common)\r\n */\r\n PerformanceEvents[\"HandleServerTokenResponse\"] = \"handleServerTokenResponse\";\r\n /**\r\n * Authority functions\r\n */\r\n PerformanceEvents[\"AuthorityFactoryCreateDiscoveredInstance\"] = \"authorityFactoryCreateDiscoveredInstance\";\r\n PerformanceEvents[\"AuthorityResolveEndpointsAsync\"] = \"authorityResolveEndpointsAsync\";\r\n PerformanceEvents[\"AuthorityGetCloudDiscoveryMetadataFromNetwork\"] = \"authorityGetCloudDiscoveryMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateCloudDiscoveryMetadata\"] = \"authorityUpdateCloudDiscoveryMetadata\";\r\n PerformanceEvents[\"AuthorityGetEndpointMetadataFromNetwork\"] = \"authorityGetEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateEndpointMetadata\"] = \"authorityUpdateEndpointMetadata\";\r\n PerformanceEvents[\"AuthorityUpdateMetadataWithRegionalInformation\"] = \"authorityUpdateMetadataWithRegionalInformation\";\r\n /**\r\n * Region Discovery functions\r\n */\r\n PerformanceEvents[\"RegionDiscoveryDetectRegion\"] = \"regionDiscoveryDetectRegion\";\r\n PerformanceEvents[\"RegionDiscoveryGetRegionFromIMDS\"] = \"regionDiscoveryGetRegionFromIMDS\";\r\n PerformanceEvents[\"RegionDiscoveryGetCurrentVersion\"] = \"regionDiscoveryGetCurrentVersion\";\r\n PerformanceEvents[\"AcquireTokenByCodeAsync\"] = \"acquireTokenByCodeAsync\";\r\n PerformanceEvents[\"GetEndpointMetadataFromNetwork\"] = \"getEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"GetCloudDiscoveryMetadataFromNetworkMeasurement\"] = \"getCloudDiscoveryMetadataFromNetworkMeasurement\";\r\n PerformanceEvents[\"HandleRedirectPromiseMeasurement\"] = \"handleRedirectPromiseMeasurement\";\r\n PerformanceEvents[\"UpdateCloudDiscoveryMetadataMeasurement\"] = \"updateCloudDiscoveryMetadataMeasurement\";\r\n PerformanceEvents[\"UsernamePasswordClientAcquireToken\"] = \"usernamePasswordClientAcquireToken\";\r\n})(PerformanceEvents || (PerformanceEvents = {}));\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEventStatus;\r\n(function (PerformanceEventStatus) {\r\n PerformanceEventStatus[PerformanceEventStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"Completed\"] = 2] = \"Completed\";\r\n})(PerformanceEventStatus || (PerformanceEventStatus = {}));\r\nvar IntFields = new Set([\r\n \"accessTokenSize\",\r\n \"durationMs\",\r\n \"idTokenSize\",\r\n \"matsSilentStatus\",\r\n \"matsHttpStatus\",\r\n \"refreshTokenSize\",\r\n \"queuedTimeMs\",\r\n \"startTimeMs\",\r\n \"status\",\r\n]);\n\nexport { IntFields, PerformanceEventStatus, PerformanceEvents };\n//# sourceMappingURL=PerformanceEvent.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils, performanceClient) {\r\n this.cryptoUtils = cryptoUtils;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters\r\n * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqCnf, reqCnfString, _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.generateKid(request)];\r\n case 1:\r\n reqCnf = _d.sent();\r\n reqCnfString = this.cryptoUtils.base64Encode(JSON.stringify(reqCnf));\r\n _c = {\r\n kid: reqCnf.kid,\r\n reqCnfString: reqCnfString\r\n };\r\n return [4 /*yield*/, this.cryptoUtils.hashString(reqCnfString)];\r\n case 2: return [2 /*return*/, (_c.reqCnfHash = _d.sent(),\r\n _c)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates key_id for a SHR token request\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateKid = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _b.sent();\r\n return [2 /*return*/, {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the POP access_token with the local generated key-pair\r\n * @param accessToken\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, keyId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.signPayload(accessToken, keyId, request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Utility function to generate the signed JWT for an access_token\r\n * @param payload\r\n * @param kid\r\n * @param request\r\n * @param claims\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPayload = function (payload, keyId, request, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims, shrNonce = request.shrNonce;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n return [4 /*yield*/, this.cryptoUtils.signJwt(__assign({ at: payload, ts: TimeUtils.nowSeconds(), m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(), u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort, nonce: shrNonce || this.cryptoUtils.createNewGuid(), p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath, q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined, client_claims: shrClaims || undefined }, claims), keyId, request.correlationId)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n//# sourceMappingURL=PopTokenGenerator.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata-<environment>-<client_id>\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata-<environment>-<client_id>\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n//# sourceMappingURL=AppMetadataEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n//# sourceMappingURL=TokenCacheContext.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin, performanceClient) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror, serverResponseHash.timestamp || Constants.EMPTY_STRING, serverResponseHash.trace_id || Constants.EMPTY_STRING, serverResponseHash.correlation_id || Constants.EMPTY_STRING, serverResponseHash.claims || Constants.EMPTY_STRING);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || Constants.EMPTY_STRING, serverResponse.trace_id || Constants.EMPTY_STRING, serverResponse.correlation_id || Constants.EMPTY_STRING, serverResponse.claims || Constants.EMPTY_STRING);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, userAssertionHash, handlingRefreshTokenResponse, forceCacheRefreshTokenResponse, serverRequestId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.HandleServerTokenResponse, serverTokenResponse.correlation_id);\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id = serverTokenResponse.key_id || request.sshKid || undefined;\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, , 5, 8]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal, unless explicitly flagged by\r\n * the developer, as in the case of refresh token flow used in ADAL Node to MSAL Node migration.\r\n */\r\n if (handlingRefreshTokenResponse && !forceCacheRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, undefined, serverRequestId)];\r\n }\r\n }\r\n return [4 /*yield*/, this.cacheStorage.saveCacheRecord(cacheRecord)];\r\n case 4:\r\n _b.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 7];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 6:\r\n _b.sent();\r\n _b.label = 7;\r\n case 7: return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, serverTokenResponse.spa_code, serverRequestId)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, userAssertionHash, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, userAssertionHash);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : Constants.EMPTY_STRING;\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : Constants.EMPTY_STRING;\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState, code, requestId) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, _d, secret, keyId, uid, tid;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n accessToken = Constants.EMPTY_STRING;\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n _d = cacheRecord.accessToken, secret = _d.secret, keyId = _d.keyId;\r\n if (!keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(secret, keyId, request)];\r\n case 1:\r\n accessToken = _e.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _e.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _e.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId,\r\n requestId: requestId || Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: code,\r\n fromNativeBroker: false,\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n//# sourceMappingURL=ResponseHandler.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { Separators, AADServerParamKeys, AuthenticationScheme, GrantType, PromptValue, HeaderNames } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfo, buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from '../request/RequestValidator.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration, performanceClient) {\r\n var _this = _super.call(this, configuration, performanceClient) || this;\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n _this.includeRedirectUri = true;\r\n return _this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.GetAuthCodeUrl, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeUrlQueryString(request)];\r\n case 1:\r\n queryString = _c.sent();\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, requestId, httpVerAuthority, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n if (!request || !request.code) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(\"AuthCodeClientAcquireToken\", request.correlationId);\r\n this.logger.info(\"in acquireToken call in auth-code client\");\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _g.sent();\r\n requestId = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_REQUEST_ID];\r\n httpVerAuthority = (_e = response.headers) === null || _e === void 0 ? void 0 : _e[HeaderNames.X_MS_HTTP_VERSION];\r\n if (httpVerAuthority) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerAuthority: httpVerAuthority\r\n });\r\n }\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin, this.performanceClient);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload, undefined, undefined, undefined, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching token in ACC\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryParametersString, endpoint, requestBody, ccsCredential, clientInfo, headers, thumbprint;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _c.sent();\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, correlationId, ccsCred, clientInfo, clientInfo;\r\n var _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode && (!request.tokenBodyParameters || !request.tokenBodyParameters[AADServerParamKeys.RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters((_c = {},\r\n _c[AADServerParamKeys.RETURN_SPA_CODE] = \"1\",\r\n _c));\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, requestScopes, correlationId, accountSid, accountLoginHintClaim, clientInfo, clientInfo, clientInfo, popTokenGenerator, reqCnfData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for login_hint claim (in request) -> sid -> loginHint (upn/email) -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n accountSid = this.extractAccountSid(request.account);\r\n accountLoginHintClaim = this.extractLoginHint(request.account);\r\n // If login_hint claim is present, use it over sid/username\r\n if (accountLoginHintClaim) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: login_hint claim present on account\");\r\n parameterBuilder.addLoginHint(accountLoginHintClaim);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (accountSid && request.prompt === PromptValue.NONE) {\r\n /*\r\n * If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n * SessionId is only used in silent calls\r\n */\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n if (!request.nativeBroker) return [3 /*break*/, 2];\r\n // signal ests that this is a WAM call\r\n parameterBuilder.addNativeBroker();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _b.sent();\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfHash);\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.sid) || null;\r\n };\r\n AuthorizationCodeClient.prototype.extractLoginHint = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.login_hint) || null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n//# sourceMappingURL=AuthorizationCodeClient.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, HeaderNames, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '../error/InteractionRequiredAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, httpVerToken, requestId, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _h.sent();\r\n httpVerToken = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_HTTP_VERSION];\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n refreshTokenSize: ((_e = response.body.refresh_token) === null || _e === void 0 ? void 0 : _e.length) || 0,\r\n });\r\n if (httpVerToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerToken: httpVerToken,\r\n });\r\n }\r\n requestId = (_f = response.headers) === null || _f === void 0 ? void 0 : _f[HeaderNames.X_MS_REQUEST_ID];\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n (_g = this.performanceClient) === null || _g === void 0 ? void 0 : _g.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_e) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_d) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\r\n refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\r\n if (!refreshToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.discardMeasurement();\r\n throw InteractionRequiredAuthError.createNoTokensFoundError();\r\n }\r\n // attach cached RT size to the current measurement\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, queryParametersString, endpoint, requestBody, headers, thumbprint;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _d.sent();\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\r\n .then(function (result) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, acquireTokenMeasurement, parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, clientInfo;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n correlationId = request.correlationId;\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n//# sourceMappingURL=RefreshTokenClient.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var environment, cacheRecord;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n environment = request.authority || this.authority.getPreferredCache();\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, request, environment);\r\n if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within \" + this.config.systemOptions.tokenRenewalOffsetSeconds + \" seconds.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _e.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n//# sourceMappingURL=SilentFlowClient.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\") &&\r\n response.hasOwnProperty(\"jwks_uri\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n//# sourceMappingURL=OpenIdConfigResponse.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar rawMetdataJSON = { \"endpointMetadata\": { \"https://login.microsoftonline.com/common/\": { \"token_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/common/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/common/\": { \"token_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/consumers/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/organizations/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" } }, \"instanceDiscoveryMetadata\": { \"https://login.microsoftonline.com/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/common/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] } } };\r\nvar EndpointMetadata = rawMetdataJSON.endpointMetadata;\r\nvar InstanceDiscoveryMetadata = rawMetdataJSON.instanceDiscoveryMetadata;\n\nexport { EndpointMetadata, InstanceDiscoveryMetadata, rawMetdataJSON };\n//# sourceMappingURL=AuthorityMetadata.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n//# sourceMappingURL=ProtocolMode.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n this.jwks_uri = metadata.jwks_uri;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\") &&\r\n entity.hasOwnProperty(\"jwks_uri\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n//# sourceMappingURL=AuthorityMetadataEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryResponse.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryErrorResponse(response) {\r\n return (response.hasOwnProperty(\"error\") &&\r\n response.hasOwnProperty(\"error_description\"));\r\n}\n\nexport { isCloudInstanceDiscoveryErrorResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryErrorResponse.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface, performanceClient, correlationId) {\r\n this.networkInterface = networkInterface;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise<string | null>\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n options = RegionDiscovery.IMDS_OPTIONS;\r\n _e.label = 1;\r\n case 1:\r\n _e.trys.push([1, 6, , 7]);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];\r\n case 2:\r\n localIMDSVersionResponse = _e.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n return [4 /*yield*/, this.getCurrentVersion(options)];\r\n case 3:\r\n currentIMDSVersion = _e.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];\r\n case 4:\r\n currentIMDSVersionResponse = _e.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _e.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _e.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _e.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise<NetworkResponse<string>>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_b) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", options, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise<string | null>\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function (options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", options)];\r\n case 2:\r\n response = _b.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n//# sourceMappingURL=RegionDiscovery.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { EndpointMetadata, InstanceDiscoveryMetadata } from './AuthorityMetadata.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { AzureCloudInstance } from './AuthorityOptions.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { isCloudInstanceDiscoveryErrorResponse } from './CloudInstanceDiscoveryErrorResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface, this.performanceClient, this.correlationId);\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length) {\r\n switch (pathSegments[0].toLowerCase()) {\r\n case Constants.ADFS:\r\n return AuthorityType.Adfs;\r\n case Constants.DSTS:\r\n return AuthorityType.Dsts;\r\n }\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw ClientAuthError.createLogoutNotSupportedError();\r\n }\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"jwksUri\", {\r\n /**\r\n * Jwks_uri for token signing keys\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.jwks_uri);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs ||\r\n this.authorityType === AuthorityType.Dsts ||\r\n this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityResolveEndpointsAsync, this.correlationId);\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _d.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _d.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, harcodedMetadata;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n harcodedMetadata = this.getEndpointMetadataFromHardcodedValues();\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _g.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.azureRegion)) return [3 /*break*/, 3];\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(metadata)];\r\n case 2:\r\n metadata = _g.sent();\r\n _g.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4:\r\n if (!(harcodedMetadata && !this.authorityOptions.skipAuthorityMetadataCache)) return [3 /*break*/, 7];\r\n if (!((_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion)) return [3 /*break*/, 6];\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(harcodedMetadata)];\r\n case 5:\r\n harcodedMetadata = _g.sent();\r\n _g.label = 6;\r\n case 6:\r\n metadataEntity.updateEndpointMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n case 7: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached\r\n * authority metadata can be used for the requested authority. Protects against same domain different\r\n * authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var options, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n options = {};\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.\r\n sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get OAuth endpoints for common authorities.\r\n */\r\n Authority.prototype.getEndpointMetadataFromHardcodedValues = function () {\r\n if (this.canonicalAuthority in EndpointMetadata) {\r\n return EndpointMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Update the retrieved metadata with regional information.\r\n */\r\n Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, azureRegion;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.environmentRegion, this.regionDiscoveryMetadata)];\r\n case 1:\r\n autodetectedRegionName = _h.sent();\r\n azureRegion = ((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n ? autodetectedRegionName\r\n : (_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion;\r\n if (((_f = this.authorityOptions.azureRegionConfiguration) === null || _f === void 0 ? void 0 : _f.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n else {\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = (((_g = this.authorityOptions.azureRegionConfiguration) === null || _g === void 0 ? void 0 : _g.azureRegion) === autodetectedRegionName) ?\r\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n }\r\n else {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n }\r\n }\r\n if (azureRegion) {\r\n this.regionDiscoveryMetadata.region_used = azureRegion;\r\n return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, azureRegion)];\r\n }\r\n return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache\r\n * and returns where the information was retrieved from\r\n * @param cachedMetadata\r\n * @param newMetadata\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, metadataEntityExpired, harcodedMetadata;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n this.logger.verbose(\"Attempting to get cloud discovery metadata in the config\");\r\n this.logger.verbosePii(\"Known Authorities: \" + (this.authorityOptions.knownAuthorities || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Authority Metadata: \" + (this.authorityOptions.authorityMetadata || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Canonical Authority: \" + (metadataEntity.canonical_authority || Constants.NOT_APPLICABLE));\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata in the config.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If the cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the cache.\");\r\n metadataEntityExpired = metadataEntity.isExpired();\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntityExpired) {\r\n this.logger.verbose(\"Found metadata in the cache.\");\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network.\");\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _c.sent();\r\n if (metadata) {\r\n this.logger.verbose(\"cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata from the network... Attempting to get cloud discovery metadata from hardcoded values.\");\r\n harcodedMetadata = this.getCloudDiscoveryMetadataFromHarcodedValues();\r\n if (harcodedMetadata && !this.options.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Found cloud discovery metadata from hardcoded values.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n }\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n this.logger.error(\"Did not find cloud discovery metadata from hardcoded values... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error.\");\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n this.logger.verbose(\"The cloud discovery metadata has been provided as a network response, in the config.\");\r\n try {\r\n this.logger.verbose(\"Attempting to parse the cloud discovery metadata.\");\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n this.logger.verbose(\"Parsed the cloud discovery metadata.\");\r\n if (metadata) {\r\n this.logger.verbose(\"There is returnable metadata attached to the parsed cloud discovery metadata.\");\r\n return metadata;\r\n }\r\n else {\r\n this.logger.verbose(\"There is no metadata attached to the parsed cloud discovery metadata.\");\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error.\");\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n this.logger.verbose(\"The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, options, match, response, typedResponseBody, metadata, error_1, typedError;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n options = {};\r\n match = null;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n typedResponseBody = void 0;\r\n metadata = void 0;\r\n if (isCloudInstanceDiscoveryResponse(response.body)) {\r\n typedResponseBody = response.body;\r\n metadata = typedResponseBody.metadata;\r\n this.logger.verbosePii(\"tenant_discovery_endpoint is: \" + typedResponseBody.tenant_discovery_endpoint);\r\n }\r\n else if (isCloudInstanceDiscoveryErrorResponse(response.body)) {\r\n this.logger.warning(\"A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: \" + response.status);\r\n typedResponseBody = response.body;\r\n if (typedResponseBody.error === Constants.INVALID_INSTANCE) {\r\n this.logger.error(\"The CloudInstanceDiscoveryErrorResponse error is invalid_instance.\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error is \" + typedResponseBody.error);\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error description is \" + typedResponseBody.error_description);\r\n this.logger.warning(\"Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []\");\r\n metadata = [];\r\n }\r\n else {\r\n this.logger.error(\"AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.verbose(\"Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _b.sent();\r\n if (error_1 instanceof AuthError) {\r\n this.logger.error(\"There was a network error while attempting to get the cloud discovery instance metadata.\\nError: \" + error_1.errorCode + \"\\nError Description: \" + error_1.errorMessage);\r\n }\r\n else {\r\n typedError = error_1;\r\n this.logger.error(\"A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\\nError: \" + typedError.name + \"\\nError Description: \" + typedError.message);\r\n }\r\n return [2 /*return*/, null];\r\n case 4:\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n if (!match) {\r\n this.logger.warning(\"The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n this.logger.verbose(\"Creating custom Authority for custom domain scenario.\");\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get cloud discovery metadata for common authorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromHarcodedValues = function () {\r\n if (this.canonicalAuthority in InstanceDiscoveryMetadata) {\r\n return InstanceDiscoveryMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n Authority.generateAuthority = function (authorityString, azureCloudOptions) {\r\n var authorityAzureCloudInstance;\r\n if (azureCloudOptions && azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n var tenant = azureCloudOptions.tenant ? azureCloudOptions.tenant : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = azureCloudOptions.azureCloudInstance + \"/\" + tenant + \"/\";\r\n }\r\n return authorityAzureCloudInstance ? authorityAzureCloudInstance : authorityString;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, Constants.REGIONAL_AUTH_NON_MSI_QUERY_STRING);\r\n if (metadata.end_session_endpoint) {\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n }\r\n return metadata;\r\n };\r\n return Authority;\r\n}());\n\nexport { Authority };\n//# sourceMappingURL=Authority.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.addQueueMeasurement(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, correlationId);\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.setPreQueueTime(PerformanceEvents.AuthorityResolveEndpointsAsync, correlationId);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n//# sourceMappingURL=AuthorityFactory.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses <key,value>\r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n//# sourceMappingURL=ServerTelemetryEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses <key,value>\r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n//# sourceMappingURL=ThrottlingEntity.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n//# sourceMappingURL=INetworkModule.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar JoseHeaderErrorMessage = {\r\n missingKidError: {\r\n code: \"missing_kid_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.\"\r\n },\r\n missingAlgError: {\r\n code: \"missing_alg_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided.\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar JoseHeaderError = /** @class */ (function (_super) {\r\n __extends(JoseHeaderError, _super);\r\n function JoseHeaderError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"JoseHeaderError\";\r\n Object.setPrototypeOf(_this, JoseHeaderError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when keyId isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingKidError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingKidError.code, JoseHeaderErrorMessage.missingKidError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when algorithm isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingAlgError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingAlgError.code, JoseHeaderErrorMessage.missingAlgError.desc);\r\n };\r\n return JoseHeaderError;\r\n}(AuthError));\n\nexport { JoseHeaderError, JoseHeaderErrorMessage };\n//# sourceMappingURL=JoseHeaderError.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { JoseHeaderError } from '../error/JoseHeaderError.js';\nimport { JsonTypes } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar JoseHeader = /** @class */ (function () {\r\n function JoseHeader(options) {\r\n this.typ = options.typ;\r\n this.alg = options.alg;\r\n this.kid = options.kid;\r\n }\r\n /**\r\n * Builds SignedHttpRequest formatted JOSE Header from the\r\n * JOSE Header options provided or previously set on the object and returns\r\n * the stringified header object.\r\n * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.\r\n * @param shrHeaderOptions\r\n * @returns\r\n */\r\n JoseHeader.getShrHeaderString = function (shrHeaderOptions) {\r\n // KeyID is required on the SHR header\r\n if (!shrHeaderOptions.kid) {\r\n throw JoseHeaderError.createMissingKidError();\r\n }\r\n // Alg is required on the SHR header\r\n if (!shrHeaderOptions.alg) {\r\n throw JoseHeaderError.createMissingAlgError();\r\n }\r\n var shrHeader = new JoseHeader({\r\n // Access Token PoP headers must have type JWT, but the type header can be overriden for special cases\r\n typ: shrHeaderOptions.typ || JsonTypes.Jwt,\r\n kid: shrHeaderOptions.kid,\r\n alg: shrHeaderOptions.alg\r\n });\r\n return JSON.stringify(shrHeader);\r\n };\r\n return JoseHeader;\r\n}());\n\nexport { JoseHeader };\n//# sourceMappingURL=JoseHeader.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __assign } from '../../_virtual/_tslib.js';\nimport { IntFields, PerformanceEventStatus } from './PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PerformanceClient = /** @class */ (function () {\r\n /**\r\n * Creates an instance of PerformanceClient,\r\n * an abstract class containing core performance telemetry logic.\r\n *\r\n * @constructor\r\n * @param {string} clientId Client ID of the application\r\n * @param {string} authority Authority used by the application\r\n * @param {Logger} logger Logger used by the application\r\n * @param {string} libraryName Name of the library\r\n * @param {string} libraryVersion Version of the library\r\n */\r\n function PerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) {\r\n this.authority = authority;\r\n this.libraryName = libraryName;\r\n this.libraryVersion = libraryVersion;\r\n this.applicationTelemetry = applicationTelemetry;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.callbacks = new Map();\r\n this.eventsByCorrelationId = new Map();\r\n this.staticFieldsByCorrelationId = new Map();\r\n this.measurementsById = new Map();\r\n this.queueMeasurements = new Map();\r\n this.preQueueTimeByCorrelationId = new Map();\r\n this.countersByCorrelationId = new Map();\r\n }\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this function can be changed to abstract at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasurement = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this incorrectly-named function will be removed at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Get integral fields.\r\n * Override to change the set.\r\n */\r\n PerformanceClient.prototype.getIntFields = function () {\r\n return IntFields;\r\n };\r\n /**\r\n * Gets map of pre-queue times by correlation Id\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {string} correlationId\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.getPreQueueTime = function (eventName, correlationId) {\r\n var preQueueTimesByEvents = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (!preQueueTimesByEvents) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: \" + correlationId + \", unable to add queue measurement\");\r\n return;\r\n }\r\n else if (!preQueueTimesByEvents.get(eventName)) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue time found for \" + eventName + \", unable to add queue measurement\");\r\n return;\r\n }\r\n return preQueueTimesByEvents.get(eventName);\r\n };\r\n /**\r\n * Calculates the difference between current time and time when function was queued.\r\n * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.\r\n *\r\n * @param {number} preQueueTime\r\n * @param {number} currentTime\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n if (preQueueTime < 1) {\r\n this.logger.trace(\"PerformanceClient: preQueueTime should be a positive integer and not \" + preQueueTime);\r\n return 0;\r\n }\r\n if (currentTime < 1) {\r\n this.logger.trace(\"PerformanceClient: currentTime should be a positive integer and not \" + currentTime);\r\n return 0;\r\n }\r\n if (currentTime < preQueueTime) {\r\n this.logger.trace(\"PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved\");\r\n return 0;\r\n }\r\n return currentTime - preQueueTime;\r\n };\r\n /**\r\n * Adds queue measurement time to QueueMeasurements array for given correlation ID.\r\n *\r\n * @param {PerformanceEvents} name\r\n * @param {?string} correlationId\r\n * @param {?number} time\r\n * @returns\r\n */\r\n PerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime) {\r\n if (!correlationId) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: correlationId not provided for \" + eventName + \", cannot add queue measurement\");\r\n return;\r\n }\r\n if (queueTime === 0) {\r\n // Possible for there to be no queue time after calculation\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: queue time provided for \" + eventName + \" is \" + queueTime);\r\n }\r\n else if (!queueTime) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: no queue time provided for \" + eventName);\r\n return;\r\n }\r\n var queueMeasurement = { eventName: eventName, queueTime: queueTime };\r\n // Adds to existing correlation Id if present in queueMeasurements\r\n var existingMeasurements = this.queueMeasurements.get(correlationId);\r\n if (existingMeasurements) {\r\n existingMeasurements.push(queueMeasurement);\r\n this.queueMeasurements.set(correlationId, existingMeasurements);\r\n }\r\n else {\r\n // Sets new correlation Id if not present in queueMeasurements\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: adding correlationId \" + correlationId + \" to queue measurements\");\r\n var measurementArray = [queueMeasurement];\r\n this.queueMeasurements.set(correlationId, measurementArray);\r\n }\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {InProgressPerformanceEvent}\r\n */\r\n PerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n var _a, _b;\r\n // Generate a placeholder correlation if the request does not provide one\r\n var eventCorrelationId = correlationId || this.generateId();\r\n if (!correlationId) {\r\n this.logger.info(\"PerformanceClient: No correlation id provided for \" + measureName + \", generating\", eventCorrelationId);\r\n }\r\n // Duplicate code to address spelling error will be removed at the next major version bump.\r\n this.logger.trace(\"PerformanceClient: Performance measurement started for \" + measureName, eventCorrelationId);\r\n var validMeasurement;\r\n var performanceMeasuremeant = this.startPerformanceMeasuremeant(measureName, eventCorrelationId);\r\n if (performanceMeasuremeant.startMeasurement) {\r\n performanceMeasuremeant.startMeasurement();\r\n validMeasurement = performanceMeasuremeant;\r\n }\r\n else {\r\n var performanceMeasurement = this.startPerformanceMeasurement(measureName, eventCorrelationId);\r\n performanceMeasurement.startMeasurement();\r\n validMeasurement = performanceMeasurement;\r\n }\r\n var inProgressEvent = {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: this.authority,\r\n libraryName: this.libraryName,\r\n libraryVersion: this.libraryVersion,\r\n clientId: this.clientId,\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: eventCorrelationId,\r\n };\r\n // Store in progress events so they can be discarded if not ended properly\r\n this.cacheEventByCorrelationId(inProgressEvent);\r\n var staticFields = {\r\n appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,\r\n appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,\r\n };\r\n this.addStaticFields(staticFields, eventCorrelationId);\r\n this.cacheMeasurement(inProgressEvent, validMeasurement);\r\n // Return the event and functions the caller can use to properly end/flush the measurement\r\n return {\r\n endMeasurement: function (event) {\r\n var completedEvent = _this.endMeasurement(__assign(__assign({}, inProgressEvent), event));\r\n if (completedEvent) {\r\n // Cache event so that submeasurements can be added downstream\r\n _this.cacheEventByCorrelationId(completedEvent);\r\n }\r\n return completedEvent;\r\n },\r\n flushMeasurement: function () {\r\n return _this.flushMeasurements(inProgressEvent.name, inProgressEvent.correlationId);\r\n },\r\n discardMeasurement: function () {\r\n return _this.discardMeasurements(inProgressEvent.correlationId);\r\n },\r\n addStaticFields: function (fields) {\r\n return _this.addStaticFields(fields, inProgressEvent.correlationId);\r\n },\r\n increment: function (counters) {\r\n return _this.increment(counters, inProgressEvent.correlationId);\r\n },\r\n measurement: validMeasurement,\r\n event: inProgressEvent\r\n };\r\n };\r\n /**\r\n * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,\r\n * as consumers should instead use the function returned by startMeasurement.\r\n *\r\n * @param {PerformanceEvent} event\r\n * @returns {(PerformanceEvent | null)}\r\n */\r\n PerformanceClient.prototype.endMeasurement = function (event) {\r\n var performanceMeasurement = this.measurementsById.get(event.eventId);\r\n if (performanceMeasurement) {\r\n // Immediately delete so that the same event isnt ended twice\r\n this.measurementsById.delete(event.eventId);\r\n performanceMeasurement.endMeasurement();\r\n var durationMs = performanceMeasurement.flushMeasurement();\r\n // null indicates no measurement was taken (e.g. needed performance APIs not present)\r\n if (durationMs !== null) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement ended for \" + event.name + \": \" + durationMs + \" ms\", event.correlationId);\r\n var completedEvent = __assign(__assign({ \r\n // Allow duration to be overwritten when event ends (e.g. testing), but not status\r\n durationMs: Math.round(durationMs) }, event), { status: PerformanceEventStatus.Completed });\r\n return completedEvent;\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Performance measurement not taken\", event.correlationId);\r\n }\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Measurement not found for \" + event.eventId, event.correlationId);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Saves extra information to be emitted when the measurements are flushed\r\n * @param fields\r\n * @param correlationId\r\n */\r\n PerformanceClient.prototype.addStaticFields = function (fields, correlationId) {\r\n var existingStaticFields = this.staticFieldsByCorrelationId.get(correlationId);\r\n if (existingStaticFields) {\r\n this.logger.trace(\"PerformanceClient: Updating static fields\");\r\n this.staticFieldsByCorrelationId.set(correlationId, __assign(__assign({}, existingStaticFields), fields));\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Adding static fields\");\r\n this.staticFieldsByCorrelationId.set(correlationId, fields);\r\n }\r\n };\r\n /**\r\n * Increment counters to be emitted when the measurements are flushed\r\n * @param counters {Counters}\r\n * @param correlationId {string} correlation identifier\r\n */\r\n PerformanceClient.prototype.increment = function (counters, correlationId) {\r\n var existing = this.countersByCorrelationId.get(correlationId);\r\n if (!existing) {\r\n this.logger.trace(\"PerformanceClient: Setting counters\");\r\n this.countersByCorrelationId.set(correlationId, __assign({}, counters));\r\n return;\r\n }\r\n this.logger.trace(\"PerformanceClient: Updating counters\");\r\n for (var counter in counters) {\r\n if (!existing.hasOwnProperty(counter)) {\r\n existing[counter] = 0;\r\n }\r\n existing[counter] += counters[counter];\r\n }\r\n };\r\n /**\r\n * Upserts event into event cache.\r\n * First key is the correlation id, second key is the event id.\r\n * Allows for events to be grouped by correlation id,\r\n * and to easily allow for properties on them to be updated.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n */\r\n PerformanceClient.prototype.cacheEventByCorrelationId = function (event) {\r\n var existingEvents = this.eventsByCorrelationId.get(event.correlationId);\r\n if (existingEvents) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" added/updated\", event.correlationId);\r\n existingEvents.set(event.eventId, event);\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" started\", event.correlationId);\r\n this.eventsByCorrelationId.set(event.correlationId, new Map().set(event.eventId, event));\r\n }\r\n };\r\n /**\r\n * Cache measurements by their id.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n * @param {IPerformanceMeasurement} measurement\r\n */\r\n PerformanceClient.prototype.cacheMeasurement = function (event, measurement) {\r\n this.measurementsById.set(event.eventId, measurement);\r\n };\r\n /**\r\n * Gathers and emits performance events for measurements taked for the given top-level API and correlation ID.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {string} correlationId\r\n */\r\n PerformanceClient.prototype.flushMeasurements = function (measureName, correlationId) {\r\n var _this = this;\r\n this.logger.trace(\"PerformanceClient: Performance measurements flushed for \" + measureName, correlationId);\r\n /**\r\n * Adds all queue time and count measurements for given correlation ID\r\n * then deletes queue times for given correlation ID from queueMeasurements map.\r\n */\r\n var queueMeasurementForCorrelationId = this.queueMeasurements.get(correlationId);\r\n if (!queueMeasurementForCorrelationId) {\r\n this.logger.trace(\"PerformanceClient: no queue measurements found for for correlationId: \" + correlationId);\r\n }\r\n var totalQueueTime = 0;\r\n var totalQueueCount = 0;\r\n queueMeasurementForCorrelationId === null || queueMeasurementForCorrelationId === void 0 ? void 0 : queueMeasurementForCorrelationId.forEach(function (measurement) {\r\n totalQueueTime += measurement.queueTime;\r\n totalQueueCount++;\r\n });\r\n var eventsForCorrelationId = this.eventsByCorrelationId.get(correlationId);\r\n var staticFields = this.staticFieldsByCorrelationId.get(correlationId);\r\n var counters = this.countersByCorrelationId.get(correlationId);\r\n if (eventsForCorrelationId) {\r\n this.discardCache(correlationId);\r\n /*\r\n * Manually end incomplete submeasurements to ensure there arent orphaned/never ending events.\r\n * Incomplete submeasurements are likely an instrumentation bug that should be fixed.\r\n * IE only supports Map.forEach.\r\n */\r\n var completedEvents_1 = [];\r\n var incompleteSubsCount_1 = 0;\r\n eventsForCorrelationId.forEach(function (event) {\r\n if (event.name !== measureName && event.status !== PerformanceEventStatus.Completed) {\r\n _this.logger.trace(\"PerformanceClient: Incomplete submeasurement \" + event.name + \" found for \" + measureName, correlationId);\r\n incompleteSubsCount_1++;\r\n var completedEvent = _this.endMeasurement(event);\r\n if (completedEvent) {\r\n completedEvents_1.push(completedEvent);\r\n }\r\n }\r\n completedEvents_1.push(event);\r\n });\r\n // Sort events by start time (earliest first)\r\n var sortedCompletedEvents = completedEvents_1.sort(function (eventA, eventB) { return eventA.startTimeMs - eventB.startTimeMs; });\r\n // Take completed top level event and add completed submeasurements durations as properties\r\n var topLevelEvents = sortedCompletedEvents.filter(function (event) { return event.name === measureName && event.status === PerformanceEventStatus.Completed; });\r\n if (topLevelEvents.length > 0) {\r\n /*\r\n * Only take the first top-level event if there are multiple events with the same correlation id.\r\n * This greatly simplifies logic for submeasurements.\r\n */\r\n if (topLevelEvents.length > 1) {\r\n this.logger.verbose(\"PerformanceClient: Multiple distinct top-level performance events found, using the first\", correlationId);\r\n }\r\n var topLevelEvent = topLevelEvents[0];\r\n this.logger.verbose(\"PerformanceClient: Measurement found for \" + measureName, correlationId);\r\n // Build event object with top level and sub measurements\r\n var eventToEmit = sortedCompletedEvents.reduce(function (previous, current) {\r\n if (current.name !== measureName) {\r\n _this.logger.trace(\"PerformanceClient: Complete submeasurement found for \" + current.name, correlationId);\r\n // TODO: Emit additional properties for each subMeasurement\r\n var subMeasurementName = current.name + \"DurationMs\";\r\n /*\r\n * Some code paths, such as resolving an authority, can occur multiple times.\r\n * Only take the first measurement, since the second could be read from the cache,\r\n * or due to the same correlation id being used for two distinct requests.\r\n */\r\n if (!previous[subMeasurementName]) {\r\n previous[subMeasurementName] = current.durationMs;\r\n }\r\n else {\r\n _this.logger.verbose(\"PerformanceClient: Submeasurement for \" + measureName + \" already exists for \" + current.name + \", ignoring\", correlationId);\r\n }\r\n }\r\n return previous;\r\n }, topLevelEvent);\r\n var finalEvent = __assign(__assign(__assign(__assign({}, eventToEmit), staticFields), counters), { queuedTimeMs: totalQueueTime, queuedCount: totalQueueCount, incompleteSubsCount: incompleteSubsCount_1 });\r\n this.truncateIntegralFields(finalEvent, this.getIntFields());\r\n this.emitEvents([finalEvent], eventToEmit.correlationId);\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: No completed top-level measurements found for \" + measureName, correlationId);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: No measurements found\", correlationId);\r\n }\r\n };\r\n /**\r\n * Removes measurements for a given correlation id.\r\n *\r\n * @param {string} correlationId\r\n */\r\n PerformanceClient.prototype.discardMeasurements = function (correlationId) {\r\n this.logger.trace(\"PerformanceClient: Performance measurements discarded\", correlationId);\r\n this.eventsByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Removes cache for a given correlation id.\r\n *\r\n * @param {string} correlation identifier\r\n */\r\n PerformanceClient.prototype.discardCache = function (correlationId) {\r\n this.discardMeasurements(correlationId);\r\n this.logger.trace(\"PerformanceClient: Static fields discarded\", correlationId);\r\n this.staticFieldsByCorrelationId.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Counters discarded\", correlationId);\r\n this.countersByCorrelationId.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: QueueMeasurements discarded\", correlationId);\r\n this.queueMeasurements.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Pre-queue times discarded\", correlationId);\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Registers a callback function to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n PerformanceClient.prototype.addPerformanceCallback = function (callback) {\r\n var callbackId = this.generateId();\r\n this.callbacks.set(callbackId, callback);\r\n this.logger.verbose(\"PerformanceClient: Performance callback registered with id: \" + callbackId);\r\n return callbackId;\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n PerformanceClient.prototype.removePerformanceCallback = function (callbackId) {\r\n var result = this.callbacks.delete(callbackId);\r\n if (result) {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" removed.\");\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" not removed.\");\r\n }\r\n return result;\r\n };\r\n /**\r\n * Emits events to all registered callbacks.\r\n *\r\n * @param {PerformanceEvent[]} events\r\n * @param {?string} [correlationId]\r\n */\r\n PerformanceClient.prototype.emitEvents = function (events, correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"PerformanceClient: Emitting performance events\", correlationId);\r\n this.callbacks.forEach(function (callback, callbackId) {\r\n _this.logger.trace(\"PerformanceClient: Emitting event to callback \" + callbackId, correlationId);\r\n callback.apply(null, [events]);\r\n });\r\n };\r\n /**\r\n * Enforce truncation of integral fields in performance event.\r\n * @param {PerformanceEvent} event performance event to update.\r\n * @param {Set<string>} intFields integral fields.\r\n */\r\n PerformanceClient.prototype.truncateIntegralFields = function (event, intFields) {\r\n intFields.forEach(function (key) {\r\n if (key in event && typeof event[key] === \"number\") {\r\n event[key] = Math.floor(event[key]);\r\n }\r\n });\r\n };\r\n return PerformanceClient;\r\n}());\n\nexport { PerformanceClient };\n//# sourceMappingURL=PerformanceClient.js.map\n","/*! @azure/msal-common v10.0.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { PerformanceClient } from './PerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubPerformanceMeasurement = /** @class */ (function () {\r\n function StubPerformanceMeasurement() {\r\n }\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.startMeasurement = function () { };\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.endMeasurement = function () { };\r\n StubPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n return null;\r\n };\r\n return StubPerformanceMeasurement;\r\n}());\r\nvar StubPerformanceClient = /** @class */ (function (_super) {\r\n __extends(StubPerformanceClient, _super);\r\n function StubPerformanceClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n StubPerformanceClient.prototype.generateId = function () {\r\n return \"callback-id\";\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasuremeant = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasurement = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n return 0;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime) {\r\n return;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n return;\r\n };\r\n return StubPerformanceClient;\r\n}(PerformanceClient));\n\nexport { StubPerformanceClient, StubPerformanceMeasurement };\n//# sourceMappingURL=StubPerformanceClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n },\r\n authCodeRequired: {\r\n code: \"auth_code_required\",\r\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\r\n },\r\n authCodeOrNativeAccountRequired: {\r\n code: \"auth_code_or_nativeAccountId_required\",\r\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\r\n },\r\n databaseUnavailable: {\r\n code: \"database_unavailable\",\r\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\r\n },\r\n unableToAcquireTokenFromNativePlatform: {\r\n code: \"unable_to_acquire_token_from_native_platform\",\r\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeHandshakeTimeout: {\r\n code: \"native_handshake_timeout\",\r\n desc: \"Timed out while attempting to establish connection to browser extension\"\r\n },\r\n nativeExtensionNotInstalled: {\r\n code: \"native_extension_not_installed\",\r\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\r\n },\r\n nativeConnectionNotEstablished: {\r\n code: \"native_connection_not_established\",\r\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeBrokerCalledBeforeInitialize: {\r\n code: \"native_broker_called_before_initialize\",\r\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativePromptNotSupported: {\r\n code: \"native_prompt_not_supported\",\r\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe or brokered applications.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n /**\r\n * Create an error when an authorization code is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\r\n };\r\n /**\r\n * Create an error when an authorization code or native account ID is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\r\n };\r\n /**\r\n * Create an error when IndexedDB is unavailable\r\n */\r\n BrowserAuthError.createDatabaseUnavailableError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\r\n };\r\n /**\r\n * Create an error when native token acquisition is not possible\r\n */\r\n BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\r\n };\r\n /**\r\n * Create an error thrown when Handshake with browser extension times out\r\n */\r\n BrowserAuthError.createNativeHandshakeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\r\n };\r\n /**\r\n * Create an error thrown when browser extension is not installed\r\n */\r\n BrowserAuthError.createNativeExtensionNotInstalledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\r\n };\r\n /**\r\n * Create an error when native connection has not been established\r\n * @returns\r\n */\r\n BrowserAuthError.createNativeConnectionNotEstablishedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\r\n };\r\n /**\r\n * Create an error thrown when the initialize function hasn't been called\r\n */\r\n BrowserAuthError.createNativeBrokerCalledBeforeInitialize = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\r\n };\r\n /**\r\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\r\n * These requests must go through eSTS to ensure eSTS is aware of the new account\r\n */\r\n BrowserAuthError.createNativePromptParameterNotSupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n DEFAULT_POLL_INTERVAL_MS: 30,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar NativeConstants = {\r\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\r\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\r\n MATS_TELEMETRY: \"MATS\"\r\n};\r\nvar NativeExtensionMethod;\r\n(function (NativeExtensionMethod) {\r\n NativeExtensionMethod[\"HandshakeRequest\"] = \"Handshake\";\r\n NativeExtensionMethod[\"HandshakeResponse\"] = \"HandshakeResponse\";\r\n NativeExtensionMethod[\"GetToken\"] = \"GetToken\";\r\n NativeExtensionMethod[\"Response\"] = \"Response\";\r\n})(NativeExtensionMethod || (NativeExtensionMethod = {}));\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n TemporaryCacheKeys[\"CCS_CREDENTIAL\"] = \"ccs.credential\";\r\n TemporaryCacheKeys[\"CORRELATION_ID\"] = \"request.correlationId\";\r\n TemporaryCacheKeys[\"NATIVE_REQUEST\"] = \"request.native\";\r\n TemporaryCacheKeys[\"REDIRECT_CONTEXT\"] = \"request.redirect.context\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nvar InMemoryCacheKeys;\r\n(function (InMemoryCacheKeys) {\r\n InMemoryCacheKeys[\"WRAPPER_SKU\"] = \"wrapper.sku\";\r\n InMemoryCacheKeys[\"WRAPPER_VER\"] = \"wrapper.version\";\r\n})(InMemoryCacheKeys || (InMemoryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenByCode\"] = 866] = \"acquireTokenByCode\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\r\n// DatabaseStorage Constants\r\nvar DB_NAME = \"msal.db\";\r\nvar DB_VERSION = 1;\r\nvar DB_TABLE_NAME = DB_NAME + \".keys\";\r\nvar CacheLookupPolicy;\r\n(function (CacheLookupPolicy) {\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\r\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\r\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Default\"] = 0] = \"Default\";\r\n /*\r\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\r\n * refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessToken\"] = 1] = \"AccessToken\";\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\r\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\r\n * will not be renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessTokenAndRefreshToken\"] = 2] = \"AccessTokenAndRefreshToken\";\r\n /*\r\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\r\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\r\n * renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshToken\"] = 3] = \"RefreshToken\";\r\n /*\r\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\r\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\r\n * setting \"forceRefresh: true\".\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshTokenAndNetwork\"] = 4] = \"RefreshTokenAndNetwork\";\r\n /*\r\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\r\n * always fail if 3rd party cookies are blocked by the browser.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Skip\"] = 5] = \"Skip\";\r\n})(CacheLookupPolicy || (CacheLookupPolicy = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, CacheLookupPolicy, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, NativeConstants, NativeExtensionMethod, TemporaryCacheKeys, WrapperSKU };\n//# sourceMappingURL=BrowserConstants.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n },\r\n entropyNotProvided: {\r\n code: \"entropy_not_provided\",\r\n desc: \"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a crypto interface that requires entropy is initialized without entropy\r\n */\r\n BrowserConfigurationAuthError.createEntropyNotProvided = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.entropyNotProvided.code, BrowserConfigurationAuthErrorMessage.entropyNotProvided.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n//# sourceMappingURL=BrowserStorage.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n//# sourceMappingURL=MemoryStorage.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n//# sourceMappingURL=BrowserProtocolUtils.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, Constants, PersistentCacheKeys, ClientAuthError, ThrottlingEntity, StringUtils, ProtocolUtils, CcsCredentialType, IdToken, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, InMemoryCacheKeys, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.cacheLocation);\r\n // Migrate any cache entries from older versions of MSAL.\r\n _this.migrateCacheEntries();\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n *\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n BrowserCacheManager.prototype.setWrapperMetadata = function (wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n };\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n BrowserCacheManager.prototype.getWrapperMetadata = function () {\r\n var sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) || Constants.EMPTY_STRING;\r\n var version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) || Constants.EMPTY_STRING;\r\n return [sku, version];\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * Gets the active account\r\n */\r\n BrowserCacheManager.prototype.getActiveAccount = function () {\r\n var activeAccountKeyFilters = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountValueFilters = this.getItem(activeAccountKeyFilters);\r\n if (!activeAccountValueFilters) {\r\n // if new active account cache type isn't found, it's an old version, so look for that instead\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema\");\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n var activeAccountValueLocal = this.getItem(activeAccountKeyLocal);\r\n if (!activeAccountValueLocal) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n }\r\n var activeAccount = this.getAccountInfoByFilter({ localAccountId: activeAccountValueLocal })[0] || null;\r\n if (activeAccount) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Legacy active account cache schema found\");\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Adding active account filters cache schema\");\r\n this.setActiveAccount(activeAccount);\r\n return activeAccount;\r\n }\r\n return null;\r\n }\r\n var activeAccountValueObj = this.validateAndParseJson(activeAccountValueFilters);\r\n if (activeAccountValueObj) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Active account filters schema found\");\r\n return this.getAccountInfoByFilter({\r\n homeAccountId: activeAccountValueObj.homeAccountId,\r\n localAccountId: activeAccountValueObj.localAccountId\r\n })[0] || null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n };\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.setActiveAccount = function (account) {\r\n var activeAccountKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n var activeAccountValue = {\r\n homeAccountId: account.homeAccountId,\r\n localAccountId: account.localAccountId\r\n };\r\n this.browserStorage.setItem(activeAccountKey, JSON.stringify(activeAccountValue));\r\n this.browserStorage.setItem(activeAccountKeyLocal, account.localAccountId);\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountKey);\r\n this.browserStorage.removeItem(activeAccountKeyLocal);\r\n }\r\n };\r\n /**\r\n * Gets a list of accounts that match all of the filters provided\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByFilter = function (accountFilter) {\r\n var allAccounts = this.getAllAccounts();\r\n this.logger.trace(\"BrowserCacheManager.getAccountInfoByFilter: total \" + allAccounts.length + \" accounts found\");\r\n return allAccounts.filter(function (accountObj) {\r\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\r\n return false;\r\n }\r\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\r\n return false;\r\n }\r\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n /**\r\n * Checks the cache for accounts matching loginHint or SID\r\n * @param loginHint\r\n * @param sid\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByHints = function (loginHint, sid) {\r\n var matchingAccounts = this.getAllAccounts().filter(function (accountInfo) {\r\n if (sid) {\r\n var accountSid = accountInfo.idTokenClaims && accountInfo.idTokenClaims[\"sid\"];\r\n return sid === accountSid;\r\n }\r\n if (loginHint) {\r\n return loginHint === accountInfo.username;\r\n }\r\n return false;\r\n });\r\n if (matchingAccounts.length === 1) {\r\n return matchingAccounts[0];\r\n }\r\n else if (matchingAccounts.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingAccountsInCacheError();\r\n }\r\n return null;\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Removes all accounts and their credentials\r\n return [4 /*yield*/, this.removeAllAccounts()];\r\n case 1:\r\n // Removes all accounts and their credentials\r\n _a.sent();\r\n this.removeAppMetadata();\r\n // Removes all remaining MSAL cache items\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;SameSite=Lax;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n // eslint-disable-next-line no-param-reassign\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, Constants.EMPTY_STRING, -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal.<client-id> to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n var ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (!StringUtils.isEmpty(loginHint)) {\r\n var ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n this.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || Constants.EMPTY_STRING);\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n this.setInteractionInProgress(false);\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n /**\r\n * Gets cached native request for redirect flows\r\n */\r\n BrowserCacheManager.prototype.getCachedNativeRequest = function () {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest called\");\r\n var cachedRequest = this.getTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, true);\r\n if (!cachedRequest) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest: No cached native request found\");\r\n return null;\r\n }\r\n var parsedRequest = this.validateAndParseJson(cachedRequest);\r\n if (!parsedRequest) {\r\n this.logger.error(\"BrowserCacheManager.getCachedNativeRequest: Unable to parse native request\");\r\n return null;\r\n }\r\n return parsedRequest;\r\n };\r\n BrowserCacheManager.prototype.isInteractionInProgress = function (matchClientId) {\r\n var clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n };\r\n BrowserCacheManager.prototype.getInteractionInProgress = function () {\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n return this.getTemporaryCache(key, false);\r\n };\r\n BrowserCacheManager.prototype.setInteractionInProgress = function (inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress && this.getInteractionInProgress() === this.clientId) {\r\n this.removeItem(key);\r\n }\r\n };\r\n /**\r\n * Returns username retrieved from ADAL or MSAL v1 idToken\r\n */\r\n BrowserCacheManager.prototype.getLegacyLoginHint = function () {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.removeItem(this.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.cryptoImpl);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n return cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n return cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Updates a credential's cache key if the current cache key is outdated\r\n */\r\n BrowserCacheManager.prototype.updateCredentialCacheKey = function (currentCacheKey, credential) {\r\n var updatedCacheKey = credential.generateCredentialKey();\r\n if (currentCacheKey !== updatedCacheKey) {\r\n var cacheItem = this.getItem(currentCacheKey);\r\n if (cacheItem) {\r\n this.removeItem(currentCacheKey);\r\n this.setItem(updatedCacheKey, cacheItem);\r\n this.logger.verbose(\"Updated an outdated \" + credential.credentialType + \" cache key\");\r\n return updatedCacheKey;\r\n }\r\n else {\r\n this.logger.error(\"Attempted to update an outdated \" + credential.credentialType + \" cache key but no item matching the outdated key was found in storage\");\r\n }\r\n }\r\n return currentCacheKey;\r\n };\r\n /**\r\n * Returns application id as redirect context during AcquireTokenRedirect flow.\r\n */\r\n BrowserCacheManager.prototype.getRedirectRequestContext = function () {\r\n return this.getTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, true);\r\n };\r\n /**\r\n * Sets application id as the redirect context during AcquireTokenRedirect flow.\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setRedirectRequestContext = function (value) {\r\n this.setTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, value, true);\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n//# sourceMappingURL=BrowserCacheManager.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.33.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || Constants.EMPTY_STRING;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n//# sourceMappingURL=FetchClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n//# sourceMappingURL=XhrClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.origin + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\n BrowserUtils.isInPopup = function () {\r\n return typeof window !== \"undefined\" && !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (BrowserUtils.isInPopup()) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Throws error if native brokering is enabled but initialize hasn't been called\r\n * @param allowNativeBroker\r\n * @param initialized\r\n */\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized = function (allowNativeBroker, initialized) {\r\n if (allowNativeBroker && !initialized) {\r\n throw BrowserAuthError.createNativeBrokerCalledBeforeInitialize();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n//# sourceMappingURL=BrowserUtils.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator, __spread, __assign } from '../_virtual/_tslib.js';\nimport { AccountEntity, PerformanceEvents, AuthenticationScheme, ClientConfigurationError, StringUtils, UrlString, ServerTelemetryManager, AuthorityFactory } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.navigationClient = navigationClient;\r\n this.nativeMessageHandler = nativeMessageHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n this.performanceClient = performanceClient;\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\", this.correlationId);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n BaseInteractionClient.prototype.initializeBaseRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, scopes, validatedRequest, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n authority = request.authority || this.config.auth.authority;\r\n scopes = __spread(((request && request.scopes) || []));\r\n validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!validatedRequest.authenticationScheme) {\r\n validatedRequest.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n if (validatedRequest.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n if (!request.sshKid) {\r\n throw ClientConfigurationError.createMissingSshKidError();\r\n }\r\n }\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + validatedRequest.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n if (!(request.claims && !StringUtils.isEmpty(request.claims))) return [3 /*break*/, 2];\r\n _a = validatedRequest;\r\n return [4 /*yield*/, this.browserCrypto.hashString(request.claims)];\r\n case 1:\r\n _a.requestedClaimsHash = _b.sent();\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n BaseInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n BaseInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n BaseInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n//# sourceMappingURL=BaseInteractionClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, Constants, PerformanceEvents, AuthorizationCodeClient, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: Constants.EMPTY_STRING, codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n var validLogoutRequest = __assign({ correlationId: this.correlationId || this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {\r\n var idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.correlationId);\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority, logger;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n this.logger.verbose(\"getClientConfiguration called\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n logger = this.config.system.loggerOptions;\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: logger.loggerCallback,\r\n piiLoggingEnabled: logger.piiLoggingEnabled,\r\n logLevel: logger.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n },\r\n telemetry: this.config.telemetry\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (serverParams, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getAuthorityMeasurement, authorityOptions, userAuthority, builtAuthority;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n this.logger.verbose(\"getDiscoveredAuthority called\", this.correlationId);\r\n getAuthorityMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache\r\n };\r\n userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\r\n builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\r\n this.logger.verbose(\"Creating discovered authority with configured authority\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, this.correlationId);\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger, this.performanceClient, this.correlationId)\r\n .then(function (result) {\r\n getAuthorityMeasurement.endMeasurement({\r\n success: true,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n getAuthorityMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectUri, browserState, state, validatedRequest, _a, account, legacyLoginHint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", this.correlationId);\r\n redirectUri = this.getRedirectUri(request.redirectUri);\r\n browserState = {\r\n interactionType: interactionType\r\n };\r\n state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [{}];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);\r\n account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\r\n this.logger.verbosePii(\"Setting validated request account: \" + account.homeAccountId, this.correlationId);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n legacyLoginHint = this.browserStorage.getLegacyLoginHint();\r\n if (legacyLoginHint) {\r\n validatedRequest.loginHint = legacyLoginHint;\r\n }\r\n }\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n//# sourceMappingURL=StandardInteractionClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, ClientAuthError, ServerError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);\r\n this.logger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];\r\n });\r\n });\r\n };\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {\r\n if (validateNonce === void 0) { validateNonce = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"INITIALIZE_START\"] = \"msal:initializeStart\";\r\n EventType[\"INITIALIZE_END\"] = \"msal:initializeEnd\";\r\n EventType[\"ACCOUNT_ADDED\"] = \"msal:accountAdded\";\r\n EventType[\"ACCOUNT_REMOVED\"] = \"msal:accountRemoved\";\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_START\"] = \"msal:acquireTokenByCodeStart\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_SUCCESS\"] = \"msal:acquireTokenByCodeSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_FAILURE\"] = \"msal:acquireTokenByCodeFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from './BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeStatusCode;\r\n(function (NativeStatusCode) {\r\n NativeStatusCode[\"USER_INTERACTION_REQUIRED\"] = \"USER_INTERACTION_REQUIRED\";\r\n NativeStatusCode[\"USER_CANCEL\"] = \"USER_CANCEL\";\r\n NativeStatusCode[\"NO_NETWORK\"] = \"NO_NETWORK\";\r\n NativeStatusCode[\"TRANSIENT_ERROR\"] = \"TRANSIENT_ERROR\";\r\n NativeStatusCode[\"PERSISTENT_ERROR\"] = \"PERSISTENT_ERROR\";\r\n NativeStatusCode[\"DISABLED\"] = \"DISABLED\";\r\n NativeStatusCode[\"ACCOUNT_UNAVAILABLE\"] = \"ACCOUNT_UNAVAILABLE\";\r\n})(NativeStatusCode || (NativeStatusCode = {}));\r\nvar NativeAuthErrorMessage = {\r\n extensionError: {\r\n code: \"ContentError\"\r\n },\r\n userSwitch: {\r\n code: \"user_switch\",\r\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\r\n },\r\n tokensNotFoundInCache: {\r\n code: \"tokens_not_found_in_internal_memory_cache\",\r\n desc: \"Tokens not cached in MSAL JS internal memory, please make the WAM request\"\r\n }\r\n};\r\nvar NativeAuthError = /** @class */ (function (_super) {\r\n __extends(NativeAuthError, _super);\r\n function NativeAuthError(errorCode, description, ext) {\r\n var _this = _super.call(this, errorCode, description) || this;\r\n Object.setPrototypeOf(_this, NativeAuthError.prototype);\r\n _this.name = \"NativeAuthError\";\r\n _this.ext = ext;\r\n return _this;\r\n }\r\n /**\r\n * These errors should result in a fallback to the 'standard' browser based auth flow.\r\n */\r\n NativeAuthError.prototype.isFatal = function () {\r\n if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {\r\n return true;\r\n }\r\n switch (this.errorCode) {\r\n case NativeAuthErrorMessage.extensionError.code:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n };\r\n /**\r\n * Create the appropriate error object based on the WAM status code.\r\n * @param code\r\n * @param description\r\n * @param ext\r\n * @returns\r\n */\r\n NativeAuthError.createError = function (code, description, ext) {\r\n if (ext && ext.status) {\r\n switch (ext.status) {\r\n case NativeStatusCode.ACCOUNT_UNAVAILABLE:\r\n return InteractionRequiredAuthError.createNativeAccountUnavailableError();\r\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\r\n return new InteractionRequiredAuthError(code, description);\r\n case NativeStatusCode.USER_CANCEL:\r\n return BrowserAuthError.createUserCancelledError();\r\n case NativeStatusCode.NO_NETWORK:\r\n return BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n return new NativeAuthError(code, description, ext);\r\n };\r\n /**\r\n * Creates user switch error when the user chooses a different account in the native broker prompt\r\n * @returns\r\n */\r\n NativeAuthError.createUserSwitchError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\r\n };\r\n /**\r\n * Creates a tokens not found error when the internal cache look up fails\r\n * @returns NativeAuthError: tokensNotFoundInCache\r\n */\r\n NativeAuthError.createTokensNotFoundInCacheError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.tokensNotFoundInCache.code, NativeAuthErrorMessage.tokensNotFoundInCache.desc);\r\n };\r\n return NativeAuthError;\r\n}(AuthError));\n\nexport { NativeAuthError, NativeAuthErrorMessage, NativeStatusCode };\n//# sourceMappingURL=NativeAuthError.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, PerformanceEvents, SilentFlowClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: error_1 instanceof AuthError && error_1.errorCode || undefined,\r\n subErrorCode: error_1 instanceof AuthError && error_1.subError || undefined,\r\n success: false\r\n });\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { account: account, forceRefresh: request.forceRefresh || false }])];\r\n }\r\n });\r\n });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n//# sourceMappingURL=SilentCacheClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __rest, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, TimeUtils, ScopeSet, ClientAuthError, IdTokenEntity, Constants, AccessTokenEntity, AuthenticationScheme, PopTokenGenerator, AccountEntity, AuthorityType, AuthToken, UrlString, OIDC_DEFAULT_SCOPES, PromptValue } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { TemporaryCacheKeys, NativeExtensionMethod, NativeConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { SilentCacheClient } from './SilentCacheClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeInteractionClient = /** @class */ (function (_super) {\r\n __extends(NativeInteractionClient, _super);\r\n function NativeInteractionClient(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, provider, accountId, nativeStorageImpl, correlationId) {\r\n var _this = _super.call(this, config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.accountId = accountId;\r\n _this.nativeMessageHandler = provider;\r\n _this.nativeStorageManager = nativeStorageImpl;\r\n _this.silentCacheClient = new SilentCacheClient(config, _this.nativeStorageManager, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n return _this;\r\n }\r\n /**\r\n * Acquire token from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeATMeasurement, reqTimestamp, nativeRequest, result, messageBody, response, validatedResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireToken called.\");\r\n nativeATMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.acquireTokensFromCache(this.accountId, nativeRequest)];\r\n case 3:\r\n result = _a.sent();\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: false,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, result];\r\n case 4:\r\n _a.sent();\r\n // continue with a native call for any and all errors\r\n this.logger.info(\"MSAL internal Cache does not contain tokens, proceed to make a native call\");\r\n return [3 /*break*/, 5];\r\n case 5:\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 6:\r\n response = _a.sent();\r\n validatedResponse = this.validateNativeResponse(response);\r\n return [2 /*return*/, this.handleNativeResponse(validatedResponse, nativeRequest, reqTimestamp)\r\n .then(function (result) {\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n nativeATMeasurement.endMeasurement({\r\n success: false,\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n isNativeBroker: true\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates silent flow request\r\n * @param request\r\n * @param cachedAccount\r\n * @returns CommonSilentFlowRequest\r\n */\r\n NativeInteractionClient.prototype.createSilentCacheRequest = function (request, cachedAccount) {\r\n return {\r\n authority: request.authority,\r\n correlationId: this.correlationId,\r\n scopes: ScopeSet.fromString(request.scope).asArray(),\r\n account: cachedAccount,\r\n forceRefresh: false,\r\n };\r\n };\r\n /**\r\n * Fetches the tokens from the cache if un-expired\r\n * @param nativeAccountId\r\n * @param request\r\n * @returns authenticationResult\r\n */\r\n NativeInteractionClient.prototype.acquireTokensFromCache = function (nativeAccountId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accountEntity, account, silentRequest, result, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n accountEntity = this.browserStorage.readAccountFromCacheWithNativeAccountId(nativeAccountId);\r\n if (!accountEntity) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n account = accountEntity.getAccountInfo();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n silentRequest = this.createSilentCacheRequest(request, account);\r\n return [4 /*yield*/, this.silentCacheClient.acquireToken(silentRequest)];\r\n case 2:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_2 = _a.sent();\r\n throw e_2;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Acquires a token from native platform then redirects to the redirectUri instead of returning the response\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeRequest, messageBody, response, e_3, navigationOptions, redirectUri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireTokenRedirect called.\");\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 3:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_3 = _a.sent();\r\n // Only throw fatal errors here to allow application to fallback to regular redirect. Otherwise proceed and the error will be thrown in handleRedirectPromise\r\n if (e_3 instanceof NativeAuthError && e_3.isFatal()) {\r\n throw e_3;\r\n }\r\n return [3 /*break*/, 5];\r\n case 5:\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, JSON.stringify(nativeRequest), true);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n redirectUri = this.config.auth.navigateToLoginRequestUrl ? window.location.href : this.getRedirectUri(request.redirectUri);\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(redirectUri, navigationOptions)];\r\n case 6:\r\n _a.sent(); // Need to treat this as external to ensure handleRedirectPromise is run again\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * If the previous page called native platform for a token using redirect APIs, send the same request again and return the response\r\n */\r\n NativeInteractionClient.prototype.handleRedirectPromise = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, prompt, request, messageBody, reqTimestamp, response, result, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleRedirectPromise called.\");\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n cachedRequest = this.browserStorage.getCachedNativeRequest();\r\n if (!cachedRequest) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n prompt = cachedRequest.prompt, request = __rest(cachedRequest, [\"prompt\"]);\r\n if (prompt) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window.\");\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: request\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise sending message to native broker.\");\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 2:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n result = this.handleNativeResponse(response, request, reqTimestamp);\r\n this.browserStorage.setInteractionInProgress(false);\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Logout from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.logout = function () {\r\n this.logger.trace(\"NativeInteractionClient - logout called.\");\r\n return Promise.reject(\"Logout not implemented yet\");\r\n };\r\n /**\r\n * Transform response from native platform into AuthenticationResult object which will be returned to the end user\r\n * @param response\r\n * @param request\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.handleNativeResponse = function (response, request, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mats, idTokenObj, authority, authorityPreferredCache, homeAccountIdentifier, accountEntity, responseScopes, accountProperties, uid, tid, responseAccessToken, responseTokenType, _a, popTokenGenerator, shrParameters, result, idTokenEntity, expiresIn, tokenExpirationSeconds, accessTokenEntity;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleNativeResponse called.\");\r\n mats = this.getMATSFromResponse(response);\r\n this.performanceClient.addStaticFields({\r\n extensionId: this.nativeMessageHandler.getExtensionId(),\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n matsBrokerVersion: mats ? mats.broker_version : undefined,\r\n matsAccountJoinOnStart: mats ? mats.account_join_on_start : undefined,\r\n matsAccountJoinOnEnd: mats ? mats.account_join_on_end : undefined,\r\n matsDeviceJoin: mats ? mats.device_join : undefined,\r\n matsPromptBehavior: mats ? mats.prompt_behavior : undefined,\r\n matsApiErrorCode: mats ? mats.api_error_code : undefined,\r\n matsUiVisible: mats ? mats.ui_visible : undefined,\r\n matsSilentCode: mats ? mats.silent_code : undefined,\r\n matsSilentBiSubCode: mats ? mats.silent_bi_sub_code : undefined,\r\n matsSilentMessage: mats ? mats.silent_message : undefined,\r\n matsSilentStatus: mats ? mats.silent_status : undefined,\r\n matsHttpStatus: mats ? mats.http_status : undefined,\r\n matsHttpEventCount: mats ? mats.http_event_count : undefined\r\n }, this.correlationId);\r\n if (response.account.id !== request.accountId) {\r\n // User switch in native broker prompt is not supported. All users must first sign in through web flow to ensure server state is in sync\r\n throw NativeAuthError.createUserSwitchError();\r\n }\r\n idTokenObj = new AuthToken(response.id_token || Constants.EMPTY_STRING, this.browserCrypto);\r\n return [4 /*yield*/, this.getDiscoveredAuthority(request.authority)];\r\n case 1:\r\n authority = _b.sent();\r\n authorityPreferredCache = authority.getPreferredCache();\r\n homeAccountIdentifier = AccountEntity.generateHomeAccountId(response.client_info || Constants.EMPTY_STRING, AuthorityType.Default, this.logger, this.browserCrypto, idTokenObj);\r\n accountEntity = AccountEntity.createAccount(response.client_info, homeAccountIdentifier, idTokenObj, undefined, undefined, undefined, authorityPreferredCache, response.account.id);\r\n this.browserStorage.setAccount(accountEntity);\r\n responseScopes = response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n accountProperties = response.account.properties || {};\r\n uid = accountProperties[\"UID\"] || idTokenObj.claims.oid || idTokenObj.claims.sub || Constants.EMPTY_STRING;\r\n tid = accountProperties[\"TenantId\"] || idTokenObj.claims.tid || Constants.EMPTY_STRING;\r\n responseTokenType = AuthenticationScheme.BEARER;\r\n _a = request.tokenType;\r\n switch (_a) {\r\n case AuthenticationScheme.POP: return [3 /*break*/, 2];\r\n }\r\n return [3 /*break*/, 4];\r\n case 2:\r\n // Set the token type to POP in the response\r\n responseTokenType = AuthenticationScheme.POP;\r\n // Check if native layer returned an SHR token\r\n if (response.shr) {\r\n this.logger.trace(\"handleNativeServerResponse: SHR is enabled in native layer\");\r\n responseAccessToken = response.shr;\r\n return [3 /*break*/, 5];\r\n }\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n shrParameters = {\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n /**\r\n * KeyID must be present in the native request from when the PoP key was generated in order for\r\n * PopTokenGenerator to query the full key for signing\r\n */\r\n if (!request.keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters)];\r\n case 3:\r\n responseAccessToken = _b.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n {\r\n responseAccessToken = response.access_token;\r\n }\r\n _b.label = 5;\r\n case 5:\r\n result = {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes.asArray(),\r\n account: accountEntity.getAccountInfo(),\r\n idToken: response.id_token,\r\n idTokenClaims: idTokenObj.claims,\r\n accessToken: responseAccessToken,\r\n fromCache: mats ? this.isResponseFromCache(mats) : false,\r\n expiresOn: new Date(Number(reqTimestamp + response.expires_in) * 1000),\r\n tokenType: responseTokenType,\r\n correlationId: this.correlationId,\r\n state: response.state,\r\n fromNativeBroker: true\r\n };\r\n idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountIdentifier, request.authority, response.id_token || Constants.EMPTY_STRING, request.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n this.nativeStorageManager.setIdTokenCredential(idTokenEntity);\r\n expiresIn = (responseTokenType === AuthenticationScheme.POP)\r\n ? Constants.SHR_NONCE_VALIDITY\r\n : (typeof response.expires_in === \"string\"\r\n ? parseInt(response.expires_in, 10)\r\n : response.expires_in) || 0;\r\n tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountIdentifier, request.authority, responseAccessToken, request.clientId, tid, responseScopes.printScopes(), tokenExpirationSeconds, 0, this.browserCrypto);\r\n this.nativeStorageManager.setAccessTokenCredential(accessTokenEntity);\r\n // Remove any existing cached tokens for this account in browser storage\r\n this.browserStorage.removeAccountContext(accountEntity).catch(function (e) {\r\n _this.logger.error(\"Error occurred while removing account context from browser storage. \" + e);\r\n });\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Validates native platform response before processing\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.validateNativeResponse = function (response) {\r\n if (response.hasOwnProperty(\"access_token\") &&\r\n response.hasOwnProperty(\"id_token\") &&\r\n response.hasOwnProperty(\"client_info\") &&\r\n response.hasOwnProperty(\"account\") &&\r\n response.hasOwnProperty(\"scope\") &&\r\n response.hasOwnProperty(\"expires_in\")) {\r\n return response;\r\n }\r\n else {\r\n throw NativeAuthError.createUnexpectedError(\"Response missing expected properties.\");\r\n }\r\n };\r\n /**\r\n * Gets MATS telemetry from native response\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.getMATSFromResponse = function (response) {\r\n if (response.properties.MATS) {\r\n try {\r\n return JSON.parse(response.properties.MATS);\r\n }\r\n catch (e) {\r\n this.logger.error(\"NativeInteractionClient - Error parsing MATS telemetry, returning null instead\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns whether or not response came from native cache\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.isResponseFromCache = function (mats) {\r\n if (typeof mats.is_cached === \"undefined\") {\r\n this.logger.verbose(\"NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false.\");\r\n return false;\r\n }\r\n return !!mats.is_cached;\r\n };\r\n /**\r\n * Translates developer provided request object into NativeRequest object\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.initializeNativeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, canonicalAuthority, scopes, remainingProperties, scopeSet, getPrompt, validatedRequest, shrParameters, popTokenGenerator, reqCnfData;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - initializeNativeRequest called\");\r\n authority = request.authority || this.config.auth.authority;\r\n canonicalAuthority = new UrlString(authority);\r\n canonicalAuthority.validateAsUri();\r\n scopes = request.scopes, remainingProperties = __rest(request, [\"scopes\"]);\r\n scopeSet = new ScopeSet(scopes || []);\r\n scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);\r\n getPrompt = function () {\r\n // If request is silent, prompt is always none\r\n switch (_this.apiId) {\r\n case ApiId.ssoSilent:\r\n case ApiId.acquireTokenSilent_silentFlow:\r\n _this.logger.trace(\"initializeNativeRequest: silent request sets prompt to none\");\r\n return PromptValue.NONE;\r\n }\r\n // Prompt not provided, request may proceed and native broker decides if it needs to prompt\r\n if (!request.prompt) {\r\n _this.logger.trace(\"initializeNativeRequest: prompt was not provided\");\r\n return undefined;\r\n }\r\n // If request is interactive, check if prompt provided is allowed to go directly to native broker\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n _this.logger.trace(\"initializeNativeRequest: prompt is compatible with native flow\");\r\n return request.prompt;\r\n default:\r\n _this.logger.trace(\"initializeNativeRequest: prompt = \" + request.prompt + \" is not compatible with native flow\");\r\n throw BrowserAuthError.createNativePromptParameterNotSupportedError();\r\n }\r\n };\r\n validatedRequest = __assign(__assign({}, remainingProperties), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scope: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), prompt: getPrompt(), correlationId: this.correlationId, tokenType: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), { telemetry: NativeConstants.MATS_TELEMETRY }), extendedExpiryToken: false // Make this configurable?\r\n });\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n shrParameters = {\r\n resourceRequestUri: request.resourceRequestUri,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(shrParameters)];\r\n case 1:\r\n reqCnfData = _a.sent();\r\n // to reduce the URL length, it is recommended to send the hash of the req_cnf instead of the whole string\r\n validatedRequest.reqCnf = reqCnfData.reqCnfHash;\r\n validatedRequest.keyId = reqCnfData.kid;\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return NativeInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { NativeInteractionClient };\n//# sourceMappingURL=NativeInteractionClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../../_virtual/_tslib.js';\nimport { NativeConstants, NativeExtensionMethod } from '../../utils/BrowserConstants.js';\nimport { AuthError, AuthenticationScheme } from '@azure/msal-common';\nimport { NativeAuthError } from '../../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeMessageHandler = /** @class */ (function () {\r\n function NativeMessageHandler(logger, handshakeTimeoutMs, extensionId) {\r\n this.logger = logger;\r\n this.handshakeTimeoutMs = handshakeTimeoutMs;\r\n this.extensionId = extensionId;\r\n this.resolvers = new Map(); // Used for non-handshake messages\r\n this.handshakeResolvers = new Map(); // Used for handshake messages\r\n this.responseId = 0;\r\n this.messageChannel = new MessageChannel();\r\n this.windowListener = this.onWindowMessage.bind(this); // Window event callback doesn't have access to 'this' unless it's bound\r\n }\r\n /**\r\n * Sends a given message to the extension and resolves with the extension response\r\n * @param body\r\n */\r\n NativeMessageHandler.prototype.sendMessage = function (body) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendMessage called.\");\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: body\r\n };\r\n this.logger.trace(\"NativeMessageHandler - Sending request to browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Sending request to browser extension: \" + JSON.stringify(req));\r\n this.messageChannel.port1.postMessage(req);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.resolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns an instance of the MessageHandler that has successfully established a connection with an extension\r\n * @param logger\r\n * @param handshakeTimeoutMs\r\n */\r\n NativeMessageHandler.createProvider = function (logger, handshakeTimeoutMs) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var preferredProvider, backupProvider;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n logger.trace(\"NativeMessageHandler - createProvider called.\");\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 5]);\r\n preferredProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, NativeConstants.PREFERRED_EXTENSION_ID);\r\n return [4 /*yield*/, preferredProvider.sendHandshakeRequest()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, preferredProvider];\r\n case 3:\r\n _a.sent();\r\n backupProvider = new NativeMessageHandler(logger, handshakeTimeoutMs);\r\n return [4 /*yield*/, backupProvider.sendHandshakeRequest()];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/, backupProvider];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Send handshake request helper.\r\n */\r\n NativeMessageHandler.prototype.sendHandshakeRequest = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendHandshakeRequest called.\");\r\n // Register this event listener before sending handshake\r\n window.addEventListener(\"message\", this.windowListener, false); // false is important, because content script message processing should work first\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: {\r\n method: NativeExtensionMethod.HandshakeRequest\r\n }\r\n };\r\n this.messageChannel.port1.onmessage = function (event) {\r\n _this.onChannelMessage(event);\r\n };\r\n window.postMessage(req, window.origin, [this.messageChannel.port2]);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.handshakeResolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n _this.timeoutId = window.setTimeout(function () {\r\n /*\r\n * Throw an error if neither HandshakeResponse nor original Handshake request are received in a reasonable timeframe.\r\n * This typically suggests an event handler stopped propagation of the Handshake request but did not respond to it on the MessageChannel port\r\n */\r\n window.removeEventListener(\"message\", _this.windowListener, false);\r\n _this.messageChannel.port1.close();\r\n _this.messageChannel.port2.close();\r\n reject(BrowserAuthError.createNativeHandshakeTimeoutError());\r\n _this.handshakeResolvers.delete(req.responseId);\r\n }, _this.handshakeTimeoutMs); // Use a reasonable timeout in milliseconds here\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Invoked when a message is posted to the window. If a handshake request is received it means the extension is not installed.\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onWindowMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onWindowMessage called\");\r\n // We only accept messages from ourselves\r\n if (event.source !== window) {\r\n return;\r\n }\r\n var request = event.data;\r\n if (!request.channel || request.channel !== NativeConstants.CHANNEL_ID) {\r\n return;\r\n }\r\n if (request.extensionId && request.extensionId !== this.extensionId) {\r\n return;\r\n }\r\n if (request.body.method === NativeExtensionMethod.HandshakeRequest) {\r\n // If we receive this message back it means no extension intercepted the request, meaning no extension supporting handshake protocol is installed\r\n this.logger.verbose(request.extensionId ? \"Extension with id: \" + request.extensionId + \" not installed\" : \"No extension installed\");\r\n clearTimeout(this.timeoutId);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n if (handshakeResolver) {\r\n handshakeResolver.reject(BrowserAuthError.createNativeExtensionNotInstalledError());\r\n }\r\n }\r\n };\r\n /**\r\n * Invoked when a message is received from the extension on the MessageChannel port\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onChannelMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onChannelMessage called.\");\r\n var request = event.data;\r\n var resolver = this.resolvers.get(request.responseId);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n try {\r\n var method = request.body.method;\r\n if (method === NativeExtensionMethod.Response) {\r\n if (!resolver) {\r\n return;\r\n }\r\n var response = request.body.response;\r\n this.logger.trace(\"NativeMessageHandler - Received response from browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Received response from browser extension: \" + JSON.stringify(response));\r\n if (response.status !== \"Success\") {\r\n resolver.reject(NativeAuthError.createError(response.code, response.description, response.ext));\r\n }\r\n else if (response.result) {\r\n if (response.result[\"code\"] && response.result[\"description\"]) {\r\n resolver.reject(NativeAuthError.createError(response.result[\"code\"], response.result[\"description\"], response.result[\"ext\"]));\r\n }\r\n else {\r\n resolver.resolve(response.result);\r\n }\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Event does not contain result.\");\r\n }\r\n this.resolvers.delete(request.responseId);\r\n }\r\n else if (method === NativeExtensionMethod.HandshakeResponse) {\r\n if (!handshakeResolver) {\r\n return;\r\n }\r\n clearTimeout(this.timeoutId); // Clear setTimeout\r\n window.removeEventListener(\"message\", this.windowListener, false); // Remove 'No extension' listener\r\n this.extensionId = request.extensionId;\r\n this.extensionVersion = request.body.version;\r\n this.logger.verbose(\"NativeMessageHandler - Received HandshakeResponse from extension: \" + this.extensionId);\r\n handshakeResolver.resolve();\r\n this.handshakeResolvers.delete(request.responseId);\r\n }\r\n // Do nothing if method is not Response or HandshakeResponse\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error parsing response from WAM Extension\");\r\n this.logger.errorPii(\"Error parsing response from WAM Extension: \" + err.toString());\r\n this.logger.errorPii(\"Unable to parse \" + event);\r\n if (resolver) {\r\n resolver.reject(err);\r\n }\r\n else if (handshakeResolver) {\r\n handshakeResolver.reject(err);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the Id for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionId = function () {\r\n return this.extensionId;\r\n };\r\n /**\r\n * Returns the version for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionVersion = function () {\r\n return this.extensionVersion;\r\n };\r\n /**\r\n * Returns boolean indicating whether or not the request should attempt to use native broker\r\n * @param logger\r\n * @param config\r\n * @param nativeExtensionProvider\r\n * @param authenticationScheme\r\n */\r\n NativeMessageHandler.isNativeAvailable = function (config, logger, nativeExtensionProvider, authenticationScheme) {\r\n logger.trace(\"isNativeAvailable called\");\r\n if (!config.system.allowNativeBroker) {\r\n logger.trace(\"isNativeAvailable: allowNativeBroker is not enabled, returning false\");\r\n // Developer disabled WAM\r\n return false;\r\n }\r\n if (!nativeExtensionProvider) {\r\n logger.trace(\"isNativeAvailable: WAM extension provider is not initialized, returning false\");\r\n // Extension is not available\r\n return false;\r\n }\r\n if (authenticationScheme) {\r\n switch (authenticationScheme) {\r\n case AuthenticationScheme.BEARER:\r\n case AuthenticationScheme.POP:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is supported, returning true\");\r\n return true;\r\n default:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is not supported, returning false\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return NativeMessageHandler;\r\n}());\n\nexport { NativeMessageHandler };\n//# sourceMappingURL=NativeMessageHandler.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, AuthError, PerformanceEvents, Constants, ThrottlingUtils, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { TemporaryCacheKeys, ApiId, InteractionType } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, handleBackButton, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Redirect)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n handleBackButton = function (event) {\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n if (event.persisted) {\r\n _this.logger.verbose(\"Page was restored from back/forward cache. Clearing temporary cache.\");\r\n _this.browserStorage.cleanRequestByState(validRequest.state);\r\n }\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme) }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n window.addEventListener(\"pageshow\", handleBackButton);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 6: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n window.removeEventListener(\"pageshow\", handleBackButton);\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, serverParams, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n serverParams = UrlString.getDeserializedHash(responseHash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Redirect);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || Constants.EMPTY_STRING;\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!(!BrowserUtils.isInIframe() || this.config.system.allowRedirectInIframe)) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n if (isResponseHash) {\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverParams, nativeInteractionClient, userRequestState, currentAuthority, authClient, interactionHandler;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, cachedRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, cachedRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, cachedRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validLogoutRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n // Ensure interaction is not in progress\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7:\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n//# sourceMappingURL=RedirectClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { OIDC_DEFAULT_SCOPES, StringUtils, UrlString, Constants, AuthError, ThrottlingUtils, ProtocolUtils, PerformanceEvents } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConstants, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionHandler } from '../interaction_handler/InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.unloadWindow = _this.unloadWindow.bind(_this);\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = this.generateLogoutPopupName(validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (request, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, validRequest, authCodeRequest, authClient, isNativeBroker, fetchNativeAccountIdMeasurement, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, serverParams, state_1, nativeInteractionClient, userRequestState, result, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Popup)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 8, , 9]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n isNativeBroker = NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme);\r\n fetchNativeAccountIdMeasurement = void 0;\r\n if (isNativeBroker) {\r\n fetchNativeAccountIdMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.FetchAccountIdWithNativeBroker, request.correlationId);\r\n }\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: isNativeBroker }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = this.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.monitorPopupForHash(popupWindow)];\r\n case 6:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state_1 = this.validateAndExtractStateFromHash(serverParams, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n // end measurement for server call with native brokering enabled\r\n if (fetchNativeAccountIdMeasurement) {\r\n fetchNativeAccountIdMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true\r\n });\r\n }\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, validRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state_1).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, validRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state_1);\r\n })];\r\n }\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state_1, authClient.authority, this.networkClient)];\r\n case 7:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 8:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupWindow, navigationOptions, absoluteUrl, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupWindow = this.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.waitForLogoutPopup(popupWindow)];\r\n case 4:\r\n _a.sent();\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecting main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_2 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_2);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n throw e_2;\r\n case 6:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupClient.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n this.logger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - timeout for processing hash once popup is redirected back to application\r\n */\r\n PopupClient.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = _this.config.system.windowHashTimeout / _this.config.system.pollIntervalMilliseconds;\r\n var ticks = 0;\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var hash = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n hash = popupWindow.location.hash;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - popup window is on same origin as caller\");\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (hash) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - found hash in url\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n if (UrlString.hashContainsKnownProperties(hash)) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - hash contains known properties, returning.\");\r\n resolve(hash);\r\n }\r\n else {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely.\");\r\n _this.logger.errorPii(\"PopupHandler.monitorPopupForHash - hash found: \" + hash);\r\n reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError());\r\n }\r\n }\r\n else if (ticks > maxTicks) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - unable to find hash in url, timing out\");\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorPopupTimeoutError());\r\n }\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * Waits for user interaction in logout popup window\r\n * @param popupWindow\r\n * @returns\r\n */\r\n PopupClient.prototype.waitForLogoutPopup = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.waitForLogoutPopup - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n resolve();\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing.\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n resolve();\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupClient.prototype.openPopup = function (urlNavigate, popupParams) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = this.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n PopupClient.prototype.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;\r\n var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;\r\n var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;\r\n var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n this.logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n this.logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n this.logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n this.logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n }\r\n return window.open(urlNavigate, popupName, \"width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupClient.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupClient.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generatePopupName = function (scopes, authority) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + scopes.join(\"-\") + \".\" + authority + \".\" + this.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generateLogoutPopupName = function (request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + homeAccountId + \".\" + this.correlationId;\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n//# sourceMappingURL=PopupClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, AzureCloudInstance, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\nvar DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system, userInputTelemetry = _a.telemetry;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: Constants.EMPTY_STRING,\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: Constants.EMPTY_STRING,\r\n authorityMetadata: Constants.EMPTY_STRING,\r\n redirectUri: Constants.EMPTY_STRING,\r\n postLogoutRedirectUri: Constants.EMPTY_STRING,\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: Constants.EMPTY_STRING\r\n },\r\n skipAuthorityMetadataCache: false,\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () {\r\n // allow users to not set logger call back \r\n },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false, allowNativeBroker: false, nativeBrokerHandshakeTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.nativeBrokerHandshakeTimeout) || DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, pollIntervalMilliseconds: BrowserConstants.DEFAULT_POLL_INTERVAL_MS, cryptoOptions: {\r\n useMsrCrypto: false,\r\n entropy: undefined\r\n } });\r\n var providedSystemOptions = __assign(__assign({}, userInputSystem), { loggerOptions: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loggerOptions) || DEFAULT_LOGGER_OPTIONS });\r\n var DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: Constants.EMPTY_STRING,\r\n appVersion: Constants.EMPTY_STRING\r\n }\r\n };\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), providedSystemOptions),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), userInputTelemetry)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n//# sourceMappingURL=Configuration.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.navigateFrameWait = systemOptions.navigateFrameWait;\r\n _this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, this.loadFrameSync(requestUrl)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, _this.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants, StringUtils, PromptValue, UrlString, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, silentRequest, serverTelemetryManager, authClient, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check that prompt is set to none or no_session, throw error if it is set to anything else.\r\n if (request.prompt && (request.prompt !== PromptValue.NONE) && (request.prompt !== PromptValue.NO_SESSION)) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: request.prompt || PromptValue.NONE }), InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 5, , 6]);\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientTokenHelper, request.correlationId);\r\n return [4 /*yield*/, this.silentTokenHelper(authClient, silentRequest).then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: false,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e_1 instanceof AuthError && e_1.errorCode || undefined,\r\n subErrorCode: e_1 instanceof AuthError && e_1.subError || undefined,\r\n success: false\r\n });\r\n throw e_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (authClient, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authCodeRequest, navigateUrl, silentHandler, msalFrame, hash, serverParams, state, nativeInteractionClient, userRequestState;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientTokenHelper, silentRequest.correlationId);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 1:\r\n authCodeRequest = _a.sent();\r\n // Create authorize request url\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.GetAuthCodeUrl, silentRequest.correlationId);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, silentRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, silentRequest.authenticationScheme) }))];\r\n case 2:\r\n navigateUrl = _a.sent();\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Get the frame handle for the silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerInitiateAuthRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 3:\r\n msalFrame = _a.sent();\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerMonitorIframeForHash, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 4:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Silent, authCodeRequest.correlationId);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, this.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, silentRequest), { state: userRequestState, prompt: silentRequest.prompt || PromptValue.NONE })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n // Handle response from hash string\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromHash, silentRequest.correlationId);\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n//# sourceMappingURL=SilentIframeClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PerformanceEvents, AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, _a, acquireTokenMeasurement, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 2:\r\n refreshTokenClient = _b.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)\r\n .then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n//# sourceMappingURL=SilentRefreshClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { AccountEntity, CacheManager } from '@azure/msal-common';\nimport { EventType } from './EventType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange = this.handleAccountCacheChange.bind(this);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.enableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.disableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n EventHandler.prototype.handleAccountCacheChange = function (e) {\r\n try {\r\n var cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n var parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" || !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n//# sourceMappingURL=EventHandler.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n//# sourceMappingURL=MathUtils.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = Constants.EMPTY_STRING;\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.prototype.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n//# sourceMappingURL=GuidGenerator.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = Constants.EMPTY_STRING;\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserStringUtils.getSortedObjectString = function (obj) {\r\n return JSON.stringify(obj, Object.keys(obj).sort());\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n//# sourceMappingURL=BrowserStringUtils.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = Constants.EMPTY_STRING;\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, Constants.EMPTY_STRING);\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n//# sourceMappingURL=PkceGenerator.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ModernBrowserCrypto = /** @class */ (function () {\r\n function ModernBrowserCrypto() {\r\n }\r\n ModernBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.crypto.getRandomValues(dataBuffer);\r\n };\r\n ModernBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return ModernBrowserCrypto;\r\n}());\n\nexport { ModernBrowserCrypto };\n//# sourceMappingURL=ModernBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsrBrowserCrypto = /** @class */ (function () {\r\n function MsrBrowserCrypto() {\r\n }\r\n MsrBrowserCrypto.prototype.initPrng = function (entropy) {\r\n // Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)\r\n return window.msrCrypto.initPrng(__spread(entropy));\r\n };\r\n MsrBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.msrCrypto.getRandomValues(dataBuffer);\r\n };\r\n MsrBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return MsrBrowserCrypto;\r\n}());\n\nexport { MsrBrowserCrypto };\n//# sourceMappingURL=MsrBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsBrowserCrypto = /** @class */ (function () {\r\n function MsBrowserCrypto() {\r\n }\r\n MsBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window[\"msCrypto\"].getRandomValues(dataBuffer);\r\n };\r\n MsBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(algorithm, extractable, keyUsages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, Constants.EMPTY_STRING)\r\n .replace(/\\n/g, Constants.EMPTY_STRING)\r\n .replace(/\\t/g, Constants.EMPTY_STRING)\r\n .split(\" \").join(Constants.EMPTY_STRING)\r\n .replace(\"\\u0000\", Constants.EMPTY_STRING);\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserStringUtils.getSortedObjectString(keyData);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(algorithm, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n return MsBrowserCrypto;\r\n}());\n\nexport { MsBrowserCrypto };\n//# sourceMappingURL=MsBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { ModernBrowserCrypto } from './ModernBrowserCrypto.js';\nimport { MsrBrowserCrypto } from './MsrBrowserCrypto.js';\nimport { MsBrowserCrypto } from './MsBrowserCrypto.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto(logger, cryptoOptions) {\r\n var _a, _b;\r\n this.logger = logger;\r\n this.cryptoOptions = cryptoOptions;\r\n if (this.hasBrowserCrypto()) {\r\n // Use standard modern web crypto if available\r\n this.logger.verbose(\"BrowserCrypto: modern crypto interface available\");\r\n this.subtleCrypto = new ModernBrowserCrypto();\r\n }\r\n else if (this.hasIECrypto()) {\r\n // For IE11, use msCrypto interface\r\n this.logger.verbose(\"BrowserCrypto: MS crypto interface available\");\r\n this.subtleCrypto = new MsBrowserCrypto();\r\n }\r\n else if (this.hasMsrCrypto() && ((_a = this.cryptoOptions) === null || _a === void 0 ? void 0 : _a.useMsrCrypto)) {\r\n // For other browsers, use MSR Crypto if found\r\n this.logger.verbose(\"BrowserCrypto: MSR crypto interface available\");\r\n this.subtleCrypto = new MsrBrowserCrypto();\r\n }\r\n else {\r\n if (this.hasMsrCrypto()) {\r\n this.logger.info(\"BrowserCrypto: MSR Crypto interface available but system.cryptoOptions.useMsrCrypto not enabled\");\r\n }\r\n this.logger.error(\"BrowserCrypto: No crypto interfaces available.\");\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto, msCrypto, or msrCrypto interfaces not available.\");\r\n }\r\n // Mainly needed for MSR Crypto: https://github.com/microsoft/MSR-JavaScript-Crypto#random-number-generator-prng\r\n if (this.subtleCrypto.initPrng) {\r\n this.logger.verbose(\"BrowserCrypto: Interface requires entropy\");\r\n if (!((_b = this.cryptoOptions) === null || _b === void 0 ? void 0 : _b.entropy)) {\r\n this.logger.error(\"BrowserCrypto: Interface requires entropy but none provided.\");\r\n throw BrowserConfigurationAuthError.createEntropyNotProvided();\r\n }\r\n this.logger.verbose(\"BrowserCrypto: Entropy provided\");\r\n this.subtleCrypto.initPrng(this.cryptoOptions.entropy);\r\n }\r\n this.keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Check whether MSR crypto polyfill is available\r\n */\r\n BrowserCrypto.prototype.hasMsrCrypto = function () {\r\n return \"msrCrypto\" in window;\r\n };\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n // MSR Crypto wants object with name property, instead of string\r\n return [2 /*return*/, this.subtleCrypto.digest({ name: S256_HASH_ALG }, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return this.subtleCrypto.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.exportKey(key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n//# sourceMappingURL=BrowserCrypto.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function () { return reject(BrowserAuthError.createDatabaseUnavailableError()); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Closes the connection to IndexedDB database when all pending transactions\r\n * complete.\r\n */\r\n DatabaseStorage.prototype.closeConnection = function () {\r\n var db = this.db;\r\n if (db && this.dbOpen) {\r\n db.close();\r\n this.dbOpen = false;\r\n }\r\n };\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n DatabaseStorage.prototype.validateDbIsOpen = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.setItem = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbPut.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbDelete.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n DatabaseStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n DatabaseStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n DatabaseStorage.prototype.deleteDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // Check if database being deleted exists\r\n if (this.db && this.dbOpen) {\r\n this.closeConnection();\r\n }\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n deleteDbRequest.addEventListener(\"success\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"blocked\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"error\", function () { return reject(false); });\r\n })];\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n//# sourceMappingURL=DatabaseStorage.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { DatabaseStorage } from './DatabaseStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nvar AsyncMemoryStorage = /** @class */ (function () {\r\n function AsyncMemoryStorage(logger, storeName) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n this.storeName = storeName;\r\n }\r\n AsyncMemoryStorage.prototype.handleDatabaseAccessError = function (error) {\r\n if (error instanceof BrowserAuthError && error.errorCode === BrowserAuthErrorMessage.databaseUnavailable.code) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var item, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n item = this.inMemoryCache.getItem(key);\r\n if (!!item) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getItem(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.handleDatabaseAccessError(e_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, item];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n AsyncMemoryStorage.prototype.setItem = function (key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.setItem(key, value);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.setItem(key, value)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n this.handleDatabaseAccessError(e_2);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.removeItem(key);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.removeItem(key)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _a.sent();\r\n this.handleDatabaseAccessError(e_3);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n AsyncMemoryStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cacheKeys, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cacheKeys = this.inMemoryCache.getKeys();\r\n if (!(cacheKeys.length === 0)) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getKeys()];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.handleDatabaseAccessError(e_4);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, cacheKeys];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var containsKey, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n containsKey = this.inMemoryCache.containsKey(key);\r\n if (!!containsKey) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.containsKey(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_5 = _a.sent();\r\n this.handleDatabaseAccessError(e_5);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, containsKey];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears in-memory Map\r\n */\r\n AsyncMemoryStorage.prototype.clearInMemory = function () {\r\n // InMemory cache is a Map instance, clear is straightforward\r\n this.logger.verbose(\"Deleting in-memory keystore \" + this.storeName);\r\n this.inMemoryCache.clear();\r\n this.logger.verbose(\"In-memory keystore \" + this.storeName + \" deleted\");\r\n };\r\n /**\r\n * Tries to delete the IndexedDB database\r\n * @returns\r\n */\r\n AsyncMemoryStorage.prototype.clearPersistent = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dbDeleted, e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.logger.verbose(\"Deleting persistent keystore\");\r\n return [4 /*yield*/, this.indexedDBCache.deleteDatabase()];\r\n case 1:\r\n dbDeleted = _a.sent();\r\n if (dbDeleted) {\r\n this.logger.verbose(\"Persistent keystore deleted\");\r\n }\r\n return [2 /*return*/, dbDeleted];\r\n case 2:\r\n e_6 = _a.sent();\r\n this.handleDatabaseAccessError(e_6);\r\n return [2 /*return*/, false];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return AsyncMemoryStorage;\r\n}());\n\nexport { AsyncMemoryStorage };\n//# sourceMappingURL=AsyncMemoryStorage.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AsyncMemoryStorage } from './AsyncMemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CryptoKeyStoreNames;\r\n(function (CryptoKeyStoreNames) {\r\n CryptoKeyStoreNames[\"asymmetricKeys\"] = \"asymmetricKeys\";\r\n CryptoKeyStoreNames[\"symmetricKeys\"] = \"symmetricKeys\";\r\n})(CryptoKeyStoreNames || (CryptoKeyStoreNames = {}));\r\n/**\r\n * MSAL CryptoKeyStore DB Version 2\r\n */\r\nvar CryptoKeyStore = /** @class */ (function () {\r\n function CryptoKeyStore(logger) {\r\n this.logger = logger;\r\n this.asymmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.asymmetricKeys);\r\n this.symmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.symmetricKeys);\r\n }\r\n CryptoKeyStore.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Delete in-memory keystores\r\n this.asymmetricKeys.clearInMemory();\r\n this.symmetricKeys.clearInMemory();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.asymmetricKeys.clearPersistent()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof Error) {\r\n this.logger.error(\"Clearing keystore failed with error: \" + e_1.message);\r\n }\r\n else {\r\n this.logger.error(\"Clearing keystore failed with unknown error\");\r\n }\r\n return [2 /*return*/, false];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return CryptoKeyStore;\r\n}());\n\nexport { CryptoKeyStore, CryptoKeyStoreNames };\n//# sourceMappingURL=CryptoKeyStore.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, JoseHeader } from '@azure/msal-common';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { CryptoKeyStore } from '../cache/CryptoKeyStore.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps(logger, performanceClient, cryptoConfig) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto(this.logger, cryptoConfig);\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new CryptoKeyStore(this.logger);\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var publicKeyThumbMeasurement, keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n publicKeyThumbMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserStringUtils.getSortedObjectString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.hashString(publicJwkString)];\r\n case 3:\r\n publicJwkHash = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _b.sent();\r\n // Store Keypair data in keystore\r\n return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n })];\r\n case 6:\r\n // Store Keypair data in keystore\r\n _b.sent();\r\n if (publicKeyThumbMeasurement) {\r\n publicKeyThumbMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n CryptoOps.prototype.removeTokenBindingKey = function (kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyFound;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];\r\n case 2:\r\n keyFound = _a.sent();\r\n return [2 /*return*/, !keyFound];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n CryptoOps.prototype.clearKeystore = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.clear()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid, correlationId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n signJwtMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\r\n return [4 /*yield*/, this.cache.asymmetricKeys.getItem(kid)];\r\n case 1:\r\n cachedKeyPair = _b.sent();\r\n if (!cachedKeyPair) {\r\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\r\n }\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);\r\n encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));\r\n shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });\r\n encodedShrHeader = this.b64Encode.urlEncode(shrHeader);\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedShrHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _b.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n signedJwt = tokenString + \".\" + encodedSignature;\r\n if (signJwtMeasurement) {\r\n signJwtMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, signedJwt];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n CryptoOps.prototype.hashString = function (plainText) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hashBuffer, hashBytes;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.sha256Digest(plainText)];\r\n case 1:\r\n hashBuffer = _a.sent();\r\n hashBytes = new Uint8Array(hashBuffer);\r\n return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n//# sourceMappingURL=CryptoOps.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceMeasurement = /** @class */ (function () {\r\n function BrowserPerformanceMeasurement(name, correlationId) {\r\n this.correlationId = correlationId;\r\n this.measureName = \"msal.measure.\" + name + \".\" + this.correlationId;\r\n this.startMark = \"msal.start.\" + name + \".\" + this.correlationId;\r\n this.endMark = \"msal.end.\" + name + \".\" + this.correlationId;\r\n }\r\n BrowserPerformanceMeasurement.supportsBrowserPerformance = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" &&\r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\";\r\n };\r\n BrowserPerformanceMeasurement.prototype.startMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.endMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n var entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n var durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n };\r\n return BrowserPerformanceMeasurement;\r\n}());\n\nexport { BrowserPerformanceMeasurement };\n//# sourceMappingURL=BrowserPerformanceMeasurement.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceClient } from '@azure/msal-common';\nimport { BrowserCrypto } from '../crypto/BrowserCrypto.js';\nimport { GuidGenerator } from '../crypto/GuidGenerator.js';\nimport { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceClient = /** @class */ (function (_super) {\r\n __extends(BrowserPerformanceClient, _super);\r\n function BrowserPerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, cryptoOptions) {\r\n var _this = _super.call(this, clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) || this;\r\n _this.browserCrypto = new BrowserCrypto(_this.logger, cryptoOptions);\r\n _this.guidGenerator = new GuidGenerator(_this.browserCrypto);\r\n return _this;\r\n }\r\n BrowserPerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return new BrowserPerformanceMeasurement(measureName, correlationId);\r\n };\r\n BrowserPerformanceClient.prototype.generateId = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n BrowserPerformanceClient.prototype.getPageVisibility = function () {\r\n var _a;\r\n return ((_a = document.visibilityState) === null || _a === void 0 ? void 0 : _a.toString()) || null;\r\n };\r\n BrowserPerformanceClient.prototype.supportsBrowserPerformanceNow = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.now === \"function\";\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial<PerformanceEvent>) => PerformanceEvent| null)}\r\n */\r\n BrowserPerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n // Capture page visibilityState and then invoke start/end measurement\r\n var startPageVisibility = this.getPageVisibility();\r\n var inProgressEvent = _super.prototype.startMeasurement.call(this, measureName, correlationId);\r\n return __assign(__assign({}, inProgressEvent), { endMeasurement: function (event) {\r\n return inProgressEvent.endMeasurement(__assign({ startPageVisibility: startPageVisibility, endPageVisibility: _this.getPageVisibility() }, event));\r\n } });\r\n };\r\n /**\r\n * Adds pre-queue time to preQueueTimeByCorrelationId map.\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to set telemetry queue time\");\r\n return;\r\n }\r\n var preQueueTimesByEvents = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (preQueueTimesByEvents) {\r\n preQueueTimesByEvents.set(eventName, window.performance.now());\r\n this.preQueueTimeByCorrelationId.set(correlationId, preQueueTimesByEvents);\r\n }\r\n else {\r\n var preQueueTimes = new Map();\r\n preQueueTimes.set(eventName, window.performance.now());\r\n this.preQueueTimeByCorrelationId.set(correlationId, preQueueTimes);\r\n }\r\n };\r\n /**\r\n * Calculates and adds queue time measurement for given performance event.\r\n *\r\n * @param {PerformanceEvents} name\r\n * @param {?string} correlationId\r\n * @param {?number} preQueueTime\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to add queue measurement for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to add queue measurement\");\r\n return;\r\n }\r\n var preQueueTime = _super.prototype.getPreQueueTime.call(this, eventName, correlationId);\r\n if (!preQueueTime) {\r\n return;\r\n }\r\n var currentTime = window.performance.now();\r\n var queueTime = _super.prototype.calculateQueuedTime.call(this, preQueueTime, currentTime);\r\n return _super.prototype.addQueueMeasurement.call(this, eventName, correlationId, queueTime);\r\n };\r\n return BrowserPerformanceClient;\r\n}(PerformanceClient));\n\nexport { BrowserPerformanceClient };\n//# sourceMappingURL=BrowserPerformanceClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { AuthToken, CacheRecord, Authority, AccountEntity, IdTokenEntity, ScopeSet, AccessTokenEntity, RefreshTokenEntity, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nvar TokenCache = /** @class */ (function () {\r\n function TokenCache(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @returns `AuthenticationResult` for the response that was loaded.\r\n */\r\n TokenCache.prototype.loadExternalTokens = function (request, response, options) {\r\n this.logger.info(\"TokenCache - loadExternalTokens called\");\r\n if (!response.id_token) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes id token.\");\r\n }\r\n var idToken = new AuthToken(response.id_token, this.cryptoObj);\r\n var cacheRecord;\r\n var authority;\r\n if (request.account) {\r\n var cacheRecordAccount = this.loadAccount(idToken, request.account.environment, undefined, undefined, request.account.homeAccountId);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));\r\n }\r\n else if (request.authority) {\r\n var authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);\r\n var authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);\r\n // \"clientInfo\" from options takes precedence over \"clientInfo\" in response\r\n if (options.clientInfo) {\r\n this.logger.trace(\"TokenCache - homeAccountId from options\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, options.clientInfo, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else if (response.client_info) {\r\n this.logger.trace(\"TokenCache - homeAccountId from response\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, response.client_info, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide clientInfo in the response or options.\");\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide a request with an account or a request with authority.\");\r\n }\r\n return this.generateAuthenticationResult(request, idToken, cacheRecord, authority);\r\n };\r\n /**\r\n * Helper function to load account to msal-browser cache\r\n * @param idToken\r\n * @param environment\r\n * @param clientInfo\r\n * @param authorityType\r\n * @param requestHomeAccountId\r\n * @returns `AccountEntity`\r\n */\r\n TokenCache.prototype.loadAccount = function (idToken, environment, clientInfo, authorityType, requestHomeAccountId) {\r\n var homeAccountId;\r\n if (requestHomeAccountId) {\r\n homeAccountId = requestHomeAccountId;\r\n }\r\n else if (authorityType !== undefined && clientInfo) {\r\n homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authorityType, this.logger, this.cryptoObj, idToken);\r\n }\r\n if (!homeAccountId) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Unexpected missing homeAccountId\");\r\n }\r\n var accountEntity = clientInfo ?\r\n AccountEntity.createAccount(clientInfo, homeAccountId, idToken, undefined, undefined, undefined, environment) :\r\n AccountEntity.createGenericAccount(homeAccountId, idToken, undefined, undefined, undefined, environment);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading account\");\r\n this.storage.setAccount(accountEntity);\r\n return accountEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `IdTokenEntity`\r\n */\r\n TokenCache.prototype.loadIdToken = function (idToken, homeAccountId, environment, tenantId) {\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountId, environment, idToken.rawToken, this.config.auth.clientId, tenantId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n this.storage.setIdTokenCredential(idTokenEntity);\r\n return idTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `AccessTokenEntity`\r\n */\r\n TokenCache.prototype.loadAccessToken = function (request, response, homeAccountId, environment, tenantId, options) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - No access token provided for caching\");\r\n return null;\r\n }\r\n if (!response.expires_in) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes expires_in value.\");\r\n }\r\n if (!options.extendedExpiresOn) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide an extendedExpiresOn value in the options.\");\r\n }\r\n var scopes = new ScopeSet(request.scopes).printScopes();\r\n var expiresOn = options.expiresOn || (response.expires_in + new Date().getTime() / 1000);\r\n var extendedExpiresOn = options.extendedExpiresOn;\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n this.storage.setAccessTokenCredential(accessTokenEntity);\r\n return accessTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load refresh tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @returns `RefreshTokenEntity`\r\n */\r\n TokenCache.prototype.loadRefreshToken = function (request, response, homeAccountId, environment) {\r\n if (!response.refresh_token) {\r\n this.logger.verbose(\"TokenCache - No refresh token provided for caching\");\r\n return null;\r\n }\r\n var refreshTokenEntity = RefreshTokenEntity.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading refresh token\");\r\n this.storage.setRefreshTokenCredential(refreshTokenEntity);\r\n return refreshTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to generate an `AuthenticationResult` for the result.\r\n * @param request\r\n * @param idTokenObj\r\n * @param cacheRecord\r\n * @param authority\r\n * @returns `AuthenticationResult`\r\n */\r\n TokenCache.prototype.generateAuthenticationResult = function (request, idTokenObj, cacheRecord, authority) {\r\n var _a, _b, _c;\r\n var accessToken = Constants.EMPTY_STRING;\r\n var responseScopes = [];\r\n var expiresOn = null;\r\n var extExpiresOn;\r\n if (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) {\r\n accessToken = cacheRecord.accessToken.secret;\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n }\r\n var uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n var tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return {\r\n authority: authority ? authority.canonicalAuthority : Constants.EMPTY_STRING,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: true,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId || Constants.EMPTY_STRING,\r\n requestId: Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: Constants.EMPTY_STRING,\r\n tokenType: ((_a = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: undefined,\r\n fromNativeBroker: false\r\n };\r\n };\r\n return TokenCache;\r\n}());\n\nexport { TokenCache };\n//# sourceMappingURL=TokenCache.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthorizationCodeClient } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar HybridSpaAuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(HybridSpaAuthorizationCodeClient, _super);\r\n function HybridSpaAuthorizationCodeClient(config) {\r\n var _this = _super.call(this, config) || this;\r\n _this.includeRedirectUri = false;\r\n return _this;\r\n }\r\n return HybridSpaAuthorizationCodeClient;\r\n}(AuthorizationCodeClient));\n\nexport { HybridSpaAuthorizationCodeClient };\n//# sourceMappingURL=HybridSpaAuthorizationCodeClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentAuthCodeClient = /** @class */ (function (_super) {\r\n __extends(SilentAuthCodeClient, _super);\r\n function SilentAuthCodeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n SilentAuthCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, clientConfig, authClient, silentHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"SilentAuthCodeClient.acquireToken called\");\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n authCodeRequest = __assign(__assign({}, silentRequest), { code: request.code });\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n clientConfig = _a.sent();\r\n authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Handle auth code parameters from request\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromServer({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName\r\n }, silentRequest.state, authClient.authority, this.networkClient, false)];\r\n case 4:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentAuthCodeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n return SilentAuthCodeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentAuthCodeClient };\n//# sourceMappingURL=SilentAuthCodeClient.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { Constants, InteractionRequiredAuthError, PerformanceEvents, AuthError, ClientAuthError, StringUtils, PromptValue, Logger, StubPerformanceClient, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, ApiId, TemporaryCacheKeys, CacheLookupPolicy, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { name, version } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { EventHandler } from '../event/EventHandler.js';\nimport { PopupClient } from '../interaction_client/PopupClient.js';\nimport { RedirectClient } from '../interaction_client/RedirectClient.js';\nimport { SilentIframeClient } from '../interaction_client/SilentIframeClient.js';\nimport { SilentRefreshClient } from '../interaction_client/SilentRefreshClient.js';\nimport { TokenCache } from '../cache/TokenCache.js';\nimport { NativeInteractionClient } from '../interaction_client/NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { SilentCacheClient } from '../interaction_client/SilentCacheClient.js';\nimport { SilentAuthCodeClient } from '../interaction_client/SilentAuthCodeClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserPerformanceClient } from '../telemetry/BrowserPerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.initialized = false;\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize performance client\r\n this.performanceClient = this.isBrowserEnvironment ?\r\n new BrowserPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application, this.config.system.cryptoOptions) :\r\n new StubPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application);\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps(this.logger, this.performanceClient, this.config.system.cryptoOptions) : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment ?\r\n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) :\r\n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n // initialize in memory storage for native flows\r\n var nativeCacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n this.nativeInternalStorage = new BrowserCacheManager(this.config.auth.clientId, nativeCacheOptions, this.browserCrypto, this.logger);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n // Register listener functions\r\n this.trackPageVisibilityWithMeasurement = this.trackPageVisibilityWithMeasurement.bind(this);\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n */\r\n ClientApplication.prototype.initialize = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, e_1;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"initialize called\");\r\n if (this.initialized) {\r\n this.logger.info(\"initialize has already been called, exiting early.\");\r\n return [2 /*return*/];\r\n }\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_START);\r\n if (!this.config.system.allowNativeBroker) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n _a = this;\r\n return [4 /*yield*/, NativeMessageHandler.createProvider(this.logger, this.config.system.nativeBrokerHandshakeTimeout)];\r\n case 2:\r\n _a.nativeExtensionProvider = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _b.sent();\r\n this.logger.verbose(e_1);\r\n return [3 /*break*/, 4];\r\n case 4:\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response, request, redirectResponse, nativeClient, correlationId, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n request = this.browserStorage.getCachedNativeRequest();\r\n redirectResponse = void 0;\r\n if (request && NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider) && this.nativeExtensionProvider && !hash) {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from native platform\");\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.handleRedirectPromise, this.performanceClient, this.nativeExtensionProvider, request.accountId, this.nativeInternalStorage, request.correlationId);\r\n redirectResponse = nativeClient.handleRedirectPromise();\r\n }\r\n else {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from web flow\");\r\n correlationId = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || Constants.EMPTY_STRING;\r\n redirectClient = this.createRedirectClient(correlationId);\r\n redirectResponse = redirectClient.handleRedirectPromise(hash);\r\n }\r\n response = redirectResponse.then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n }).catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, isLoggedIn, result, nativeClient, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"acquireTokenRedirect called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n if (this.nativeExtensionProvider && this.canUseNative(request)) {\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenRedirect, this.performanceClient, this.nativeExtensionProvider, this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n result = nativeClient.acquireTokenRedirect(request).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n redirectClient = this.createRedirectClient(request.correlationId);\r\n result = redirectClient.acquireToken(request);\r\n }\r\n return [2 /*return*/, result.catch(function (e) {\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var _this = this;\r\n var correlationId = this.getRequestCorrelationId(request);\r\n var atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, correlationId);\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n var loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, request);\r\n }\r\n var result;\r\n if (this.canUseNative(request)) {\r\n result = this.acquireTokenNative(request, ApiId.acquireTokenPopup).then(function (response) {\r\n _this.browserStorage.setInteractionInProgress(false);\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: response.requestId\r\n });\r\n atPopupMeasurement.flushMeasurement();\r\n return response;\r\n }).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n var popupClient = this.createPopupClient(request.correlationId);\r\n result = popupClient.acquireToken(request);\r\n }\r\n return result.then(function (result) {\r\n /*\r\n * If logged in, emit acquire token events\r\n */\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n atPopupMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n requestId: result.requestId\r\n });\r\n atPopupMeasurement.flushMeasurement();\r\n return result;\r\n }).catch(function (e) {\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n atPopupMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n atPopupMeasurement.flushMeasurement();\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n };\r\n ClientApplication.prototype.trackPageVisibilityWithMeasurement = function () {\r\n var measurement = this.ssoSilentMeasurement || this.acquireTokenByCodeAsyncMeasurement;\r\n if (!measurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected in \", measurement.event.name);\r\n measurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, validRequest, result, silentIframeClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n validRequest = __assign(__assign({}, request), { \r\n // will be PromptValue.NONE or PromptValue.NO_SESSION\r\n prompt: request.prompt, correlationId: correlationId });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, correlationId);\r\n (_a = this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n this.logger.verbose(\"ssoSilent called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);\r\n if (this.canUseNative(validRequest)) {\r\n result = this.acquireTokenNative(validRequest, ApiId.ssoSilent).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var silentIframeClient = _this.createSilentIframeClient(validRequest.correlationId);\r\n return silentIframeClient.acquireToken(validRequest);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n result = silentIframeClient.acquireToken(validRequest);\r\n }\r\n return [2 /*return*/, result.then(function (response) {\r\n var _a, _b, _c;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.addStaticFields({\r\n accessTokenSize: response.accessToken.length,\r\n idTokenSize: response.idToken.length\r\n });\r\n (_b = _this.ssoSilentMeasurement) === null || _b === void 0 ? void 0 : _b.endMeasurement({\r\n success: true,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n (_c = _this.ssoSilentMeasurement) === null || _c === void 0 ? void 0 : _c.flushMeasurement();\r\n return response;\r\n }).catch(function (e) {\r\n var _a, _b;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n (_b = _this.ssoSilentMeasurement) === null || _b === void 0 ? void 0 : _b.flushMeasurement();\r\n throw e;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByCode = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atbcMeasurement, hybridAuthCode_1, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.trace(\"acquireTokenByCode called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, InteractionType.Silent, request);\r\n atbcMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCode, request.correlationId);\r\n try {\r\n if (request.code) {\r\n hybridAuthCode_1 = request.code;\r\n response = this.hybridAuthCodeResponses.get(hybridAuthCode_1);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", correlationId);\r\n response = this.acquireTokenByCodeAsync(__assign(__assign({}, request), { correlationId: correlationId }))\r\n .then(function (result) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, InteractionType.Silent, result);\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n atbcMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atbcMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: result.fromNativeBroker,\r\n requestId: result.requestId\r\n });\r\n atbcMeasurement.flushMeasurement();\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, error);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n atbcMeasurement.flushMeasurement();\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(hybridAuthCode_1, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", request.correlationId);\r\n atbcMeasurement.endMeasurement({\r\n success: true\r\n });\r\n atbcMeasurement.discardMeasurement();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n else if (request.nativeAccountId) {\r\n if (this.canUseNative(request, request.nativeAccountId)) {\r\n return [2 /*return*/, this.acquireTokenNative(request, ApiId.acquireTokenByCode, request.nativeAccountId).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n }\r\n throw e;\r\n })];\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError();\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError();\r\n }\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, e);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: e instanceof AuthError && e.errorCode || undefined,\r\n subErrorCode: e instanceof AuthError && e.subError || undefined,\r\n success: false\r\n });\r\n throw e;\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n ClientApplication.prototype.acquireTokenByCodeAsync = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentAuthCodeClient, silentTokenResult;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);\r\n (_a = this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);\r\n return [4 /*yield*/, silentAuthCodeClient.acquireToken(request).then(function (response) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n case 1:\r\n silentTokenResult = _b.sent();\r\n return [2 /*return*/, silentTokenResult];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token from the cache\r\n * @param silentCacheClient SilentCacheClient\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenFromCache = function (silentCacheClient, commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenFromCache, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n return [2 /*return*/, silentCacheClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via a refresh token\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRefreshClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenByRefreshToken, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n case CacheLookupPolicy.RefreshToken:\r\n case CacheLookupPolicy.RefreshTokenAndNetwork:\r\n silentRefreshClient = this.createSilentRefreshClient(commonRequest.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentRefreshClientAcquireToken, commonRequest.correlationId);\r\n return [2 /*return*/, silentRefreshClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via an iframe\r\n * @param request CommonSilentFlowRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenBySilentIframe = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenBySilentIframe, request.correlationId);\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\", correlationId);\r\n return [2 /*return*/, this.logoutRedirect(__assign({ correlationId: correlationId }, logoutRequest))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, redirectClient;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n redirectClient = this.createRedirectClient(correlationId);\r\n return [2 /*return*/, redirectClient.logout(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n try {\r\n var correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n var popupClient = this.createPopupClient(correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (userName) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching username found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching username: \" + userName);\r\n return allAccounts.filter(function (accountObj) { return accountObj.username.toLowerCase() === userName.toLowerCase(); })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.homeAccountId === homeAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.localAccountId === localAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n this.browserStorage.setActiveAccount(account);\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n return this.browserStorage.getActiveAccount();\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n *\r\n * @protected\r\n * @param {InteractionType} interactionType What kind of interaction is being used\r\n * @param {boolean} [setInteractionInProgress=true] Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType, setInteractionInProgress) {\r\n if (setInteractionInProgress === void 0) { setInteractionInProgress = true; }\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n if (interactionType === InteractionType.Redirect || interactionType === InteractionType.Popup) {\r\n this.preflightInteractiveRequest(setInteractionInProgress);\r\n }\r\n };\r\n /**\r\n * Preflight check for interactive requests\r\n *\r\n * @protected\r\n * @param {boolean} setInteractionInProgress Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (setInteractionInProgress) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Set interaction in progress temporary cache or throw if alread set.\r\n if (setInteractionInProgress) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n };\r\n /**\r\n * Acquire a token from native device (e.g. WAM)\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenNative = function (request, apiId, accountId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeClient;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"acquireTokenNative called\");\r\n if (!this.nativeExtensionProvider) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, apiId, this.performanceClient, this.nativeExtensionProvider, accountId || this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n return [2 /*return*/, nativeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns boolean indicating if this request can use the native broker\r\n * @param request\r\n */\r\n ClientApplication.prototype.canUseNative = function (request, accountId) {\r\n this.logger.trace(\"canUseNative called\");\r\n if (!NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme)) {\r\n this.logger.trace(\"canUseNative: isNativeAvailable returned false, returning false\");\r\n return false;\r\n }\r\n if (request.prompt) {\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"canUseNative: prompt is compatible with native flow\");\r\n break;\r\n default:\r\n this.logger.trace(\"canUseNative: prompt = \" + request.prompt + \" is not compatible with native flow, returning false\");\r\n return false;\r\n }\r\n }\r\n if (!accountId && !this.getNativeAccountId(request)) {\r\n this.logger.trace(\"canUseNative: nativeAccountId is not available, returning false\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Get the native accountId from the account\r\n * @param request\r\n * @returns\r\n */\r\n ClientApplication.prototype.getNativeAccountId = function (request) {\r\n var account = request.account || this.browserStorage.getAccountInfoByHints(request.loginHint, request.sid) || this.getActiveAccount();\r\n return account && account.nativeAccountId || \"\";\r\n };\r\n /**\r\n * Returns new instance of the Popup Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createPopupClient = function (correlationId) {\r\n return new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Redirect Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createRedirectClient = function (correlationId) {\r\n return new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Iframe Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createSilentIframeClient = function (correlationId) {\r\n return new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Cache Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentCacheClient = function (correlationId) {\r\n return new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Refresh Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentRefreshClient = function (correlationId) {\r\n return new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent AuthCode Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentAuthCodeClient = function (correlationId) {\r\n return new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n return this.eventHandler.addEventCallback(callback);\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n };\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.addPerformanceCallback = function (callback) {\r\n return this.performanceClient.addPerformanceCallback(callback);\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n ClientApplication.prototype.removePerformanceCallback = function (callbackId) {\r\n return this.performanceClient.removePerformanceCallback(callbackId);\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.enableAccountStorageEvents = function () {\r\n this.eventHandler.enableAccountStorageEvents();\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.disableAccountStorageEvents = function () {\r\n this.eventHandler.disableAccountStorageEvents();\r\n };\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n ClientApplication.prototype.getTokenCache = function () {\r\n return this.tokenCache;\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n /**\r\n * Returns the configuration object\r\n */\r\n ClientApplication.prototype.getConfiguration = function () {\r\n return this.config;\r\n };\r\n /**\r\n * Generates a correlation id for a request if none is provided.\r\n *\r\n * @protected\r\n * @param {?Partial<BaseAuthRequest>} [request]\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.getRequestCorrelationId = function (request) {\r\n if (request === null || request === void 0 ? void 0 : request.correlationId) {\r\n return request.correlationId;\r\n }\r\n if (this.isBrowserEnvironment) {\r\n return this.browserCrypto.createNewGuid();\r\n }\r\n /*\r\n * Included for fallback for non-browser environments,\r\n * and to ensure this method always returns a string.\r\n */\r\n return Constants.EMPTY_STRING;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n//# sourceMappingURL=ClientApplication.js.map\n","/*! @azure/msal-browser v2.33.0 2023-02-06 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, Constants, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { DEFAULT_REQUEST, InteractionType, CacheLookupPolicy, ApiId, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n _this.astsAsyncMeasurement = undefined;\r\n _this.activeSilentTokenRequests = new Map();\r\n // Register listener functions\r\n _this.trackPageVisibility = _this.trackPageVisibility.bind(_this);\r\n return _this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginRedirect called\", correlationId);\r\n return [2 /*return*/, this.acquireTokenRedirect(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n var correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginPopup called\", correlationId);\r\n return this.acquireTokenPopup(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)));\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atsMeasurement, account, thumbprint, silentRequestKey, cachedResponse, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, correlationId);\r\n atsMeasurement.addStaticFields({\r\n cacheLookupPolicy: request.cacheLookupPolicy\r\n });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\", correlationId);\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || Constants.EMPTY_STRING,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n silentRequestKey = JSON.stringify(thumbprint);\r\n cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenSilentAsync, correlationId);\r\n response = this.acquireTokenSilentAsync(__assign(__assign({}, request), { correlationId: correlationId }), account)\r\n .then(function (result) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atsMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n isNativeBroker: result.fromNativeBroker,\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n requestId: result.requestId,\r\n });\r\n atsMeasurement.flushMeasurement();\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n atsMeasurement.flushMeasurement();\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return [2 /*return*/, response];\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", correlationId);\r\n atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n // Discard measurements for memoized calls, as they are usually only a couple of ms and will artificially deflate metrics\r\n atsMeasurement.discardMeasurement();\r\n return [2 /*return*/, cachedResponse];\r\n }\r\n });\r\n });\r\n };\r\n PublicClientApplication.prototype.trackPageVisibility = function () {\r\n if (!this.astsAsyncMeasurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected\");\r\n this.astsAsyncMeasurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilentAsync = function (request, account) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result, silentRequest, silentCacheClient, silentRequest_1, requestWithCLP_1;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n this.astsAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n (_a = this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibility);\r\n if (!(NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme) && account.nativeAccountId)) return [3 /*break*/, 1];\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from native platform\");\r\n silentRequest = __assign(__assign({}, request), { account: account });\r\n result = this.acquireTokenNative(silentRequest, ApiId.acquireTokenSilent_silentFlow).catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n // If native token acquisition fails for availability reasons fallback to web flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n this.logger.verbose(\"acquireTokenSilent - native platform unavailable, falling back to web flow\");\r\n this.nativeExtensionProvider = undefined; // Prevent future requests from continuing to attempt\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n }\r\n throw e;\r\n });\r\n }); });\r\n return [3 /*break*/, 3];\r\n case 1:\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from web flow\");\r\n silentCacheClient = this.createSilentCacheClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeSilentRequest, request.correlationId);\r\n return [4 /*yield*/, silentCacheClient.initializeSilentRequest(request, account)];\r\n case 2:\r\n silentRequest_1 = _b.sent();\r\n requestWithCLP_1 = __assign(__assign({}, request), { \r\n // set the request's CacheLookupPolicy to Default if it was not optionally passed in\r\n cacheLookupPolicy: request.cacheLookupPolicy || CacheLookupPolicy.Default });\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenFromCache, silentRequest_1.correlationId);\r\n result = this.acquireTokenFromCache(silentCacheClient, silentRequest_1, requestWithCLP_1).catch(function (cacheError) {\r\n if (requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessToken) {\r\n throw cacheError;\r\n }\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, silentRequest_1);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenByRefreshToken, silentRequest_1.correlationId);\r\n return _this.acquireTokenByRefreshToken(silentRequest_1, requestWithCLP_1).catch(function (refreshTokenError) {\r\n var isServerError = refreshTokenError instanceof ServerError;\r\n var isInteractionRequiredError = refreshTokenError instanceof InteractionRequiredAuthError;\r\n var isInvalidGrantError = (refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if ((!isServerError ||\r\n !isInvalidGrantError ||\r\n isInteractionRequiredError ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessTokenAndRefreshToken ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.RefreshToken)\r\n && (requestWithCLP_1.cacheLookupPolicy !== CacheLookupPolicy.Skip)) {\r\n throw refreshTokenError;\r\n }\r\n _this.logger.verbose(\"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.\", request.correlationId);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenBySilentIframe, silentRequest_1.correlationId);\r\n return _this.acquireTokenBySilentIframe(silentRequest_1);\r\n });\r\n });\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, result.then(function (response) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibility);\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n//# sourceMappingURL=PublicClientApplication.js.map\n","import { gql } from \"@apollo/client\";\n\nexport const CLEAR_USER_CACHE = gql`\n\tmutation ClearUserCache {\n\t\tclearUserCache\n\t}\n`;\n","/**\n * Referrer Manager maintains the correct document.referrer value throughout the lifecycle of the app.\n *\n * Consider limitations with the browser built-in document.referrer:\n * 1. When MSAL redirects to SSO portal and comes back, document.referrer becomes \"login.microsoftonline.com\" and original referrer would be lost\n * - Our goal is to recover the original document.referrer before the SSO redirects\n * 2. When SPA router updates the URL, document.referrer will remain unchanged\n * - Our goal is to update the referrer as user navigates to new client-side \"pages\" within the app, assuming:\n * 1. Not all URLs are client-side pages\n * 2. Each client-side page has a distinct URL\n * - It is up to the application to decide what constitutes a \"page\"\n * 3. When user F5 refresh the page, document.referrer will remain unchnaged\n * - The goal is to set the current page as the referrer for reloads, so a reloaded page is always referrerd by itself\n *\n * See RFC 17 for design details\n */\nexport class ReferrerManager {\n\tprivate inMemoryValue: string = sessionStorage.getItem(\"hitsSpaReferrerUrl\") ?? document.referrer;\n\tprivate getterInvocationCount = 0;\n\n\tconstructor() {\n\t\tconsole.log(`[referrer] init ${this.inMemoryValue}`);\n\t}\n\n\t/**\n\t * Set the referrer url for the future get() calls, call this\n\t * 1. Before SSO redirect starts\n\t * 2. Each time after a page is viewed, that page's URL should be set here as the referrer for the upcoming page view\n\t */\n\tset(url: string) {\n\t\tif (this.getterInvocationCount === 0) {\n\t\t\tconsole.warn(`[referrer] ${this.inMemoryValue} was set but never used. Did you forget to track a page view?`);\n\t\t}\n\t\tthis.inMemoryValue = url;\n\t\tsessionStorage.setItem(\"hitsSpaReferrerUrl\", url);\n\t\tthis.getterInvocationCount = 0;\n\n\t\tconsole.log(`[referrer] set ${url}`);\n\t}\n\n\tget(): string {\n\t\tthis.getterInvocationCount++;\n\t\tif (this.getterInvocationCount > 1) {\n\t\t\tconsole.warn(`[referrer] ${this.inMemoryValue} was consumed ${this.getterInvocationCount} times. Did you track the same page multiple times?`);\n\t\t}\n\t\treturn this.inMemoryValue;\n\t}\n}\n\nexport const referrer = new ReferrerManager();\n","import type { AccountInfo, AuthenticationResult, AuthError, Configuration, RedirectRequest } from \"@azure/msal-browser\";\nimport { InteractionRequiredAuthError, PublicClientApplication } from \"@azure/msal-browser\";\nimport { CLEAR_USER_CACHE } from \"../apis/mutations/clear-user-cache\";\nimport { apolloService } from \"./apollo-service\";\nimport { appInsights } from \"./app-insights\";\nimport { env } from \"./env\";\nimport { referrer } from \"./referrer\";\n\nconst GRAPH_API_RESOURCE_ID = \"https://graph.microsoft.com\";\nconst LOGIN_AUTHORITY = `https://login.microsoftonline.com/${env.aadTenantId}/`;\n\nconst hitsAuthRequest: RedirectRequest = {\n\tscopes: [`${env.hitsApiResourceId}/.default`],\n};\n\nconst graphAuthRequest: RedirectRequest = {\n\tscopes: [`${GRAPH_API_RESOURCE_ID}/.default`],\n};\n\nconst msalConfig: Configuration = {\n\tauth: {\n\t\tauthority: LOGIN_AUTHORITY,\n\t\tclientId: env.aadClientId,\n\t\tredirectUri: location.origin,\n\t},\n};\n\ninterface AuthServiceProps {\n\tmsalConfig: Configuration;\n\thitsAuthRequest: RedirectRequest;\n\tgraphAuthRequest: RedirectRequest;\n}\n\nexport class AuthService {\n\tprivate msalInstance: PublicClientApplication;\n\tprivate resolveUsername!: (username: string) => void;\n\tprivate usernameAsync = new Promise<string>((resolve) => (this.resolveUsername = resolve));\n\tprivate isPageReloadRequested = false;\n\n\tconstructor({ msalConfig }: AuthServiceProps) {\n\t\tthis.msalInstance = new PublicClientApplication(msalConfig);\n\t}\n\n\tasync signOut() {\n\t\ttry {\n\t\t\t// The following msal signout call will remove the auth token\n\t\t\t// thus preventing cache clearing.\n\t\t\t// We must use `await` to ensure token exists until cache is cleared\n\t\t\tawait apolloService.client.mutate({ mutation: CLEAR_USER_CACHE });\n\t\t} finally {\n\t\t\t// Force signout even if clear cache fails\n\t\t\tthis.msalInstance.logoutRedirect();\n\t\t}\n\t}\n\n\tasync getAccount() {\n\t\tconst graphResult = await this.getToken(await this.usernameAsync, graphAuthRequest);\n\t\treturn graphResult?.account;\n\t}\n\n\tasync getHitsApiToken(): Promise<string> {\n\t\treturn this.getHitsApiAuth()\n\t\t\t.then((apiAuth) => apiAuth.accessToken)\n\t\t\t.catch(() => \"\");\n\t}\n\n\tasync getMicrosoftGraphToken(): Promise<string> {\n\t\treturn this.getMicrosoftGraphAuth()\n\t\t\t.then((graphAuth) => graphAuth.accessToken)\n\t\t\t.catch(() => \"\");\n\t}\n\n\tasync getHitsApiAuth(): Promise<AuthenticationResult> {\n\t\tconst response = await this.getToken(await this.usernameAsync, hitsAuthRequest);\n\t\tif (!response) {\n\t\t\tconst error = new Error(\"Authentication failed\");\n\t\t\tappInsights.trackException({ exception: error });\n\t\t\tthrow error;\n\t\t}\n\t\treturn response;\n\t}\n\n\tasync getMicrosoftGraphAuth(): Promise<AuthenticationResult> {\n\t\tconst response = await this.getToken(await this.usernameAsync, graphAuthRequest);\n\t\tif (!response) {\n\t\t\tconst error = new Error(\"Authentication failed\");\n\t\t\tappInsights.trackException({ exception: error });\n\t\t\tthrow error;\n\t\t}\n\t\treturn response;\n\t}\n\n\tasync refreshMicrosoftGraphAuth() {\n\t\treturn this.msalInstance.acquireTokenSilent({ ...graphAuthRequest, forceRefresh: true });\n\t}\n\tasync refreshHitsApiAuth() {\n\t\treturn this.msalInstance.acquireTokenSilent({ ...hitsAuthRequest, forceRefresh: true });\n\t}\n\n\tasync autoSignIn(): Promise<AccountInfo | null | undefined> {\n\t\ttry {\n\t\t\tconst redirectResult = await this.msalInstance.handleRedirectPromise();\n\t\t\tthis.trackAuthEvent(\"start\");\n\n\t\t\tif (redirectResult?.account) {\n\t\t\t\tconsole.log(`[auth-service] Found existing account from redirect`);\n\t\t\t\tconst username = redirectResult!.account.username;\n\t\t\t\tconst graphResult = await this.getToken(username, graphAuthRequest);\n\t\t\t\tthis.resolveUsername(username);\n\t\t\t\tthis.trackAuthEvent(\"success-after-redirect\", graphResult?.account);\n\t\t\t\treturn graphResult?.account;\n\t\t\t} else {\n\t\t\t\tconsole.log(`[auth-service] Found no account from redirect, look into local state`);\n\t\t\t\t/**\n\t\t\t\t * See here for more info on account retrieval:\n\t\t\t\t * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/docs/Accounts.md\n\t\t\t\t */\n\t\t\t\tconst currentAccounts = this.msalInstance.getAllAccounts();\n\t\t\t\tif (currentAccounts === null || !currentAccounts.length) {\n\t\t\t\t\tconsole.log(`[auth-service] No account found in local state. Redirect user to sign-in with graph`);\n\t\t\t\t\t// Remember the initial referrer before redirect wipes it out\n\t\t\t\t\treferrer.set(document.referrer);\n\t\t\t\t\tthis.trackAuthEvent(\"redirect\");\n\t\t\t\t\tthis.msalInstance.acquireTokenRedirect(graphAuthRequest);\n\t\t\t\t} else if (currentAccounts.length > 1) {\n\t\t\t\t\tconsole.log(`[auth-service] Multiple accounts found in local state. Prompt user with error message`);\n\t\t\t\t\tthis.handleMultiAccountSignIn();\n\t\t\t\t} else if (currentAccounts.length === 1) {\n\t\t\t\t\tconsole.log(`[auth-service] Single accounts found in local state.`);\n\t\t\t\t\tconst username = currentAccounts[0].username;\n\t\t\t\t\tthis.trackAuthEvent(\"success-without-redirect\", currentAccounts[0]);\n\t\t\t\t\tthis.resolveUsername(username);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error: any) {\n\t\t\tconsole.error(error);\n\t\t\tappInsights.trackException({ exception: error });\n\t\t\tthis.handleFatalError(error);\n\t\t}\n\t}\n\n\tprivate trackAuthEvent(step: \"start\" | \"success-after-redirect\" | \"success-without-redirect\" | \"redirect\", account?: AccountInfo | null) {\n\t\tconst webPackageVersion = process.env.WEB_PACKAGE_VERSION;\n\t\tconst commitHash = process.env.COMMIT_HASH;\n\t\tappInsights.trackEvent({ name: \"auth\" }, { step, account, webPackageVersion, commitHash });\n\t}\n\n\tprivate async getToken(username: string, request: RedirectRequest) {\n\t\trequest.account = this.msalInstance.getAccountByUsername(username)!;\n\n\t\t/**\n\t\t * See here for more info on account retrieval:\n\t\t * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/docs/Accounts.md\n\t\t */\n\t\tconst authResult = await this.msalInstance.acquireTokenSilent(request).catch((error) => {\n\t\t\tconsole.log(\"[auth-service] Silent token acquisition fails.\");\n\t\t\tif (error instanceof InteractionRequiredAuthError) {\n\t\t\t\t// fallback to interaction when silent call fails\n\t\t\t\tconsole.log(\"[auth-service] Will acquiring token using redirect\");\n\t\t\t\tthis.msalInstance.acquireTokenRedirect(request);\n\t\t\t\treturn null;\n\t\t\t} else {\n\t\t\t\tconsole.error(\"[auth-service] Fatal error in silent token acquisition. Prompt user with error message\");\n\t\t\t\tthis.handleFatalError(error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t});\n\n\t\treturn authResult;\n\t}\n\n\tprivate handleFatalError(err?: AuthError) {\n\t\tif (this.isPageReloadRequested) return;\n\n\t\tconst errorCode = err?.errorCode ?? \"Unknown\";\n\t\tconst errorMessage = err?.errorMessage ?? \"Unknown\";\n\n\t\tconst fatalErrorNotice = `\nSorry, something went wrong during sign-in.\n\n1. If you are in the Microsoft organization, please make sure your device is enrolled to be managed by Microsoft.\n2. If you are a guest from a different organization, please make sure your account has been approved for accessing HITS.\n3. Make sure you are using the latest version of Microsoft Edge.\n4. Proceed to sign out and try again.\n\nFor additional help, email HITS911@microsoft.com with the following details:\n\nCode: ${errorCode}\nMessage: ${errorMessage}`.trim();\n\n\t\t// To rule out issues caused by browser navigation, we wait for extra time before prompting user the error message.\n\t\t// This allows all outstanding navigation to settle.\n\t\tconsole.log(\"[auth-service] fatal error detected. Will prompt user after all navigation is settled.\");\n\t\tsetTimeout(() => {\n\t\t\tappInsights.trackException({ exception: { name: errorCode, message: errorMessage } });\n\n\t\t\tconst acceptToSignOut = window.confirm(fatalErrorNotice);\n\t\t\tif (acceptToSignOut) {\n\t\t\t\tthis.isPageReloadRequested = true;\n\t\t\t\tthis.signOut();\n\t\t\t}\n\t\t}, 1000);\n\t}\n\n\tprivate handleMultiAccountSignIn() {\n\t\tconst multiAccountNotice = `You have signed in with multiple accounts. This is not supported by HITS.\n\t\t\nProceed to sign out the accounts that are not associated with HITS and try again.\n\nIf the issue persists, please contact HITS admins.`;\n\n\t\tappInsights.trackException({ exception: { name: \"Multi-user sign-in\", message: \"Multiple account sign-in are not supported\" } });\n\t\tconst acceptToSignOut = window.confirm(multiAccountNotice);\n\n\t\tif (acceptToSignOut) {\n\t\t\tthis.signOut();\n\t\t}\n\t}\n}\n\n/** This is a singleton. The app can have one and only one auth service */\nexport const authService = new AuthService({ msalConfig, hitsAuthRequest, graphAuthRequest });\n","/**\n * Remove the trail hash from a url so it can be used as a base url such as `https://someapp.com/api`\n */\nexport function ensureBaseUrl(url: string) {\n\treturn url[url.length - 1] === \"/\" ? url.slice(0, -1) : url;\n}\n","import { ApolloClient, from, HttpLink, InMemoryCache, Operation, ServerError, ServerParseError } from \"@apollo/client\";\nimport { setContext } from \"@apollo/client/link/context\";\nimport { onError } from \"@apollo/client/link/error\";\nimport { GraphQLError } from \"graphql\";\nimport { appInsights } from \"./app-insights\";\nimport { AuthService, authService } from \"./auth-service\";\nimport { ensureBaseUrl } from \"./ensure-base-url\";\nimport { env } from \"./env\";\n\nexport class HitsGraphQLRequestError extends Error {\n\tconstructor(errorObject: GraphQLError) {\n\t\tsuper();\n\t\tthis.name = \"GraphQL Request Error\";\n\t\tthis.message = errorObject.message;\n\t\tthis.stack = JSON.stringify(errorObject);\n\t}\n}\n\nexport class HitsGraphQLNetworkError extends Error {\n\tconstructor(errorObject: Error | ServerError | ServerParseError) {\n\t\tsuper();\n\t\tthis.name = \"GraphQL Network Error\";\n\t\tthis.message = errorObject.message;\n\t\tthis.stack = JSON.stringify(errorObject);\n\t}\n}\n\nexport class ApolloService {\n\t#client: ApolloClient<any>;\n\tget client() {\n\t\treturn this.#client;\n\t}\n\n\tconstructor(private authService: AuthService) {\n\t\tthis.#client = this.getClient();\n\t}\n\n\tprivate getClient(): ApolloClient<any> {\n\t\tconst asyncAuthLink = setContext(\n\t\t\t() =>\n\t\t\t\tnew Promise(async (resolve) => {\n\t\t\t\t\tresolve({\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[\"hits-api-base-url\"]: ensureBaseUrl(env.hitsGraphqlRestTarget),\n\t\t\t\t\t\t\t/** @deprecated, use `authorization` instead */\n\t\t\t\t\t\t\t[\"hits-api-authorization\"]: `Bearer ${await this.authService.getHitsApiToken()}`,\n\t\t\t\t\t\t\t[\"authorization\"]: `Bearer ${await this.authService.getHitsApiToken()}`,\n\t\t\t\t\t\t\t[\"microsoft-graph-authorization\"]: `Bearer ${await this.authService.getMicrosoftGraphToken()}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t);\n\n\t\tconst httpLink = new HttpLink({\n\t\t\turi: env.hitsGraphqlEndpoint,\n\t\t});\n\n\t\tconst composeErrorInfo = (error: Error, operation: Operation) => {\n\t\t\treturn {\n\t\t\t\texception: error,\n\t\t\t\tproperties: {\n\t\t\t\t\tqueryName: operation?.operationName,\n\t\t\t\t\tqueryParams: operation?.variables,\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\n\t\tconst errorReportingLink = onError(({ graphQLErrors, networkError, operation }) => {\n\t\t\tif (graphQLErrors) {\n\t\t\t\tgraphQLErrors.map((graphQLError) => {\n\t\t\t\t\tappInsights.trackException(composeErrorInfo(new HitsGraphQLRequestError(graphQLError), operation));\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (networkError) {\n\t\t\t\tappInsights.trackException(composeErrorInfo(new HitsGraphQLNetworkError(networkError), operation));\n\t\t\t}\n\t\t});\n\n\t\tconst client = new ApolloClient({\n\t\t\tcache: createInMemoryCache(),\n\t\t\tlink: from([errorReportingLink, asyncAuthLink, httpLink]),\n\t\t});\n\n\t\treturn client;\n\t}\n}\n\nexport function createInMemoryCache() {\n\treturn new InMemoryCache({\n\t\tpossibleTypes: {\n\t\t\t// ref: https://www.apollographql.com/docs/react/data/fragments/#defining-possibletypes-manually\n\t\t\tBaseLiteModel: [\"LiteModel\", \"LiteModelWithMedia\"],\n\t\t},\n\t\ttypePolicies: {\n\t\t\tUser: {\n\t\t\t\t// directoryObjectId is the source of truth for user identity. `id` field is null for users who are not in HITS db.\n\t\t\t\t// Users who are in HITS db but no longer exists in AAD will retain their directoryObjectId indefinitely\n\t\t\t\tkeyFields: [\"directoryObjectId\"],\n\t\t\t},\n\t\t\t// Singleton types that have no identifying field can use an empty\n\t\t\t// array for their keyFields.\n\t\t\t// ref: https://www.apollographql.com/docs/react/caching/cache-field-behavior/#the-merge-function\n\t\t\tDiscoverInterests: {\n\t\t\t\tkeyFields: [],\n\t\t\t},\n\t\t\tMyContent: {\n\t\t\t\tkeyFields: [],\n\t\t\t},\n\t\t},\n\t});\n}\n\n/** Singleton: each app can only have a single apollo service */\nexport const apolloService = new ApolloService(authService);\n","import type { AccountInfo } from \"@azure/msal-browser\";\nimport React, { createContext, useContext, useEffect, useState } from \"react\";\nimport { authService } from \"../utils/auth-service\";\n\nexport type AuthState = \"signed-out\" | \"signing-in\" | \"signed-in\";\n\nexport interface AuthContextType {\n\tauthState: AuthState;\n\taccount: AccountInfo | null;\n\tgetHitsApiToken: () => Promise<string>;\n\tgetMicrosoftGraphToken: () => Promise<string>;\n}\n\nexport const AuthContext = createContext<AuthContextType>({} as any);\n\nexport const AuthContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst isInIframe = self !== top; // The script is loaded in iframe when MSAL handles auth redirect\n\tif (isInIframe) return null; // Don't render anything or use any hook when in iframe\n\n\tconst [authState, setAuthState] = useState<AuthState>(\"signed-out\");\n\tconst [account, setAccount] = useState<AccountInfo | null>(null);\n\n\tuseEffect(() => {\n\t\tsetAuthState(\"signing-in\");\n\n\t\t/** We put signIn into React Context (as opposed to index.ts) because we want to show a styled sign-in progress indicator that improves perceived performance */\n\t\tauthService.getAccount().then((account) => {\n\t\t\tif (account) {\n\t\t\t\tsetAccount(account);\n\t\t\t\tsetAuthState(\"signed-in\");\n\t\t\t}\n\t\t});\n\t}, []);\n\n\tconst contextObject = {\n\t\tauthState,\n\t\taccount,\n\t\tgetHitsApiToken: () => authService.getHitsApiToken(),\n\t\tgetMicrosoftGraphToken: () => authService.getMicrosoftGraphToken(),\n\t};\n\n\treturn <AuthContext.Provider value={contextObject}>{props.children}</AuthContext.Provider>;\n};\n\nexport function useAuthContext() {\n\treturn useContext(AuthContext);\n}\n","import { gql } from \"@apollo/client\";\n\nexport const META = gql`\n\tquery Meta {\n\t\tmeta {\n\t\t\tpackageVersion\n\t\t\tnodeVersion\n\t\t\tfunctionsExtensionVersionRequested\n\t\t}\n\t}\n`;\n\nexport interface Meta {\n\tmeta: {\n\t\tpackageVersion: string;\n\t\tnodeVersion: string;\n\t\tfunctionsExtensionVersionRequested: string;\n\t};\n}\n","import { gql } from \"@apollo/client\";\n\nexport const FIND_OR_ADD_USER = gql`\n\tmutation FindOrAddUser($args: FindOrAddUserArgs) {\n\t\tfindOrAddUser(args: $args) {\n\t\t\thitsRole\n\t\t\tmemberships {\n\t\t\t\tresearchGroup {\n\t\t\t\t\tid\n\t\t\t\t\timageURL\n\t\t\t\t\tname\n\t\t\t\t\tpreferredProgram {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tassignmentRole\n\t\t\t\tmembershipDepth\n\t\t\t}\n\t\t\tuser {\n\t\t\t\tid\n\t\t\t\talias\n\t\t\t\tdisplayName\n\t\t\t\tdirectoryObjectId\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport enum MemberAssignmentRole {\n\tManager,\n\tOrgMember,\n\tAdditionalMember,\n\tGroupAdmin,\n}\n\nexport interface Membership {\n\tresearchGroup: ResearchGroup;\n\tassignmentRole: MemberAssignmentRole[];\n\tmembershipDepth: null | number;\n}\n\nexport interface ResearchGroup {\n\tid: number;\n\tname: string;\n\timageURL: null | string;\n\tpreferredProgram: null | {\n\t\tid: number;\n\t\tname: string;\n\t};\n}\n\nexport interface FindOrAddUserInput {\n\targs: {\n\t\tuserAlias: string;\n\t\tdirectoryObjectId: string;\n\t};\n}\n\nexport interface FindOrAddUserOutput {\n\tfindOrAddUser: {\n\t\thitsRole: number;\n\t\tuser: {\n\t\t\tid: number;\n\t\t\talias: string;\n\t\t\tdisplayName: string;\n\t\t\tdirectoryObjectId: string;\n\t\t};\n\t\tmemberships: Membership[];\n\t};\n}\n","export default \"__VITE_ASSET__25b90b0e__\"","import { ProgressIndicator } from \"@fluentui/react\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport hitsLogo from \"../../assets/images/hits-logo.svg\";\n\nexport interface AppLoadingIndicatorProps {\n\tloadingReason?: string;\n}\n\nexport const AppLoadingIndicator: React.FC<AppLoadingIndicatorProps> = (props) => (\n\t<StyledDiv className=\"full-screen-container\" aria-live=\"polite\">\n\t\t<ProgressIndicator\n\t\t\tdescription={props.loadingReason}\n\t\t\tstyles={{\n\t\t\t\titemProgress: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t},\n\t\t\t\titemDescription: {\n\t\t\t\t\tmarginTop: \"0.25rem\",\n\t\t\t\t\tmarginLeft: \"1rem\",\n\t\t\t\t},\n\t\t\t}}\n\t\t/>\n\t\t<img src={hitsLogo} aria-hidden=\"true\" className=\"logo\" />\n\t</StyledDiv>\n);\n\nconst StyledDiv = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\n\t.logo {\n\t\theight: auto;\n\t\twidth: 64px;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\ttransform: translate3d(-50%, -50%, 0);\n\n\t\tanimation-iteration-count: infinite;\n\t\tanimation-direction: alternate;\n\t\tanimation-duration: 1500ms;\n\t\tanimation-name: pulse;\n\t}\n\n\t@keyframes pulse {\n\t\t0% {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t100% {\n\t\t\topacity: 0.1;\n\t\t}\n\t}\n`;\n","import React from \"react\";\n\nexport const HitsIntroParagraph = (\n\t<p>HITS is Microsoft’s Human Insight Tracking System, our internal library of UX, Data Science, and Market Research Insights.</p>\n);\n","import { DefaultTheme } from \"styled-components\";\n\nexport interface ContextWithFluentTheme {\n\ttheme: DefaultTheme;\n}\n\n/**\n * A subset of Fluent UI theme slot colors that HITS design consumes\n * Options can be extends by adotping more slots from the official theming system\n * https://www.aka.ms/themedesigner\n * Our theme is generated with\n * - Primary: #0078d4\n * - Text: #323130\n * - Background: #ffffff\n */\nexport const palette = {\n\tneutralLighterAlt: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralLighterAlt,\n\t/** Menu footer */\n\tneutralLighter: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralLighter,\n\t/** Page background, dividers, disabled background */\n\tneutralLight: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralLight,\n\t/** Call to action on white background */\n\tthemePrimary: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.themePrimary,\n\t/** Call to action on off-white background */\n\tthemeDarkAlt: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.themeDarkAlt,\n\t/** Default text */\n\tneutralPrimary: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralPrimary,\n\t/** Secondary text, icons */\n\tneutralSecondary: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralSecondary,\n\t/** Non-content elements, dividers, decorations */\n\tneutralTertiary: (props: ContextWithFluentTheme) => props.theme.fluentUi.palette.neutralTertiary,\n};\n","import styled from \"styled-components\";\nimport { palette } from \"../../../styles/theme\";\n\nexport const DebugInfoAccordion = styled.details`\n\tborder-radius: 4px;\n\toverflow: hidden;\n`;\n\nexport const DebugInfoToggle = styled.summary`\n\tcolor: ${palette.neutralSecondary};\n\tcursor: pointer;\n\n\t&:hover {\n\t\tcolor: ${palette.neutralPrimary};\n\t}\n`;\n\nexport const DebugInfoDump = styled.pre`\n\tbackground: white;\n\tborder-radius: 4px;\n\tmargin: 0;\n\tmargin-top: 8px;\n\tpadding: 16px;\n\toverflow-x: auto;\n`;\n","const shadows = {\n\t/** card, grid item thumbnail */\n\tdepth4: `0 1.6px 3.6px 0 rgba(0,0,0,.132), 0 0.3px 0.9px 0 rgba(0,0,0,.108)`,\n\tdepth4Inset: `inset 0 1.6px 3.6px 0 rgba(0,0,0,.132), inset 0 0.3px 0.9px 0 rgba(0,0,0,.108)`,\n\t/** command bar, command dropdown, contenxt menu */\n\tdepth8: `0 3.2px 7.2px 0 rgba(0,0,0,.132), 0 0.6px 1.8px 0 rgba(0,0,0,.108)`,\n\t/** callout, search dropdown, hover card, tooltip */\n\tdepth16: `0 6.4px 14.4px 0 rgba(0,0,0,.132), 0 1.2px 3.6px 0 rgba(0,0,0,.108)`,\n\t/** panel, dialog */\n\tdepth64: `0 25.6px 57.6px 0 rgba(0,0,0,.22), 0 4.8px 14.4px 0 rgba(0,0,0,.18)`,\n};\n\nconst corners = {\n\t/** buttons */\n\tradius2: `2px`,\n\t/** cards */\n\tradius4: `4px`,\n};\n\n/** @deprecated use `palette` instead */\nconst colors = {\n\t/** @deprecated use `palette.neutralLighterAlt */\n\tgray10: \"#faf9f8\",\n\t/** @deprecated use `palette.neutralLighter */\n\tgray20: \"#f3f2f1\",\n\t/** @deprecated use `palette.neutralLight */\n\tgray30: \"#edebe9\",\n\tgray40: \"#e1dfdd\",\n\tgray50: \"#d2d0ce\",\n\t/** disabled text */\n\tgray90: \"#a19f9d\",\n\t/** @deprecated use `palette.neutralSecondary */\n\tgray130: \"#605e5c\",\n\tgray140: \"#484644\",\n\tgray150: \"#3b3a39\",\n\t/** @deprecated use `palette.neutralPrimary */\n\tgray160: \"#323130\",\n\t/** Recommendation */\n\tcyan10: \"#00b7c3\",\n\tcyanBlue10: \"#0078d4\",\n\t/** Insight */\n\torgange10: \"#ffaa44\",\n\tsuccess: \"#107c10\",\n\terror: \"#a80000\",\n\tlightBackground: {\n\t\tred: \"#E6808A\",\n\t\tgreen: \"#79DB75\",\n\t\tblue: \"#83BEEC\",\n\t\tlime: \"#BAD80A\",\n\t\tteal: \"#30C6CC\",\n\t\torange: \"#F7B189\",\n\t\tpink: \"#F495BF\",\n\t\tpurple: \"#A992D4\",\n\t},\n};\n\nconst fonts = {\n\tsystem: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\",\n};\n\nconst duration = {\n\tt100: \"100ms\",\n};\n\nexport const tokens = {\n\tshadows,\n\tcorners,\n\tcolors,\n\tduration,\n\tfonts,\n};\n","import styled from \"styled-components\";\nimport { tokens } from \"../../../styles/tokens\";\n\n// USAGE GUIDANCE\n\n// Please choose the right component based on which of the following capabilties you want\n// 1. It must look like the Fluent design styled link.\n// 2. It is rendered as a true <a> tag with href attribute. This allows ctrl+click and other a11y scenarios.\n// 3. It integrates with React Router. If the link points to a client side route, it should not trigger reload.\n// 4. It must be re-stylable for font size/weight adjustment.\n\n// If you want #1, #2, #3, #4 -> use this component\n// If you want #1, #2, #3 -> use <FluentLink as={RouterLink} to=\"\">\n// If you want #1, #2 -> use <FluentLink href=\"\">\n// If you want #1, #3 -> use <FluentLink onClick={() => mannuallyTriggerRouterNavigate()}>\n\nexport const RestylableLink = styled.a`\n\tcolor: ${(props) => props.theme.fluentUi.semanticColors.link};\n\ttext-decoration: none;\n\n\t&:hover {\n\t\tcolor: ${(props) => props.theme.fluentUi.semanticColors.linkHovered};\n\t\ttext-decoration: underline;\n\t}\n`;\n\n/**\n * Looks like a default (secondary) button, behaves like a link\n */\nexport const RestylableDefaultButtonLink = styled.a`\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: ${(props) => props.theme.fluentUi.semanticColors.buttonText};\n\tborder: 1px solid ${(props) => props.theme.fluentUi.semanticColors.buttonBorder};\n\tbackground-color: ${(props) => props.theme.fluentUi.semanticColors.buttonBackground};\n\tborder-radius: ${tokens.corners.radius2};\n\tmin-height: 32px;\n\tpadding: 0 16px;\n\ttext-decoration: none;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t&:hover {\n\t\tcolor: ${(props) => props.theme.fluentUi.semanticColors.buttonTextHovered};\n\t\tbackground-color: ${(props) => props.theme.fluentUi.semanticColors.buttonBackgroundHovered};\n\t}\n`;\n\n/**\n * Looks like a primary button, behaves like a link\n */\nexport const RestylablePrimaryButtonLink = styled(RestylableDefaultButtonLink)`\n\tcolor: ${(props) => props.theme.fluentUi.semanticColors.primaryButtonText};\n\tborder: 1px solid ${(props) => props.theme.fluentUi.semanticColors.primaryButtonBorder};\n\tbackground-color: ${(props) => props.theme.fluentUi.semanticColors.primaryButtonBackground};\n\n\t&:hover {\n\t\tcolor: ${(props) => props.theme.fluentUi.semanticColors.primaryButtonTextHovered};\n\t\tbackground-color: ${(props) => props.theme.fluentUi.semanticColors.primaryButtonBackgroundHovered};\n\t}\n`;\n\n/**\n * Looks like a link, behaves like a button\n */\nexport const RestylableLinkButton = styled.button`\n\tborder: none;\n\tbackground: none;\n\tpadding: 0;\n\tcursor: pointer;\n\tdisplay: inline;\n\tcolor: ${(props) => props.theme.fluentUi.semanticColors.link};\n\ttext-decoration: none;\n\tfont-size: inherit;\n\n\t&:hover {\n\t\tcolor: ${(props) => props.theme.fluentUi.semanticColors.linkHovered};\n\t\ttext-decoration: underline;\n\t}\n`;\n","import styled from \"styled-components\";\n\nexport interface SpacerProps {\n\t$size: 4 | 8 | 16 | 32;\n}\n\nexport const Spacer = styled.div<SpacerProps>`\n\twidth: 100%;\n\theight: ${(props) => props.$size || 4}px;\n`;\n","/**\n * Decompose an integer into an array of powers of two.\n * E.g. 72 => [8, 64]\n * @deprecated avoid computation-heavy conversion. Use bitwise operator directly\n */\nexport function getPowersOfTwoArray(total: number) {\n\t// This will go 1, 2, 4, 8, etc. In binary, it will be 1, 10, 100, 1000, etc.\n\tlet currentMask = 1;\n\tconst presentPowers = [];\n\twhile (currentMask <= total) {\n\t\tif (currentMask & total) presentPowers.push(currentMask);\n\t\t// Shift left, pad 0 to the right, so 1 => 10, 10 => 100, 100 => 1000, etc.\n\t\tcurrentMask <<= 1;\n\t}\n\treturn presentPowers;\n}\n\nexport function joinByBitwiseOr(...values: number[]) {\n\treturn values.reduce((result, value) => result | value, 0);\n}\n\nexport function matchAllBits(sample: number, mask: number) {\n\treturn (sample & mask) === mask;\n}\n\nexport function matchAnyBit(sample: number, mask: number) {\n\treturn (sample & mask) > 0;\n}\n","import { HitsRole as HitsRoleType } from \"@hits/rest-api-types\";\n\nexport interface HitsRoles {\n\tnone: HitsRoleType.None;\n\tguestUser: HitsRoleType.GuestUser;\n\tuser: HitsRoleType.User;\n\tpilotUser: HitsRoleType.PilotUser;\n\tresearcher: HitsRoleType.Researcher;\n\tleadResearcher: HitsRoleType.LeadResearcher;\n\teditor: HitsRoleType.Editor;\n\tadmin: HitsRoleType.Admin;\n}\n\nexport const hitsRoles: HitsRoles = {\n\tnone: 0,\n\tguestUser: 1,\n\tuser: 2,\n\tpilotUser: 4,\n\tresearcher: 8,\n\tleadResearcher: 16,\n\teditor: 32,\n\tadmin: 64,\n};\n\nexport interface HitsRoleMeta {\n\tdisplayName: string;\n}\n\nexport const roleMeta = new Map<HitsRoleType, HitsRoleMeta>([\n\t[\n\t\thitsRoles.none,\n\t\t{\n\t\t\tdisplayName: \"None\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.guestUser,\n\t\t{\n\t\t\tdisplayName: \"Guest\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.user,\n\t\t{\n\t\t\tdisplayName: \"User\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.pilotUser,\n\t\t{\n\t\t\tdisplayName: \"Pilot user\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.researcher,\n\t\t{\n\t\t\tdisplayName: \"Researcher\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.leadResearcher,\n\t\t{\n\t\t\tdisplayName: \"Lead researcher\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.editor,\n\t\t{\n\t\t\tdisplayName: \"Editor\",\n\t\t},\n\t],\n\t[\n\t\thitsRoles.admin,\n\t\t{\n\t\t\tdisplayName: \"Admin\",\n\t\t},\n\t],\n]);\n","import { HitsRole } from \"@hits/rest-api-types\";\nimport { joinByBitwiseOr, matchAnyBit } from \"../../utils/bitwise\";\nimport { hitsRoles } from \"../../utils/role-meta\";\n\n/**\n * Client side feature availablility based on user roles\n * Having this centralized property bag allows us to track what's on and off across the entire app\n * Alphabetical sort please\n */\nexport interface RoleBasedFeatureFlags {\n\t/** Access to debugging and dev tool */\n\tisAdminDevToolEnabled: boolean;\n\t/** Does user meet the minimum requirement to view anything from the app */\n\tisAppVisible: boolean;\n\t/** Can user change a report's method, regardless of its creator's permissions */\n\tisChangeResearchMethodAllowed: boolean;\n\t/** Can user create new study or collection */\n\tisCreateResearchAllowed: boolean;\n\t/** Can user create at least one type of content */\n\tisCreateAllowed: boolean;\n\t/** Can user clone a report */\n\tisCloneAllowed: boolean;\n\t/** Should user see discover tab before personal content tab */\n\tisDiscoverPrioritized: boolean;\n\t/** Access to admin-relaled hub customization ux */\n\tisHubAdminEditorEnabled: boolean;\n\t/** Can user visit their own hub */\n\tisUserHubAccessible: boolean;\n}\n\nexport function getRoleBasedFeatureFlags(roles: HitsRole[]): RoleBasedFeatureFlags {\n\tconst userRoleBits = joinByBitwiseOr(...roles);\n\tconst matchUserRoleBits = (mask: number) => matchAnyBit(userRoleBits, mask);\n\n\treturn {\n\t\tisAdminDevToolEnabled: matchUserRoleBits(hitsRoles.admin),\n\t\tisAppVisible: matchUserRoleBits(\n\t\t\thitsRoles.guestUser | hitsRoles.user | hitsRoles.pilotUser | hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin\n\t\t),\n\t\tisChangeResearchMethodAllowed: matchUserRoleBits(hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin),\n\t\tisCloneAllowed: matchUserRoleBits(hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin),\n\t\tisCreateAllowed: matchUserRoleBits(\n\t\t\thitsRoles.user | hitsRoles.pilotUser | hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin\n\t\t),\n\t\tisCreateResearchAllowed: matchUserRoleBits(hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin),\n\t\tisDiscoverPrioritized: matchUserRoleBits(hitsRoles.none | hitsRoles.guestUser | hitsRoles.user | hitsRoles.pilotUser),\n\t\tisHubAdminEditorEnabled: matchUserRoleBits(hitsRoles.admin),\n\t\tisUserHubAccessible: matchUserRoleBits(\n\t\t\thitsRoles.user | hitsRoles.pilotUser | hitsRoles.researcher | hitsRoles.leadResearcher | hitsRoles.editor | hitsRoles.admin\n\t\t),\n\t};\n}\n","import { useMutation } from \"@apollo/client\";\nimport { HitsRole } from \"@hits/rest-api-types\";\nimport React, { createContext, Suspense, useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { FIND_OR_ADD_USER, FindOrAddUserInput, FindOrAddUserOutput, Membership, ResearchGroup } from \"../../apis/mutations/find-or-add-user\";\nimport { AppLoadingIndicator } from \"../../components/app-root/app-loading-indicator\";\nimport { HitsIntroParagraph } from \"../../components/errro-page/snippets\";\nimport { DebugInfoAccordion, DebugInfoDump, DebugInfoToggle } from \"../../components/shared/debug-info/debug-info\";\nimport { RestylableLink } from \"../../components/shared/link/link\";\nimport { Spacer } from \"../../components/shared/spacer/spacer\";\nimport { palette } from \"../../styles/theme\";\nimport { appInsights } from \"../../utils/app-insights\";\nimport { authService } from \"../../utils/auth-service\";\nimport { getPowersOfTwoArray } from \"../../utils/bitwise\";\nimport { hitsRoles } from \"../../utils/role-meta\";\nimport { useAuthContext } from \"../auth-context\";\nimport { getRoleBasedFeatureFlags, RoleBasedFeatureFlags } from \"./get-feature-flags\";\n\nconst ErrorPage = React.lazy(() => import(\"../../components/errro-page/error-page\"));\n\nexport interface MyProfile {\n\thitsRole: number;\n\tresearchGroups?: ResearchGroup[];\n\tuser: {\n\t\tid: number;\n\t\talias: string;\n\t\tdisplayName: string;\n\t\tdirectoryObjectId: string;\n\t};\n\tmemberships: Membership[];\n}\n\nexport interface UserProfilesContextType {\n\tmyProfile?: MyProfile | null;\n\tmyRoles?: HitsRole[];\n\troleBasedFeatureFlags?: RoleBasedFeatureFlags;\n\ttoggleEmulatedRole?: (role: HitsRole) => void;\n\tresetEmulatedRoles?: () => void;\n\tisEmulatingRole?: boolean;\n\tisError?: boolean;\n}\n\nexport const UserProfileContext = createContext<UserProfilesContextType>({});\n\nexport const UserProfileContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst [myRoles, setMyRoles] = useState<HitsRole[]>();\n\tconst [roleBasedFeatureFlags, setRoleBasedFeatureFlags] = useState<RoleBasedFeatureFlags>();\n\tconst { account } = useAuthContext();\n\tconst [isEmulatingRole, setIsEmulatingRole] = useState(false);\n\n\tconst [findOrAddUser, { data, error }] = useMutation<FindOrAddUserOutput, FindOrAddUserInput>(FIND_OR_ADD_USER);\n\n\tconst [authError, setUnhandledError] = useState<any>();\n\n\t// get profile\n\tuseEffect(() => {\n\t\tif (account) {\n\t\t\t// account.username is the same as userPrincipal name, which is the email address\n\t\t\tconst userAlias = account.username.split(\"@\")[0];\n\n\t\t\tfindOrAddUser({\n\t\t\t\tvariables: {\n\t\t\t\t\targs: {\n\t\t\t\t\t\tuserAlias,\n\t\t\t\t\t\tdirectoryObjectId: account.homeAccountId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}).catch((error) => {\n\t\t\t\t// Do no include sensitive tokens\n\t\t\t\tconst sanitizedAccount = {\n\t\t\t\t\tname: account.name,\n\t\t\t\t\tusername: account.username,\n\t\t\t\t\ttenantId: account.tenantId,\n\t\t\t\t\tenvironment: account.environment,\n\t\t\t\t\tlocalAccountId: account.localAccountId,\n\t\t\t\t\thomeAccountId: account.homeAccountId,\n\t\t\t\t};\n\t\t\t\tif ((error?.message as string).startsWith(\"403\")) {\n\t\t\t\t\tconsole.log(\"[user-profile] User blocked\");\n\t\t\t\t\tappInsights.trackEvent({ name: \"Auth denied\" }, sanitizedAccount);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(\"[user-profile] Error find or add user\", error);\n\t\t\t\t\tappInsights.trackException({ exception: error }, sanitizedAccount);\n\t\t\t\t\tsetUnhandledError(error);\n\t\t\t\t}\n\t\t\t\tsetMyRoles([hitsRoles.none]);\n\t\t\t});\n\t\t}\n\t}, [account]);\n\n\tconst initializeRole = useCallback(() => {\n\t\tif (data?.findOrAddUser.hitsRole === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst roles = getPowersOfTwoArray(data.findOrAddUser.hitsRole);\n\t\tsetMyRoles(roles);\n\t}, [data?.findOrAddUser.hitsRole]);\n\n\t// map profile to role\n\tuseEffect(() => {\n\t\tinitializeRole();\n\t}, [initializeRole]);\n\n\t// map roles to feature flags\n\tuseEffect(() => {\n\t\tif (myRoles === undefined) return;\n\n\t\tsetRoleBasedFeatureFlags(getRoleBasedFeatureFlags(myRoles));\n\t}, [myRoles]);\n\n\tconst toggleEmulatedRole = useCallback((role: HitsRole) => {\n\t\tsetMyRoles((previousRoles) => {\n\t\t\tif (previousRoles?.includes(role)) {\n\t\t\t\treturn previousRoles.filter((existingRole) => existingRole !== role);\n\t\t\t} else if (previousRoles !== undefined) {\n\t\t\t\treturn [...previousRoles, role];\n\t\t\t}\n\n\t\t\treturn previousRoles;\n\t\t});\n\t\tsetIsEmulatingRole(true);\n\t}, []);\n\n\tconst resetEmulatedRoles = useCallback(() => {\n\t\tsetIsEmulatingRole(false);\n\t\tinitializeRole();\n\t}, [initializeRole]);\n\n\tconst isError = useMemo(() => error !== undefined, [error]);\n\tconst isLoading = useMemo(() => !myRoles?.length, [myRoles]);\n\n\tconst contextObject = {\n\t\tisEmulatingRole,\n\t\tisError,\n\t\tmyProfile: data?.findOrAddUser,\n\t\tmyRoles,\n\t\troleBasedFeatureFlags,\n\t\ttoggleEmulatedRole,\n\t\tresetEmulatedRoles,\n\t};\n\n\treturn (\n\t\t<UserProfileContext.Provider value={contextObject}>\n\t\t\t{isLoading && <AppLoadingIndicator loadingReason=\"Authenticating…\" />}\n\t\t\t{!isLoading && !roleBasedFeatureFlags?.isAppVisible && (\n\t\t\t\t<Suspense fallback={<AppLoadingIndicator loadingReason=\"Authenticating…\" />}>\n\t\t\t\t\t{authError ? (\n\t\t\t\t\t\t<ErrorPage\n\t\t\t\t\t\t\tpageTitle=\"Error signing into HITS\"\n\t\t\t\t\t\t\tmessageDetails={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{HitsIntroParagraph}\n\t\t\t\t\t\t\t\t\t<Spacer $size={16} />\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\tSomething went wrong during sign-in. It is probably an issue with HITS. Please try again later or contact{\" \"}\n\t\t\t\t\t\t\t\t\t\t<Link href=\"mailto:HITS911@microsoft.com\">HITS911@microsoft.com</Link> for additional help.\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<Spacer $size={16} />\n\t\t\t\t\t\t\t\t\t<DebugInfoAccordion open={true}>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoToggle>Error details</DebugInfoToggle>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoDump>{JSON.stringify(authError, replaceError, 2)}</DebugInfoDump>\n\t\t\t\t\t\t\t\t\t</DebugInfoAccordion>\n\t\t\t\t\t\t\t\t\t<Spacer $size={16} />\n\t\t\t\t\t\t\t\t\t<DebugInfoAccordion>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoToggle>Account information</DebugInfoToggle>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoDump>{JSON.stringify(account, undefined, 2)}</DebugInfoDump>\n\t\t\t\t\t\t\t\t\t</DebugInfoAccordion>\n\t\t\t\t\t\t\t\t</>\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\t<ErrorPage\n\t\t\t\t\t\t\tpageTitle=\"Getting access to HITS\"\n\t\t\t\t\t\t\tmessageDetails={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{HitsIntroParagraph}\n\t\t\t\t\t\t\t\t\t<Spacer $size={16} />\n\t\t\t\t\t\t\t\t\t{account && (\n\t\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t\tYour account{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t<AccountIdentifier>\n\t\t\t\t\t\t\t\t\t\t\t\t{account.name} ({account.username})\n\t\t\t\t\t\t\t\t\t\t\t</AccountIdentifier>{\" \"}\n\t\t\t\t\t\t\t\t\t\t\tis not set up for viewing content in HITS. If you want to use a different account, please{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t<Link onClick={() => authService.signOut()}>sign out</Link> first. You may contact{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t<Link href=\"mailto:HITS911@microsoft.com\">HITS911@microsoft.com</Link> for additional help.\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Spacer $size={16} />\n\t\t\t\t\t\t\t\t\t<DebugInfoAccordion>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoToggle>Account information</DebugInfoToggle>\n\t\t\t\t\t\t\t\t\t\t<DebugInfoDump>{JSON.stringify(account, undefined, 2)}</DebugInfoDump>\n\t\t\t\t\t\t\t\t\t</DebugInfoAccordion>\n\t\t\t\t\t\t\t\t</>\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</Suspense>\n\t\t\t)}\n\t\t\t{!isLoading && roleBasedFeatureFlags?.isAppVisible && props.children}\n\t\t</UserProfileContext.Provider>\n\t);\n};\n\nexport function useUserProfileContext() {\n\treturn useContext(UserProfileContext);\n}\n\nconst AccountIdentifier = styled.strong`\n\tfont-weight: 600;\n`;\n\nconst Link = styled(RestylableLink)`\n\tcolor: ${palette.themeDarkAlt};\n\tcursor: pointer;\n`;\n\nfunction replaceError(key: string, value: any) {\n\tif (value instanceof Error) {\n\t\tconst error: Record<string, any> = {};\n\n\t\tObject.getOwnPropertyNames(value).forEach((propName) => {\n\t\t\terror[propName] = (value as any)[propName];\n\t\t});\n\n\t\treturn error;\n\t}\n\n\treturn value;\n}\n","import { useCallback } from \"react\";\nimport { useUserProfileContext } from \"../contexts/user-profile-context/user-profile-context\";\nimport { env } from \"../utils/env\";\nimport { roleMeta } from \"../utils/role-meta\";\n\n/**\n * The types for the \"Sas\" manifestType\n * Ref: https://petrolapi.azurewebsites.net/schemas/v1/manifest.jsonSchema.json\n */\nexport type OCVIssueType = \"Smile\" | \"Frown\" | \"Idea\" | \"Bug\";\n\nexport interface CreateIssueClaim {\n\tcommit?: string;\n\temail: string;\n\tmessageBody: string;\n\tscreenshot?: File | null;\n\ttype: OCVIssueType;\n}\n\n/**\n * Documentation\n * OCV ecosystem: https://www.owiki.ms/wiki/OCV\n * Petro API: http://aka.ms/PetrolAPI\n */\n\nconst HITS_OCV_APP_ID = 2162;\n\nexport function useCreateIssue() {\n\tconst { myRoles, myProfile } = useUserProfileContext();\n\n\treturn useCallback(\n\t\tasync (claim: CreateIssueClaim) => {\n\t\t\tconst audience = myRoles?.map((role) => roleMeta.get(role)?.displayName).join(\", \") ?? \"Unknown audience\";\n\t\t\tconst loggableUserId = myProfile ? `a:${myProfile.user.directoryObjectId}` : \"Unknown id\"; //Refer to prefix info https://www.owiki.ms/wiki/OCV/Feedback_SDK_Web_Common\n\t\t\tconst audienceGroup = myProfile?.researchGroups?.map((researchGroup) => researchGroup.name).join(\", \") ?? \"Unknown groups\";\n\t\t\tconst tenantId = env.aadTenantId;\n\n\t\t\t// xdomain.min.js replaces native FormData constructor with a custom implementation.\n\t\t\t// ref: https://github.com/jpillora/xdomain/blob/65c884925e4e67dc20066924066f5984d5e7eea9/src/vendor/xhook.js#L238\n\t\t\t// It stores the native FormData inside the xhook object\n\t\t\t// ref: https://github.com/jpillora/xdomain/blob/65c884925e4e67dc20066924066f5984d5e7eea9/src/vendor/xhook.js#L316\n\t\t\tconst NativeFormData = ((window as any).xhook?.FormData ?? window.FormData) as new () => FormData;\n\t\t\tconst formdata = new NativeFormData();\n\n\t\t\tconst manifest = {\n\t\t\t\tappId: HITS_OCV_APP_ID,\n\t\t\t\tcomment: claim.messageBody,\n\t\t\t\temail: claim.email,\n\t\t\t\tclientFeedbackId: crypto.randomUUID(),\n\t\t\t\tmanifestType: \"Sas\",\n\t\t\t\tsubmitTime: new Date().toISOString(),\n\t\t\t\tsource: \"Client\",\n\t\t\t\ttype: claim.type,\n\t\t\t\ttelemetry: {\n\t\t\t\t\taudience, // hits roles\n\t\t\t\t\taudienceGroup, // hits groups\n\t\t\t\t\tloggableUserId, // AAD object id\n\t\t\t\t\tosBuild: claim.commit,\n\t\t\t\t\ttenantId,\n\t\t\t\t},\n\t\t\t\tweb: {\n\t\t\t\t\tsourcePageURI: location.href,\n\t\t\t\t\tsourcePageName: document.title,\n\t\t\t\t\tbrowser: navigator.userAgent,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconsole.log(`[create-issue] support ticket submitted`, manifest);\n\n\t\t\tconst manifestString = JSON.stringify(manifest);\n\t\t\tconst manifestBlob = new Blob([manifestString], { type: \"application/json\" });\n\n\t\t\tformdata.append(\"Manifest\", manifestBlob, \"Manifest\");\n\n\t\t\tif (claim.screenshot) {\n\t\t\t\tconsole.log(`[create-issue] screenshot attached`, claim.screenshot.name);\n\t\t\t\tformdata.append(\"Screenshot\", claim.screenshot, claim.screenshot.name);\n\t\t\t}\n\n\t\t\tconst requestOptions = {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: formdata,\n\t\t\t};\n\n\t\t\tconst result = await fetch(`${env.petroApiBaseUrl}/feedback`, requestOptions).then((response) => {\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t// created {\n\t\t\t\t\tconsole.error(\"Unexpected response status:\", response.status);\n\t\t\t\t\tthrow Error(\"unexpected response\");\n\t\t\t\t}\n\n\t\t\t\treturn response.json();\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\t\t[myRoles, myProfile]\n\t);\n}\n","export type FileSizeUnit = \"Bytes\" | \"KB\" | \"MB\" | \"GB\" | \"TB\" | \"PB\" | \"EB\" | \"ZB\" | \"YB\";\nconst sizes: FileSizeUnit[] = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n/**\n * Convert byte size to human readable units\n * Based on : https://stackoverflow.com/questions/15900485/correct-way-to-convert-size-in-bytes-to-kb-mb-gb-in-javascript\n */\nexport function convertFileSize(byteSize: number, targetUnit: FileSizeUnit = \"MB\"): number {\n\tif (byteSize === 0) return 0;\n\n\tconst k = 1024;\n\n\tconst i = sizes.indexOf(targetUnit);\n\n\treturn byteSize / Math.pow(k, i);\n}\n","export async function getBlobUrlFromFile(file: File): Promise<string> {\n\tconst reader = new FileReader();\n\treader.readAsDataURL(file);\n\n\treturn new Promise((resolve) => {\n\t\treader.onload = (e) => {\n\t\t\tresolve(e.target!.result!.toString());\n\t\t};\n\t});\n}\n","import { useCallback } from \"react\";\n\nexport interface HeadlessFileInputConfig {\n\tonChange: (files: File[]) => void;\n\t/**\n\t * ref to https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers\n\t */\n\taccept?: string;\n}\n\nexport function useHeadlessFileInput(config: HeadlessFileInputConfig) {\n\tconst pickFiles = useCallback(() => {\n\t\t// prepare a file input on-the-fly\n\t\tconst inputElement = document.createElement(\"input\");\n\t\tinputElement.type = \"file\";\n\t\tinputElement.style.display = \"none\";\n\n\t\tif (config?.accept) {\n\t\t\tinputElement.accept = config.accept;\n\t\t}\n\n\t\tinputElement.addEventListener(\"change\", () => handleFileChange(inputElement));\n\n\t\tdocument.body.appendChild(inputElement);\n\n\t\t// trigger the input event\n\t\tinputElement.click();\n\t}, []);\n\n\tconst handleFileChange = useCallback((inputElement: HTMLInputElement) => {\n\t\tif (inputElement?.files) {\n\t\t\tconfig.onChange([...inputElement.files]);\n\t\t}\n\n\t\t// clean up after each pick\n\t\tinputElement.remove();\n\t}, []);\n\n\treturn {\n\t\tpickFiles,\n\t};\n}\n","import { ActionButton, Label, MessageBar, MessageBarType, Shimmer, ShimmerElementType } from \"@fluentui/react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { convertFileSize } from \"../../../utils/convert-file-size\";\nimport { getBlobUrlFromFile } from \"../../../utils/get-blob-url-from-file\";\nimport { useHeadlessFileInput } from \"../../../utils/use-headless-file-input\";\n\nexport interface SingleImagePickerProps {\n\tlabel?: string;\n\timage?: File | null;\n\t/** override local image preview with a remote url */\n\tremoteImageUrl?: string | null;\n\tfileSizeLimitMb?: number;\n\tonImageChanged: (file: File | null) => void;\n\tdisabled?: boolean;\n\t/** the content that is rendered when disabled */\n\tdisableMessage?: string | JSX.Element | null;\n\tloading?: boolean;\n\tguidelinesElement?: JSX.Element | null;\n}\n\nexport const SingleImagePicker: React.FC<SingleImagePickerProps> = (props) => {\n\tconst [localPreviewUrl, setLocalPreviewUrl] = useState<string | null>(null);\n\tconst [warningMessage, setWarningMessage] = useState<string | null>(null);\n\n\tconst isPopulated = useMemo(() => {\n\t\tconst isRemote = props.remoteImageUrl;\n\t\tconst isLocal = props.image;\n\t\tconst isRemoving = props.image === null;\n\t\treturn (isRemote || isLocal) && !isRemoving;\n\t}, [props.remoteImageUrl, props.image]);\n\n\tconst { pickFiles } = useHeadlessFileInput({\n\t\taccept: \".png, .jpg, .jpeg\",\n\t\tonChange: (files) => {\n\t\t\tsetWarningMessage(null);\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst pickedFileSizeMb = convertFileSize(files[0].size, \"MB\");\n\t\t\t\tif (props.fileSizeLimitMb && pickedFileSizeMb > props.fileSizeLimitMb) {\n\t\t\t\t\tsetWarningMessage(\n\t\t\t\t\t\t`The file you picked (${pickedFileSizeMb.toFixed(2)}MB) has exceeded the recommended size of ${\n\t\t\t\t\t\t\tprops.fileSizeLimitMb\n\t\t\t\t\t\t}MB. Shrink the dimensions or compress the image to create a better user experience.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tprops.onImageChanged(files[0]);\n\t\t\t} else {\n\t\t\t\tprops.onImageChanged(null);\n\t\t\t}\n\t\t},\n\t});\n\n\tuseEffect(() => {\n\t\t// prioritize preivew of local state\n\t\tif (props.image !== undefined) {\n\t\t\tif (props.image !== null) {\n\t\t\t\tgetBlobUrlFromFile(props.image).then((url) => setLocalPreviewUrl(url));\n\t\t\t} else {\n\t\t\t\tsetLocalPreviewUrl(null);\n\t\t\t}\n\t\t} else {\n\t\t\tsetLocalPreviewUrl(props.remoteImageUrl ?? null);\n\t\t}\n\t}, [props.image, props.remoteImageUrl]);\n\n\tconst handleRemoveImage = useCallback(() => {\n\t\tprops.onImageChanged(null);\n\t}, []);\n\n\tconst isSettledToEnabled = useMemo(() => !props.disabled && !props.loading, [props.disabled, props.loading]);\n\tconst isSettledToDisabled = useMemo(() => props.disabled && !props.loading, [props.disabled, props.loading]);\n\n\treturn (\n\t\t<div>\n\t\t\t{/**\n\t\t\t * Do not associate the label with a button element\n\t\t\t * Ref: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label#buttons\n\t\t\t */}\n\t\t\t<Label>{props.label ?? \"Image\"}</Label>\n\t\t\t{isSettledToEnabled && (\n\t\t\t\t<ActionsRow>\n\t\t\t\t\t<ActionButton iconProps={{ iconName: \"Upload\" }} onClick={pickFiles}>\n\t\t\t\t\t\tUpload\n\t\t\t\t\t</ActionButton>\n\t\t\t\t\t{isPopulated && (\n\t\t\t\t\t\t<ActionButton iconProps={{ iconName: \"Delete\" }} onClick={handleRemoveImage}>\n\t\t\t\t\t\t\tRemove\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t)}\n\t\t\t\t</ActionsRow>\n\t\t\t)}\n\t\t\t<PreviewGrid>\n\t\t\t\t{localPreviewUrl && <ImagePreview alt={props.image?.name || \"Preview\"} src={localPreviewUrl} />}\n\t\t\t\t{props.loading && <Shimmer data-testid=\"loading\" width={300} shimmerElements={[{ type: ShimmerElementType.line, height: 200 }]}></Shimmer>}\n\t\t\t\t<div className=\"aside\">\n\t\t\t\t\t{warningMessage && (\n\t\t\t\t\t\t<MessageBar aria-live=\"assertive\" messageBarType={MessageBarType.warning}>\n\t\t\t\t\t\t\t{warningMessage}\n\t\t\t\t\t\t</MessageBar>\n\t\t\t\t\t)}\n\t\t\t\t\t{isSettledToDisabled && props.disableMessage}\n\t\t\t\t\t{isSettledToEnabled && props.guidelinesElement}\n\t\t\t\t</div>\n\t\t\t</PreviewGrid>\n\t\t</div>\n\t);\n};\n\nconst PreviewGrid = styled.div`\n\tdisplay: grid;\n\tgrid-template-columns: auto;\n\tgap: 16px;\n\n\t@media screen and (min-width: 48rem) {\n\t\tgrid-template-columns: auto 1fr;\n\t}\n\n\t.aside {\n\t\tdisplay: grid;\n\t\tgap: 16px;\n\t}\n`;\n\nconst ActionsRow = styled.div`\n\tdisplay: flex;\n`;\n\nconst ImagePreview = styled.img`\n\tdisplay: block;\n\tmax-width: 320px;\n\tmax-height: 200px;\n\tobject-fit: contain;\n`;\n","import { useQuery } from \"@apollo/client\";\nimport {\n\tChoiceGroup,\n\tDefaultButton,\n\tDialog,\n\tDialogFooter,\n\tDialogType,\n\tIChoiceGroupOption,\n\tITextField,\n\tPrimaryButton,\n\tSpinner,\n\tTextField,\n} from \"@fluentui/react\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { META, Meta } from \"../../../apis/queries/meta\";\nimport { OCVIssueType, useCreateIssue } from \"../../../apis/use-create-issue\";\nimport { useAuthContext } from \"../../../contexts/auth-context\";\nimport { tokens } from \"../../../styles/tokens\";\nimport { appInsights } from \"../../../utils/app-insights\";\nimport { SingleImagePicker } from \"../../shared/single-image-picker/single-image-picker\";\n\n/** Props that are solely derived from service type */\ninterface TopLevelProps {\n\ttitle: string;\n\tdetails: string;\n\tinputLabel: string;\n\tsuccessMessage: string;\n\ttype?: OCVIssueType;\n\tsubCategories?: SubCategoryType[];\n}\n\ninterface SubCategoryProps {\n\tdisplayName: string;\n\ttype: OCVIssueType;\n}\n\nenum SubmissionStatus {\n\tinitial,\n\tsubmitting,\n\terror,\n\tsuccess,\n}\n\nexport enum TopLevelType {\n\tSupportRequest = \"Support request\",\n\tFeedback = \"Feedback\",\n}\n\nexport enum SubCategoryType {\n\tBug = \"Bug\",\n\tSuggestion = \"Suggestion\",\n\tCompliment = \"Compliment\",\n}\n\nconst dialogConfigMap = new Map<TopLevelType | undefined, TopLevelProps>([\n\t[\n\t\tTopLevelType.SupportRequest,\n\t\t{\n\t\t\ttitle: \"Contact Helpdesk\",\n\t\t\ttype: \"Frown\",\n\t\t\tdetails: \"We will get in touch via email.\",\n\t\t\tinputLabel: \"Describe the issue\",\n\t\t\tsuccessMessage: \"We have received your message. You will receive an email confirmation shortly. You may close the dialog now.\",\n\t\t},\n\t],\n\t[\n\t\tTopLevelType.Feedback,\n\t\t{\n\t\t\ttitle: \"Provide feedback\",\n\t\t\tdetails: \"The HITS team may reach out to you for more information.\",\n\t\t\tinputLabel: \"Share your feedback\",\n\t\t\tsuccessMessage: \"We have received your feedback. Thank you for taking the time to help improve HITS. You may close the dialog now.\",\n\t\t\tsubCategories: [SubCategoryType.Bug, SubCategoryType.Suggestion, SubCategoryType.Compliment],\n\t\t},\n\t],\n]);\n\nconst subCategoryMap = new Map<SubCategoryType, SubCategoryProps>([\n\t[SubCategoryType.Bug, { displayName: \"🞠Bug report\", type: \"Bug\" }],\n\t[SubCategoryType.Suggestion, { displayName: \"🙋â€â™€ï¸ Suggestion\", type: \"Idea\" }],\n\t[SubCategoryType.Compliment, { displayName: \"💖 Compliment\", type: \"Smile\" }],\n]);\nexport interface CustomerServiceDialogProps {\n\ttopLevelType?: TopLevelType;\n\tinitialContent?: string;\n\tonClose?: () => any;\n}\n\n/**\n * If you want to open dialog imperatively, use the CustomerServiceDialogContext and call open()\n * If you want to render the dialog declaratively, use <CustomerServiceDialog> element directly and pass in the props\n */\n\nexport const CustomerServiceDialog: React.FC<CustomerServiceDialogProps> = (props) => {\n\tconst { topLevelType, onClose, initialContent } = props;\n\tconst [submissionStatus, setSubmissionStatus] = useState<SubmissionStatus>(SubmissionStatus.initial);\n\tconst [messageBody, setMessageBody] = useState<string>();\n\tconst { account } = useAuthContext();\n\tconst createIssue = useCreateIssue();\n\tconst messageInputRef = useRef<ITextField>(null);\n\tconst [isValidationFailed, setIsValidationFailed] = useState(false);\n\tconst [selectedSubCategoryType, setSelectedSubCategoryType] = useState<SubCategoryType>();\n\tconst [subCategoryOptions, setSubCategoryOptions] = useState<IChoiceGroupOption[]>();\n\tconst [topLevelProps, setTopLevelProps] = useState<TopLevelProps | undefined>(dialogConfigMap.get(topLevelType));\n\tconst [screenshot, setScreenshot] = useState<File | null>(null);\n\tconst { data: metaData } = useQuery<Meta>(META);\n\n\tconst isSubmittingButtonVisible = [SubmissionStatus.initial, SubmissionStatus.submitting, SubmissionStatus.error].includes(submissionStatus);\n\tconst isSuccessMessageVisible = submissionStatus === SubmissionStatus.success;\n\tconst isErrorMessageVisible = submissionStatus === SubmissionStatus.error;\n\tconst isSubmitting = submissionStatus === SubmissionStatus.submitting;\n\n\t// derive props from issue type\n\tuseEffect(() => {\n\t\tconst mappedProps = dialogConfigMap.get(topLevelType)!;\n\t\tsetTopLevelProps(mappedProps);\n\t}, [topLevelType]);\n\n\t// set default sub category when issue type changes\n\tuseEffect(() => {\n\t\tconst subCategoryOptions: IChoiceGroupOption[] | undefined = topLevelProps?.subCategories?.map((subCategory) => ({\n\t\t\tkey: subCategory,\n\t\t\ttext: subCategoryMap.get(subCategory)!.displayName,\n\t\t}));\n\t\tsetSubCategoryOptions(subCategoryOptions);\n\t\tsetSelectedSubCategoryType(subCategoryOptions ? (subCategoryOptions[0].key as SubCategoryType) : undefined);\n\t}, [topLevelProps]);\n\n\tconst onCloseInternal = useCallback(() => {\n\t\t// reset all fields only if the submission is sccessful. In other cases, user may want to re-use the content\n\t\tif (submissionStatus === SubmissionStatus.success) {\n\t\t\tsetSubmissionStatus(SubmissionStatus.initial);\n\t\t\tsetMessageBody(\"\");\n\t\t}\n\n\t\t// always reset validation\n\t\tsetIsValidationFailed(false);\n\n\t\tonClose?.();\n\t}, [submissionStatus]);\n\n\tconst handleSubmit = useCallback(() => {\n\t\tif (!isFormValid()) return;\n\n\t\tsetSubmissionStatus(SubmissionStatus.submitting);\n\n\t\tconst issueFooter = [\n\t\t\t`\\nSYSTEM INFORMATION`,\n\t\t\t`UserLocalTime: ${new Date().toLocaleString()}`,\n\t\t\t`Name: ${account?.name}`,\n\t\t\t`AISession: ${appInsights.context.session.id}`,\n\t\t\t`Build: ${process.env.BUILD_ID}`,\n\t\t\t`WebPackage: ${process.env.WEB_PACKAGE_VERSION}`,\n\t\t\t`APIServerPackage: ${metaData?.meta.packageVersion ?? \"Unknown\"}`,\n\t\t\t`APIServerNode: ${metaData?.meta.nodeVersion ?? \"Unknown\"}`,\n\t\t\t`APIServerFunctionsExtension: ${metaData?.meta.functionsExtensionVersionRequested ?? \"Unknown\"}`,\n\t\t].join(\"\\n\");\n\n\t\tconst type = topLevelProps?.type ?? subCategoryMap.get(selectedSubCategoryType!)!.type;\n\n\t\tcreateIssue({\n\t\t\tmessageBody: `${messageBody}\\n\\n${issueFooter}`,\n\t\t\temail: account?.username ?? \"unknown-email\",\n\t\t\ttype,\n\t\t\tcommit: `Commit: ${process.env.COMMIT_HASH}`,\n\t\t\tscreenshot,\n\t\t})\n\t\t\t.then(() => {\n\t\t\t\tsetSubmissionStatus(SubmissionStatus.success);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tsetSubmissionStatus(SubmissionStatus.error);\n\t\t\t});\n\t}, [messageBody, account, appInsights, selectedSubCategoryType, topLevelProps, screenshot]);\n\n\tconst isFormValid = useCallback(() => {\n\t\tif (!messageBody) {\n\t\t\tsetIsValidationFailed(true);\n\t\t\tmessageInputRef.current?.focus();\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}, [messageBody]);\n\n\tuseEffect(() => {\n\t\tif (!initialContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetMessageBody(initialContent);\n\n\t\t// Update cursor after populating initial content\n\t\t// Because fluent text field will not auto update focus.\n\t\t// We wait for it to render (setTimeout) and manually move cursor to the end of the input\n\t\twindow.setTimeout(() => {\n\t\t\tconsole.log(messageInputRef.current);\n\t\t\tmessageInputRef.current?.setSelectionRange(initialContent.length, initialContent.length);\n\t\t}, 0);\n\t}, [initialContent]);\n\n\treturn (\n\t\t<Dialog\n\t\t\thidden={false}\n\t\t\tonDismiss={onCloseInternal}\n\t\t\tdialogContentProps={{\n\t\t\t\ttype: DialogType.normal,\n\t\t\t\ttitle: topLevelProps?.title,\n\t\t\t\tcloseButtonAriaLabel: \"Close\",\n\t\t\t\tsubText: topLevelProps?.details,\n\t\t\t}}\n\t\t\tstyles={{\n\t\t\t\tmain: {\n\t\t\t\t\twidth: \"calc(100% - 32px)\",\n\t\t\t\t\tselectors: {\n\t\t\t\t\t\t[\"@media (min-width: 480px)\"]: {\n\t\t\t\t\t\t\twidth: \"calc(100% - 32px)\",\n\t\t\t\t\t\t\tmaxWidth: \"initial\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[\"@media (min-width: 640px)\"]: {\n\t\t\t\t\t\t\twidth: \"40rem\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t<StyledGrid>\n\t\t\t\t<TextField\n\t\t\t\t\tlabel={topLevelProps?.inputLabel}\n\t\t\t\t\tmultiline\n\t\t\t\t\trows={5}\n\t\t\t\t\trequired\n\t\t\t\t\tdisabled={isSubmitting}\n\t\t\t\t\tvalue={messageBody}\n\t\t\t\t\tautoAdjustHeight\n\t\t\t\t\tcomponentRef={messageInputRef}\n\t\t\t\t\tvalidateOnFocusIn={isValidationFailed}\n\t\t\t\t\tvalidateOnLoad={false}\n\t\t\t\t\tresizable={false}\n\t\t\t\t\tonGetErrorMessage={(v) => (v ? undefined : \"Please fill in this field.\")}\n\t\t\t\t\tonChange={(e) => setMessageBody((e.target as HTMLTextAreaElement).value)}\n\t\t\t\t/>\n\t\t\t\t{subCategoryOptions && (\n\t\t\t\t\t<ChoiceGroup\n\t\t\t\t\t\tselectedKey={selectedSubCategoryType}\n\t\t\t\t\t\toptions={subCategoryOptions}\n\t\t\t\t\t\tonChange={(_, option) => setSelectedSubCategoryType(option?.key as SubCategoryType)}\n\t\t\t\t\t\tlabel=\"Categorize your feedback\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<SingleImagePicker label=\"Screenshot\" onImageChanged={(file) => setScreenshot(file)} image={screenshot} />\n\t\t\t\t{isSuccessMessageVisible && <StyledSuccessParagraph>{topLevelProps?.successMessage}</StyledSuccessParagraph>}\n\t\t\t\t{isErrorMessageVisible && <StyledErrorParagraph>Sorry, something went wrong. Please try again later.</StyledErrorParagraph>}\n\t\t\t\t{isSubmitting && <StyledSpinner as={Spinner} label=\"Submitting…\" labelPosition=\"right\" />}\n\t\t\t</StyledGrid>\n\t\t\t<DialogFooter>\n\t\t\t\t{isSubmittingButtonVisible && <PrimaryButton onClick={handleSubmit} text=\"Submit\" disabled={isSubmitting} />}\n\t\t\t\t{submissionStatus === SubmissionStatus.success ? (\n\t\t\t\t\t<PrimaryButton onClick={onCloseInternal}>Done</PrimaryButton>\n\t\t\t\t) : (\n\t\t\t\t\t<DefaultButton onClick={onCloseInternal} text=\"Close\" />\n\t\t\t\t)}\n\t\t\t</DialogFooter>\n\t\t</Dialog>\n\t);\n};\n\nconst StyledGrid = styled.div`\n\tdisplay: grid;\n\tgrid-gap: 1rem;\n`;\n\nconst StyledSuccessParagraph = styled.p`\n\tcolor: ${tokens.colors.success};\n`;\nconst StyledErrorParagraph = styled.p`\n\tcolor: ${tokens.colors.error};\n`;\n\nconst StyledSpinner = styled.div`\n\tjustify-self: start;\n`;\n","import type { IEventHub } from \"./event-hub-types\";\n\n/**\n * Light wrapper for DOM EventTarget\n * 1. No customization (no bubble or cancel, etc.)\n * 2. Easier access to `details` object\n * 3. addEventListener returns a callback for removing it\n */\nexport class EventHub<TEventDict extends Record<string, any>> implements IEventHub<TEventDict> {\n\tprivate eventTarget = new EventTarget();\n\n\t/**\n\t * @returns a function that removes the listener\n\t */\n\ton<K extends Extract<keyof TEventDict, string>>(eventName: K, listener: (data: TEventDict[K]) => any, options?: boolean | AddEventListenerOptions) {\n\t\tconst wrappedListener = ((e: CustomEvent<any>) => listener(e.detail)) as EventListener;\n\n\t\tthis.eventTarget.addEventListener(eventName, wrappedListener, options);\n\t\treturn () => this.eventTarget.removeEventListener(eventName, wrappedListener, options);\n\t}\n\n\temit<K extends Extract<keyof TEventDict, string>>(eventName: K, ...args: TEventDict[K] extends undefined ? [] : [data: TEventDict[K]]) {\n\t\tthis.eventTarget.dispatchEvent(new CustomEvent(eventName, { detail: args[0] }));\n\t}\n}\n","import type { IFlagManager } from \"./flag-manager-types\";\n\nconst FLAGS_LOCAL_STORAGE_KEY = \"hits-client-flags\";\n\n/**\n * For simplicity, we load the flags at most once per session.\n * After setting/unsetting/clearing flag(s), you need to reload the page\n * for it to take effect\n */\nexport class FlagManager<T extends Record<string, any>> implements IFlagManager<T> {\n\tprivate inMemFlags?: T;\n\n\tget(flag: keyof T) {\n\t\tconst flags = this.ensureInMemFlags();\n\t\treturn flags[flag];\n\t}\n\n\tgetAll() {\n\t\tconst flags = this.ensureInMemFlags();\n\t\treturn flags;\n\t}\n\n\tset(flag: keyof T, value: any) {\n\t\tconst flags = this.ensureInMemFlags();\n\t\tflags[flag] = value;\n\t\tthis.save(flags);\n\t}\n\n\tremove(flag: keyof T) {\n\t\tconst flags = this.ensureInMemFlags();\n\t\tdelete flags[flag];\n\t\tthis.save(flags);\n\t}\n\n\tremoveAll() {\n\t\tlocalStorage.removeItem(FLAGS_LOCAL_STORAGE_KEY);\n\t}\n\n\tprivate ensureInMemFlags(): T {\n\t\tif (!this.inMemFlags) {\n\t\t\ttry {\n\t\t\t\tthis.inMemFlags = JSON.parse(localStorage.getItem(FLAGS_LOCAL_STORAGE_KEY) ?? \"{}\");\n\t\t\t\tconsole.log(`[flags]`, this.inMemFlags);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`[flag] parsing error`);\n\t\t\t\tthis.inMemFlags = {} as any;\n\t\t\t}\n\t\t}\n\n\t\treturn this.inMemFlags!;\n\t}\n\n\tprivate save(flags: T) {\n\t\tlocalStorage.setItem(FLAGS_LOCAL_STORAGE_KEY, JSON.stringify(flags));\n\t}\n}\n","import { getInitials as getInitialsInternal } from \"@fluentui/react\";\n\nexport const getInitials = (name: string) => getInitialsInternal(name, false);\n","import { getPersonaInitialsColor } from \"@fluentui/react\";\n\n/** Given a string, return a `#` prefixed color */\nexport const textToColor = (text: string) => getPersonaInitialsColor({ text });\n","import type { HitsClientFlags, HitsEvents } from \"./bifrost-types\";\nimport { EventHub } from \"./event-hub\";\nimport { FlagManager } from \"./flag-manager\";\nimport { getInitials } from \"./get-initials\";\nimport { textToColor } from \"./text-to-color\";\n\n/**\n * Bifrost connects modular javascript from modern frontent with namespaced javascript from classic frontend\n\n * How to use it\n * 1. In modern frontend, import the `bifrost` const. As a side effect, it will expose itself on the window object\n * 2. In classic frontend, access it from the window object\n */\nexport const bifrost: IBifrost = {\n\tevents: new EventHub<HitsEvents>(),\n\tflags: new FlagManager<HitsClientFlags>(),\n\tutils: {\n\t\ttextToColor,\n\t\tgetInitials,\n\t},\n};\n\n/**\n * This forces caller to explicitly import bifrost\n */\nexport function exposeBifrostOnWindow(bifrost: IBifrost, window: Window) {\n\twindow.bifrost = bifrost;\n}\n","import React, { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { CustomerServiceDialogProps, TopLevelType } from \"../components/app-header/customer-service-dialog/customer-service-dialog\";\nimport { bifrost } from \"../utils/bifrost\";\n\nexport type OnCloseCallback = () => any;\n\nexport interface CustomerServiceDialogContextType extends CustomerServiceDialogProps {\n\topen: (type?: TopLevelType, initialContent?: string, onClose?: OnCloseCallback) => void;\n\tisOpen: boolean;\n}\n\nconst CustomerServiceDialogContext = createContext<CustomerServiceDialogContextType>({\n\topen: () => {},\n\tisOpen: false,\n});\n\nexport const CustomerServiceDialogContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [topLevelType, setTopLevelType] = useState<TopLevelType>();\n\tconst [initialContent, setInitialContent] = useState(\"\");\n\n\tconst open = useCallback((type = TopLevelType.SupportRequest, initialContent = \"\") => {\n\t\tsetTopLevelType(type);\n\t\tsetIsOpen(true);\n\t\tsetInitialContent(initialContent);\n\t}, []);\n\n\tconst onClose = useCallback(() => {\n\t\tsetTopLevelType(undefined);\n\t\tsetIsOpen(false);\n\t\tsetInitialContent(\"\");\n\t}, []);\n\n\tuseEffect(\n\t\t() =>\n\t\t\tbifrost.events.on(\"open-help-dialog\", (data) => {\n\t\t\t\t// When dialog opened from classic side, we must manually release focus trap\n\t\t\t\t// This workaround is relevant only if we want to open a modern dialog on top of a classic dialog\n\t\t\t\tdocument.querySelectorAll(\"focus-trap-element\").forEach((elem: any) => {\n\t\t\t\t\tif (!elem.allowFocusoutOnce) {\n\t\t\t\t\t\tconsole.warn(\"allowFocusoutOnce method is missing from <focus-trap-element>\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.allowFocusoutOnce();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\topen(TopLevelType.SupportRequest, data.initialContent);\n\t\t\t}),\n\t\t[]\n\t);\n\n\tconst contextValue: CustomerServiceDialogContextType = { open, onClose, isOpen, topLevelType, initialContent };\n\treturn <CustomerServiceDialogContext.Provider value={contextValue}>{props.children}</CustomerServiceDialogContext.Provider>;\n};\n\nexport function useCustomerServiceDialogContext() {\n\treturn useContext(CustomerServiceDialogContext);\n}\n","import { useEffect, useState } from \"react\";\nimport { useAuthContext } from \"../contexts/auth-context\";\nimport { RequestConfig } from \"../utils/request\";\n\nconst GRAPH_API_BASE_URL_V1 = \"https://graph.microsoft.com/v1.0\";\n\nexport function useGraphApi() {\n\tconst authContext = useAuthContext();\n\tconst [requestConfig, setRequestConfig] = useState<RequestConfig>();\n\n\tuseEffect(() => {\n\t\tif (authContext.authState === \"signed-in\") {\n\t\t\tauthContext.getMicrosoftGraphToken().then((accessToken) =>\n\t\t\t\tsetRequestConfig({\n\t\t\t\t\tbaseUrl: GRAPH_API_BASE_URL_V1,\n\t\t\t\t\taccessToken,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, [authContext.authState]);\n\n\treturn {\n\t\trequestConfig,\n\t};\n}\n","export interface RequestConfig {\n\taccessToken?: string;\n\tbaseUrl?: string;\n}\n\nexport async function get(path: string, config?: RequestConfig) {\n\tconst fullPath = config?.baseUrl ? `${config.baseUrl}${path}` : path;\n\tconst headers = {\n\t\t...(config?.accessToken && { Authorization: `Bearer ${config.accessToken}` }),\n\t};\n\n\tconst response = await fetch(fullPath, {\n\t\theaders,\n\t});\n\n\treturn response;\n}\n\nexport async function post(path: string, body?: any, config?: RequestConfig) {\n\tconst fullPath = config?.baseUrl ? `${config.baseUrl}${path}` : path;\n\tconst headers = {\n\t\t\"Content-type\": \"application/json\",\n\t\t...(config?.accessToken && { Authorization: `Bearer ${config.accessToken}` }),\n\t};\n\n\tconst response = await fetch(fullPath, {\n\t\theaders,\n\t\tmethod: \"POST\",\n\t\t...(body && { body: JSON.stringify(body) }),\n\t});\n\n\treturn response;\n}\n","import { User } from \"@microsoft/microsoft-graph-types\";\nimport React, { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { useGraphApi } from \"../apis/use-graph-api\";\nimport { RequestConfig, get } from \"../utils/request\";\n\nexport interface DirectoryContextType {\n\tgetUserByPrincipalName: (principal?: string) => User | undefined;\n\trequestUsersByPrincipalName: (principals: string[] | string) => void;\n}\n\nexport const DirectoryContext = createContext<DirectoryContextType>({\n\tgetUserByPrincipalName: () => undefined,\n\trequestUsersByPrincipalName: () => {},\n});\n\nlet resolveRequestConfig: (value: RequestConfig) => void;\nlet isRequestConfigResolved = false;\nconst requestConfigAsync = new Promise<RequestConfig>((resolve) => (resolveRequestConfig = resolve));\n\nconst usersSet = new Set<User>();\n\nexport const DirectoryContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst { requestConfig } = useGraphApi();\n\tconst [directoryChanged, setDirectoryChanged] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (isRequestConfigResolved) return;\n\t\tif (!requestConfig) return;\n\n\t\tresolveRequestConfig(requestConfig);\n\t\tisRequestConfigResolved = true;\n\t}, [requestConfig]);\n\n\tconst getUserByPrincipalName = useCallback(\n\t\t(principal?: string) => {\n\t\t\tif (!principal) return;\n\n\t\t\treturn [...usersSet].find((user) => user.userPrincipalName === principal);\n\t\t},\n\t\t[directoryChanged]\n\t);\n\n\tconst requestUserByPrincipalName = useCallback(async (principal: string) => {\n\t\tconst existingUser = [...usersSet].find((user) => user.userPrincipalName === principal);\n\t\tif (existingUser) {\n\t\t\treturn; // already in the map\n\t\t}\n\n\t\tconst stubUser: User = {\n\t\t\tuserPrincipalName: principal,\n\t\t};\n\n\t\tusersSet.add(stubUser);\n\n\t\tconst requestConfig = await requestConfigAsync;\n\t\ttry {\n\t\t\tconst response = await get(`/users/${principal}`, requestConfig);\n\t\t\tif (response.ok) {\n\t\t\t\tconst user: User = await response.json();\n\n\t\t\t\tusersSet.delete(stubUser);\n\t\t\t\tusersSet.add(user);\n\t\t\t} else {\n\t\t\t\tthrow Error();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(\"get user from AAD failed\");\n\t\t\tconsole.log(e);\n\t\t}\n\t}, []);\n\n\tconst requestUsersByPrincipalName = useCallback(async (identifiers: string[] | string) => {\n\t\tconst identifierArray = Array.isArray(identifiers) ? identifiers : [identifiers];\n\t\tconst qualifiedIdentifiers = identifierArray.filter((identifier) => identifier && identifier.length > 0) as string[];\n\t\tconst deduplicatedIdentifiers = [...new Set(qualifiedIdentifiers)];\n\n\t\tawait Promise.all(deduplicatedIdentifiers.map((identifier) => requestUserByPrincipalName(identifier)));\n\n\t\tsetDirectoryChanged((prev) => 1 - prev);\n\t}, []);\n\n\tconst contextObject = {\n\t\tgetUserByPrincipalName,\n\t\trequestUsersByPrincipalName,\n\t};\n\n\treturn <DirectoryContext.Provider value={contextObject}>{props.children}</DirectoryContext.Provider>;\n};\n\nexport function useDirectoryContext() {\n\treturn useContext(DirectoryContext);\n}\n","import { gql } from \"@apollo/client\";\nimport { FavoriteEntityType } from \"@hits/rest-api-types\";\nimport { DisplayFavorite } from \"../queries/favorites\";\n\nexport const FAVORITE_REPORT = gql`\n\tmutation FavoriteReport($args: FavoriteReportArgs!) {\n\t\tfavoriteReport(args: $args) {\n\t\t\tcreatedOn\n\t\t\tentityId\n\t\t\tentityType\n\t\t\trelatedEntity {\n\t\t\t\ttitle\n\t\t\t\tisPublished\n\t\t\t\tfamily {\n\t\t\t\t\tresearchers {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface FavoriteReportInput {\n\targs: {\n\t\tentityId: number;\n\t\tentityType: FavoriteEntityType;\n\t};\n}\n\nexport interface FavoriteReportOutput {\n\tfavoriteReport: DisplayFavorite;\n}\n","import { gql } from \"@apollo/client\";\nimport { FavoriteEntityType } from \"@hits/rest-api-types\";\n\nexport const UNFAVORITE_REPORT = gql`\n\tmutation UnfavoriteReport($args: UnfavoriteReportArgs!) {\n\t\tunfavoriteReport(args: $args) {\n\t\t\tentityId\n\t\t}\n\t}\n`;\n\nexport interface UnfavoriteReportInput {\n\targs: {\n\t\tentityId: number;\n\t\tentityType: FavoriteEntityType;\n\t};\n}\n\nexport interface UnfavoriteReportOutput {\n\tunfavoriteReport: {\n\t\tentityId: number | null;\n\t};\n}\n","import { gql } from \"@apollo/client\";\nimport { FavoriteEntityType } from \"@hits/rest-api-types\";\n\nexport const FAVORITES = gql`\n\tquery Favorites {\n\t\tfavorites {\n\t\t\tcreatedOn\n\t\t\tentityId\n\t\t\tentityType\n\t\t\trelatedEntity {\n\t\t\t\ttitle\n\t\t\t\tisPublished\n\t\t\t\tfamily {\n\t\t\t\t\tresearchers {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface Favorites {\n\tfavorites: DisplayFavorite[];\n}\n\nexport interface DisplayFavorite {\n\tcreatedOn: string;\n\tentityId: number;\n\tentityType: FavoriteEntityType;\n\trelatedEntity: FavoriteRelatedEntity | null;\n}\n\nexport interface FavoriteRelatedEntity {\n\ttitle: string;\n\tisPublished: boolean;\n\tfamily: {\n\t\tresearchers: {\n\t\t\talias: string;\n\t\t\tdirectoryObjectId: string;\n\t\t\tdisplayName: string;\n\t\t}[];\n\t} | null;\n}\n","export const iconNames = {\n\tadd: \"CalculatorAddition\", // Don't use \"Add\" - it's blurry at 16x16\n\tattachment: \"Attach\",\n\tclose: \"Cancel\",\n\tcollection: \"Library\",\n\tcontentType: \"Page\",\n\thub: \"HomeGroup\",\n\tinsight: \"Lightbulb\",\n\tmethod: \"TestBeaker\",\n\tproduct: \"Product\",\n\tpublishDate: \"Calendar\",\n\trecommendation: \"Like\",\n\tresearcher: \"Contact\",\n\tresearchGroup: \"Group\",\n\tresource: \"PhotoVideoMedia\",\n\tsearch: \"Search\",\n\tsection: \"Page\",\n\tstudy: \"Articles\",\n\ttopic: \"Chat\",\n\tuser: \"Contact\",\n\twebPage: \"Globe\",\n};\n","import { EntityType } from \"@hits/rest-api-types\";\nimport { tokens } from \"../styles/tokens\";\nimport { iconNames } from \"./icon-names\";\n\nexport interface EntityMeta {\n\t/**\n\t * The name used in:\n\t * - API endpoint\n\t * - URL segments\n\t **/\n\tslugName?: string;\n\tdisplayName?: string;\n\tdisplayNamePlural?: string;\n\t/** The name of an MDL icon that represents this entity */\n\ticonName?: string;\n\t/** Hex value for the color that the icon should be exclusively displayed in */\n\ticonColor?: string;\n\t/**\n\t * Variable name used in DB\n\t * Ref: Microsoft.Osg.Urt.Model/AttributeType.cs\n\t **/\n\tattributeTypeName?: string;\n}\n\ninterface EntityTypeObject {\n\tinsight: EntityType.Insight;\n\tstudy: EntityType.Study;\n\tproduct: EntityType.Product;\n\tmethod: EntityType.Method;\n\tevidence: EntityType.Evidence;\n\trecommendation: EntityType.Recommendation;\n\tsupplement: EntityType.Supplemental;\n\tcollection: EntityType.Collection;\n\tresource: EntityType.Resource;\n\ttopic: EntityType.Topic;\n\tnotificationTypes: EntityType.NotificationTypes;\n\tresearchGroup: EntityType.ResearchGroup;\n\tuser: EntityType.User;\n\tcontentHub: EntityType.ContentHub;\n\tnote: EntityType.Note;\n}\n\nexport const entityTypes: EntityTypeObject = {\n\tinsight: 1,\n\tstudy: 2,\n\tproduct: 4,\n\tmethod: 9,\n\tevidence: 21,\n\trecommendation: 25,\n\tsupplement: 28,\n\tcollection: 32,\n\tresource: 51,\n\ttopic: 31,\n\tnotificationTypes: 56,\n\tresearchGroup: 59,\n\tuser: 62,\n\tcontentHub: 63,\n\tnote: 64,\n};\n\nlet _entries: [EntityType, EntityMeta][] | undefined;\n\nexport interface EntityMetaEntry {\n\tentityType: EntityType;\n\tentityMeta: EntityMeta;\n}\nexport function findEntityMeta(predicate: (entityMeta: EntityMeta) => boolean): EntityMetaEntry | null {\n\tif (!_entries) _entries = [...entityMeta.entries()];\n\tconst foundEntry = _entries.find((entry) => predicate(entry[1]));\n\tif (!foundEntry) return null;\n\n\treturn {\n\t\tentityType: foundEntry[0],\n\t\tentityMeta: foundEntry[1],\n\t};\n}\n\nexport const entityMeta = new Map<EntityType, EntityMeta>([\n\t[\n\t\tentityTypes.insight,\n\t\t{\n\t\t\tslugName: \"insight\",\n\t\t\tdisplayName: \"Insight\",\n\t\t\tdisplayNamePlural: \"Insights\",\n\t\t\ticonName: iconNames.insight,\n\t\t\ticonColor: tokens.colors.organge10,\n\t\t\tattributeTypeName: \"Insight\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.study,\n\t\t{\n\t\t\tslugName: \"study\",\n\t\t\tdisplayName: \"Study\",\n\t\t\tdisplayNamePlural: \"Studies\",\n\t\t\ticonName: iconNames.study,\n\t\t\tattributeTypeName: \"Study\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.product,\n\t\t{\n\t\t\tslugName: \"product\",\n\t\t\tdisplayName: \"Product\",\n\t\t\tdisplayNamePlural: \"Products\",\n\t\t\ticonName: iconNames.product,\n\t\t\tattributeTypeName: \"Product\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.method,\n\t\t{\n\t\t\tslugName: \"method\",\n\t\t\tdisplayName: \"Method\",\n\t\t\tdisplayNamePlural: \"Methods\",\n\t\t\ticonName: iconNames.method,\n\t\t\tattributeTypeName: \"Method\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.evidence,\n\t\t{\n\t\t\tslugName: \"attachment\",\n\t\t\tdisplayName: \"Attachment\",\n\t\t\tdisplayNamePlural: \"Attachments\",\n\t\t\ticonName: iconNames.attachment,\n\t\t},\n\t],\n\t[\n\t\tentityTypes.recommendation,\n\t\t{\n\t\t\tslugName: \"recommendation\",\n\t\t\tdisplayName: \"Recommendation\",\n\t\t\tdisplayNamePlural: \"Recommendations\",\n\t\t\ticonName: iconNames.recommendation,\n\t\t\ticonColor: tokens.colors.cyan10,\n\t\t\tattributeTypeName: \"Recommendation\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.supplement,\n\t\t{\n\t\t\tslugName: \"section\",\n\t\t\tdisplayName: \"Section\",\n\t\t\tdisplayNamePlural: \"Sections\",\n\t\t\ticonName: iconNames.section,\n\t\t},\n\t],\n\t[\n\t\tentityTypes.collection,\n\t\t{\n\t\t\tslugName: \"collection\",\n\t\t\tdisplayName: \"Collection\",\n\t\t\tdisplayNamePlural: \"Collections\",\n\t\t\ticonName: iconNames.collection,\n\t\t\tattributeTypeName: \"Collection\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.resource,\n\t\t{\n\t\t\tslugName: \"resource\",\n\t\t\tdisplayName: \"Resource\",\n\t\t\tdisplayNamePlural: \"Resources\",\n\t\t\ticonName: iconNames.resource,\n\t\t\tattributeTypeName: \"Resource\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.topic,\n\t\t{\n\t\t\tslugName: \"topic\",\n\t\t\tdisplayName: \"Topic\",\n\t\t\tdisplayNamePlural: \"Topics\",\n\t\t\ticonName: iconNames.topic,\n\t\t\tattributeTypeName: \"Topic\",\n\t\t},\n\t],\n\t[entityTypes.notificationTypes, {}],\n\t[\n\t\tentityTypes.researchGroup,\n\t\t{\n\t\t\tslugName: \"group\",\n\t\t\tdisplayName: \"Group\",\n\t\t\tdisplayNamePlural: \"Groups\",\n\t\t\ticonName: iconNames.researchGroup,\n\t\t\tattributeTypeName: \"ResearchGroup\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.user,\n\t\t{\n\t\t\tslugName: \"person\",\n\t\t\tdisplayName: \"Person\",\n\t\t\tdisplayNamePlural: \"People\",\n\t\t\ticonName: iconNames.user,\n\t\t\tattributeTypeName: \"Researcher\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.contentHub,\n\t\t{\n\t\t\tdisplayName: \"Hub\",\n\t\t\tdisplayNamePlural: \"Hubs\",\n\t\t\ticonName: iconNames.hub,\n\t\t\tattributeTypeName: \"ContentHub\",\n\t\t},\n\t],\n\t[\n\t\tentityTypes.note,\n\t\t{\n\t\t\tslugName: \"note\",\n\t\t\tdisplayName: \"Customer Note\",\n\t\t\tdisplayNamePlural: \"Customer Notes\",\n\t\t\ticonName: \"Feedback\",\n\t\t\tattributeTypeName: \"Note\",\n\t\t},\n\t],\n]);\n","import { EntityType } from \"@hits/rest-api-types\";\nimport { entityMeta } from \"./entity-meta\";\n\nexport function getReportUrl(entityType: EntityType, entityId: number): string {\n\tconst entityTypeSlug = entityMeta.get(entityType)?.slugName;\n\n\tif (!entityTypeSlug) {\n\t\tconsole.error(`No report url is configured for entityType=${entityType}`);\n\t\treturn \"/\";\n\t}\n\n\treturn `/${entityTypeSlug}/${entityId}`;\n}\n","import { useMutation, useQuery } from \"@apollo/client\";\nimport { EntityType, FavoriteConfig, FavoriteEntityType } from \"@hits/rest-api-types\";\nimport React, { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { FAVORITE_REPORT, FavoriteReportInput, FavoriteReportOutput } from \"../apis/mutations/favorite-report\";\nimport { UNFAVORITE_REPORT, UnfavoriteReportInput, UnfavoriteReportOutput } from \"../apis/mutations/unfavorite-report\";\nimport { FAVORITES, FavoriteRelatedEntity, Favorites } from \"../apis/queries/favorites\";\nimport { getReportUrl } from \"../utils/get-report-url\";\nimport { useAuthContext } from \"./auth-context\";\n\nexport interface EnrichedFavorite {\n\tcreatedOn: string;\n\tentityId: number;\n\tentityType: FavoriteEntityType;\n\tnavigateTo: string;\n\trelatedEntity?: FavoriteRelatedEntity | null;\n}\n\nexport interface FavoritesContextType {\n\tfavorites: EnrichedFavorite[] | null | undefined;\n\tisFavorite: (entityType?: FavoriteEntityType, entityId?: number) => boolean | undefined;\n\taddFavorite: (entityType: FavoriteEntityType, entityId: number) => void;\n\tremoveFavorite: (entityType: FavoriteEntityType, entityId: number) => void;\n}\n\nconst FavoritesContext = createContext<FavoritesContextType>({\n\tfavorites: undefined,\n\tisFavorite: () => undefined,\n\taddFavorite: () => {},\n\tremoveFavorite: () => {},\n});\n\nexport const FavoritesContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst [favorites, setFavorites] = useState<EnrichedFavorite[]>();\n\tconst { account } = useAuthContext();\n\n\tconst { data: favoritesData } = useQuery<Favorites>(FAVORITES, { skip: !account });\n\tconst [favoriteReport] = useMutation<FavoriteReportOutput, FavoriteReportInput>(FAVORITE_REPORT);\n\tconst [unfavoriteReport] = useMutation<UnfavoriteReportOutput, UnfavoriteReportInput>(UNFAVORITE_REPORT);\n\n\tconst isFavorite = useCallback(\n\t\t(entityType?: EntityType, entityId?: number) => {\n\t\t\tif (!entityType || !entityId) return;\n\t\t\tif (!favorites) return;\n\n\t\t\treturn favorites.some((favorite) => favorite.entityType === entityType && favorite.entityId === entityId);\n\t\t},\n\t\t[favorites]\n\t);\n\n\t/**\n\t * assumption: this method will only be used after favorites array is initialized\n\t */\n\tconst addFavorite = useCallback(async (entityType: FavoriteEntityType, entityId: number) => {\n\t\t// optimistic ux: add stub favorite immediate and revert only when server call fails\n\t\t// TODO replace it with Apollo GraphQL built-in optimistic UX\n\t\tsetFavorites((prevFavorites) => {\n\t\t\tconst newFavorite: EnrichedFavorite = {\n\t\t\t\tentityType,\n\t\t\t\tentityId,\n\t\t\t\tcreatedOn: new Date().toISOString(),\n\t\t\t\tnavigateTo: getReportUrl(entityType, entityId),\n\t\t\t};\n\n\t\t\treturn [newFavorite, ...prevFavorites!];\n\t\t});\n\n\t\tconst config: FavoriteConfig = {\n\t\t\tentityType,\n\t\t\tentityId,\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await favoriteReport({ variables: { args: config } });\n\t\t\tconst newFavorite = response.data?.favoriteReport;\n\n\t\t\tif (response.errors?.length || !newFavorite) throw response.errors?.[0] || new Error();\n\n\t\t\tsetFavorites((prevFavorites) => {\n\t\t\t\tconst clonedFavorites = [...prevFavorites!];\n\t\t\t\tconst addedFavorite = clonedFavorites.find((favorite) => favorite.entityId === entityId && favorite.entityType === entityType);\n\t\t\t\tif (addedFavorite) {\n\t\t\t\t\taddedFavorite.createdOn = newFavorite.createdOn;\n\t\t\t\t\taddedFavorite.relatedEntity = newFavorite.relatedEntity;\n\t\t\t\t}\n\n\t\t\t\treturn clonedFavorites;\n\t\t\t});\n\t\t} catch (error: any) {\n\t\t\tconsole.error(\"Favorite failed, roll back\", error);\n\t\t\tsetFavorites((prevFavorites) => {\n\t\t\t\tconst clonedFavorites = [...prevFavorites!];\n\t\t\t\tconst validFavorites = clonedFavorites.filter((favorite) => favorite.entityId !== entityId || favorite.entityType !== entityType);\n\t\t\t\treturn validFavorites;\n\t\t\t});\n\t\t}\n\t}, []);\n\n\t/**\n\t * assumption: this method will only be used after favorites array is initialized\n\t */\n\tconst removeFavorite = useCallback(async (entityType: FavoriteEntityType, entityId: number) => {\n\t\t// optimistic ux: remove favorite immediate and revert only when server call fails\n\t\tlet backupFavorites: EnrichedFavorite[];\n\n\t\tsetFavorites((prevFavorites) => {\n\t\t\tbackupFavorites = [...prevFavorites!];\n\t\t\tconst remainingFavorites = backupFavorites.filter((favorite) => favorite.entityId !== entityId || favorite.entityType !== entityType);\n\t\t\treturn remainingFavorites;\n\t\t});\n\n\t\tconst config: FavoriteConfig = {\n\t\t\tentityType,\n\t\t\tentityId,\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await unfavoriteReport({ variables: { args: config } });\n\t\t\tconst removedFavoriteEntityId = response?.data?.unfavoriteReport.entityId;\n\t\t\tif (response.errors?.length || !removedFavoriteEntityId) throw response.errors?.[0] || new Error();\n\t\t} catch (error: any) {\n\t\t\tconsole.log(\"Unfavorite failed, roll back\", error);\n\t\t\t// Other changes could have been made since backend was created. But we are already in error case, it's ok to revert more aggressively.\n\t\t\tsetFavorites(() => backupFavorites);\n\t\t}\n\t}, []);\n\n\t// fetch basic favorites\n\tuseEffect(() => {\n\t\tif (!favoritesData) return;\n\n\t\tconst displayFavorites: EnrichedFavorite[] = favoritesData.favorites.map((favorite) => ({\n\t\t\t...favorite,\n\t\t\tnavigateTo: getReportUrl(favorite.entityType, favorite.entityId),\n\t\t}));\n\n\t\tsetFavorites(displayFavorites);\n\t}, [favoritesData]);\n\n\tconst contextObject = {\n\t\tfavorites,\n\t\tisFavorite,\n\t\taddFavorite,\n\t\tremoveFavorite,\n\t};\n\n\treturn <FavoritesContext.Provider value={contextObject}>{props.children}</FavoritesContext.Provider>;\n};\n\nexport function useFavoritesContext() {\n\treturn useContext(FavoritesContext);\n}\n","import { gql } from \"@apollo/client\";\nimport { UserVisitEntityType } from \"@hits/rest-api-types\";\n\nexport const ADD_PAGE_VIEW = gql`\n\tmutation AddPageView($args: AddPageViewArgs!) {\n\t\taddPageView(args: $args) {\n\t\t\tentityId\n\t\t\tentityType\n\t\t}\n\t}\n`;\n\nexport interface AddPageViewInput {\n\targs: {\n\t\tentityId: number;\n\t\tentityType: UserVisitEntityType;\n\t\turl: string;\n\t\treferrerUrl: string;\n\t\tsessionId: string;\n\t};\n}\n\nexport interface AddPageViewOutput {\n\taddPageView: {\n\t\tentityId: number;\n\t\tentityType: UserVisitEntityType;\n\t};\n}\n","import { useEffect, useMemo } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst URL_PROMOCODE_SEARCH_KEY = \"promo\";\nexport const STORAGE_PROMOCODE_KEY = \"promo\";\n\n/** Initialize PromoCode from sessionStorage. This runs only once per app */\nlet sessionPromoCode: string | null = sessionStorage.getItem(STORAGE_PROMOCODE_KEY);\n\nexport function setLatestPromoCode(value: string | null) {\n\tsessionPromoCode = value;\n\tif (value === null) {\n\t\tsessionStorage.removeItem(STORAGE_PROMOCODE_KEY);\n\t} else {\n\t\tsessionStorage.setItem(STORAGE_PROMOCODE_KEY, value);\n\t}\n}\n\nexport function getLatestPromoCode() {\n\treturn sessionPromoCode !== null ? sessionPromoCode : sessionStorage.getItem(STORAGE_PROMOCODE_KEY);\n}\n\n/**\n * Get PromoCode for current session if exist\n * @return PromoCode\n */\nexport const useSessionPromoCode = () => {\n\tconst location = useLocation();\n\tconst navigate = useNavigate();\n\n\t/** Get PromoCode from the current URL */\n\tconst urlPromoCode = useMemo(() => {\n\t\tconst mutableSearchParams = new URLSearchParams(location.search.toLocaleLowerCase());\n\t\tconst promoCode = mutableSearchParams.get(URL_PROMOCODE_SEARCH_KEY);\n\t\treturn promoCode;\n\t}, [location.search]);\n\n\t/** When PromoCode from URL changes, update the global var (ref) and SessionStorage */\n\t// Skip when URL doesn't contain PromoCode\n\tif (urlPromoCode !== null) {\n\t\tsetLatestPromoCode(urlPromoCode);\n\t}\n\n\t// Clean up URL\n\tuseEffect(() => {\n\t\tif (urlPromoCode !== null) {\n\t\t\tconst mutableSearchParams = new URLSearchParams(location.search.toLocaleLowerCase());\n\t\t\tmutableSearchParams.delete(URL_PROMOCODE_SEARCH_KEY);\n\n\t\t\tnavigate({ search: mutableSearchParams.toString() }, { replace: true });\n\t\t}\n\t}, [urlPromoCode]);\n\n\tconst result = getLatestPromoCode();\n\n\treturn result;\n};\n","import { useEffect } from \"react\";\n\nexport interface UseLocalStorageWatcherProps {\n\tkey: string;\n\tonChange: () => void;\n}\n\n/**\n * Call the onChange function when an item with the given key changes its value in local storage\n */\nexport function useLocalStorageWatcher(props: UseLocalStorageWatcherProps) {\n\tuseEffect(() => {\n\t\tconst listener = (ev: StorageEvent) => {\n\t\t\tif (ev.key === props.key) {\n\t\t\t\tprops.onChange();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", listener);\n\n\t\treturn () => window.removeEventListener(\"storage\", listener);\n\t}, [props.key, props.onChange]);\n}\n","import { useApolloClient } from \"@apollo/client\";\nimport { useCallback } from \"react\";\nimport { useLocalStorageWatcher } from \"../../utils/use-local-storage-watcher\";\n\n// Refetch any queries that might be affected by page views from other tabs\nexport function usePageViewsCacheEviction() {\n\tconst apolloClient = useApolloClient();\n\n\t// manually evict all the cache from the pageView query\n\t// reference: https://www.apollographql.com/docs/react/caching/garbage-collection/\n\tconst evictCache = useCallback(() => {\n\t\tapolloClient.cache.evict({ fieldName: \"pageViews\" });\n\t\tapolloClient.cache.gc();\n\t}, []);\n\n\tuseLocalStorageWatcher({ key: \"latest-visit-timestamp\", onChange: evictCache });\n}\n","import { useMutation } from \"@apollo/client\";\nimport { UserVisitEntityType } from \"@hits/rest-api-types\";\nimport React, { createContext, useContext, useEffect } from \"react\";\nimport { ADD_PAGE_VIEW, AddPageViewInput, AddPageViewOutput } from \"../../apis/mutations/add-page-view\";\nimport { appInsights } from \"../../utils/app-insights\";\nimport { referrer } from \"../../utils/referrer\";\nimport { useSessionPromoCode } from \"../../utils/use-session-promo-code\";\nimport { usePageViewsCacheEviction } from \"./use-page-view-cache-eviction\";\n\nexport interface TrackPageViewProps {\n\tpageName: string;\n}\n\nexport interface TrackPageViewWithGraphProps {\n\tpageName: string;\n\tentityId: number;\n\tentityType: UserVisitEntityType;\n}\n\nexport interface PageViewContextType {\n\ttrackPageView: (props: TrackPageViewProps) => void;\n\ttrackPageViewWithGraph: (props: TrackPageViewWithGraphProps) => void;\n}\n\nconst PageViewContext = createContext<PageViewContextType>({\n\ttrackPageView: () => {},\n\ttrackPageViewWithGraph: () => {},\n});\n\nexport const PageViewContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst promoCode = useSessionPromoCode();\n\tconst [addPageView] = useMutation<AddPageViewOutput, AddPageViewInput>(ADD_PAGE_VIEW);\n\n\t// Note: addPageViewToGraph should not evict the pageView cache because modern frontent page views are Hub pages only, which are not considered as part of in history\n\t// In the future, we should evict cache if either of the following becomes true:\n\t// 1. Modern frontend includes Hub page visits as part of the history\n\t// 2. Modern frontend becomes the host for report pages\n\tusePageViewsCacheEviction();\n\n\tconst addPageViewToAppInsight = (props: TrackPageViewProps, referrerUrl: string) => {\n\t\tconsole.log(`[page-view] Visit page ${props.pageName}${promoCode ? `:${promoCode}` : \"\"} from ${referrerUrl}`);\n\t\tappInsights.trackPageView({\n\t\t\tname: props.pageName,\n\t\t\trefUri: referrerUrl,\n\t\t\tproperties: {\n\t\t\t\turlReferrer: referrerUrl, // add this in addition to refUri for backward compatiblity\n\t\t\t},\n\t\t});\n\t};\n\n\tconst addPageViewToGraph = (props: TrackPageViewWithGraphProps, referrerUrl: string) => {\n\t\tconst { entityId, entityType } = props;\n\n\t\tconsole.log(`[page-view] Visit entity ${props.entityType}:${props.entityId} from ${referrerUrl}`);\n\t\taddPageView({\n\t\t\tvariables: {\n\t\t\t\targs: {\n\t\t\t\t\tentityId,\n\t\t\t\t\tentityType,\n\t\t\t\t\turl: location.href,\n\t\t\t\t\treferrerUrl,\n\t\t\t\t\tsessionId: appInsights.context.getSessionId(),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t};\n\n\t/**\n\t * This tracker is mutually exclusive with `trackPageViewWithGraph`\n\t * The goal is to migrate all page view tracking into the Graph\n\t */\n\tconst trackPageView = (props: TrackPageViewProps) => {\n\t\tconst referrerUrl = referrer.get();\n\t\taddPageViewToAppInsight(props, referrerUrl);\n\t\treferrer.set(window.location.href);\n\t};\n\n\t/**\n\t * This tracker is mutually exclusive with `trackPageView`\n\t * The goal is to migrate all page view tracking into the Graph\n\t */\n\tconst trackPageViewWithGraph = (props: TrackPageViewWithGraphProps) => {\n\t\tconst referrerUrl = referrer.get();\n\t\taddPageViewToAppInsight(props, referrerUrl);\n\t\taddPageViewToGraph(props, referrerUrl);\n\t\treferrer.set(window.location.href);\n\t};\n\n\tconst contextObject: PageViewContextType = {\n\t\ttrackPageView,\n\t\ttrackPageViewWithGraph,\n\t};\n\n\treturn <PageViewContext.Provider value={contextObject}>{props.children}</PageViewContext.Provider>;\n};\n\nexport function useTrackPageView(props: Partial<TrackPageViewProps>) {\n\tconst pageViewContext = useContext(PageViewContext);\n\tconst { pageName } = props;\n\tuseEffect(() => {\n\t\tif (!pageName) return;\n\t\tpageViewContext.trackPageView({ pageName });\n\t}, [pageName]);\n}\n\nexport function useTrackPageViewWithGraph(props: Partial<TrackPageViewWithGraphProps>) {\n\tconst pageViewContext = useContext(PageViewContext);\n\tconst { pageName, entityId, entityType } = props;\n\tuseEffect(() => {\n\t\tif (!pageName || !entityId || !entityType) return;\n\t\tpageViewContext.trackPageViewWithGraph({ pageName, entityId, entityType });\n\t}, [pageName, entityId, entityType]);\n}\n","import React, { createContext, useCallback, useContext, useRef, useState } from \"react\";\n\nexport interface SiteSearchContextType {\n\tsearchBoxRef: React.RefObject<HTMLInputElement>;\n\tisHeaderTakeover: boolean;\n\ttakeoverHeader: () => void;\n\treleaseHeader: () => void;\n}\n\n// TODO this context can be refactored into the component, because no other component needs to access it\nconst SiteSearchContext = createContext<SiteSearchContextType>({\n\tsearchBoxRef: { current: null },\n\tisHeaderTakeover: false,\n\ttakeoverHeader: () => {},\n\treleaseHeader: () => {},\n});\n\nexport const SiteSearchContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst searchBoxRef = useRef<HTMLInputElement>(null);\n\tconst [isHeaderTakeover, setIsHeaderTakeover] = useState(false);\n\n\tconst takeoverHeader = useCallback(() => setIsHeaderTakeover(true), []);\n\tconst releaseHeader = useCallback(() => setIsHeaderTakeover(false), []);\n\n\tconst contextObject = {\n\t\tsearchBoxRef,\n\t\tisHeaderTakeover,\n\t\ttakeoverHeader,\n\t\treleaseHeader,\n\t};\n\n\treturn <SiteSearchContext.Provider value={contextObject}>{props.children}</SiteSearchContext.Provider>;\n};\n\nexport function useSiteSearchContext() {\n\treturn useContext(SiteSearchContext);\n}\n","import { getTheme } from \"@fluentui/react\";\nimport React from \"react\";\nimport { DefaultTheme, ThemeProvider as StyledComponentsThemeProvider } from \"styled-components\";\n\nconst defaultTheme: DefaultTheme = {\n\tfluentUi: getTheme(),\n};\n\nexport const ThemeContextProvider: React.FC<React.PropsWithChildren> = (props) => (\n\t<StyledComponentsThemeProvider theme={defaultTheme}>{props.children}</StyledComponentsThemeProvider>\n);\n","import React, { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { useGraphApi } from \"../apis/use-graph-api\";\nimport { RequestConfig, get } from \"../utils/request\";\n\nexport interface UserPhotosContextType {\n\tgetPhotoUrl: (identifier?: string) => string | null | undefined;\n\t/**\n\t * @param identifiers use Graph object id or principal name (alia-AT-microsoft.com).\n\t * Prefer Graph object for tenant portability\n\t */\n\trequestPhotos: (identifiers: string | string[]) => void;\n\tmyPhotoUrl?: string | null;\n}\n\nconst UserPhotosContext = createContext<UserPhotosContextType>({\n\tgetPhotoUrl: () => undefined,\n\trequestPhotos: () => {},\n});\n\nconst imageUrlPendingPlaceholder = \"PENDING\";\n\nconst photosMap = new Map<string, string | null | undefined>();\n\nlet resolveRequestConfig: (value: RequestConfig) => void;\nlet isRequestConfigResolved = false;\nconst requestConfigAsync = new Promise<RequestConfig>((resolve) => (resolveRequestConfig = resolve));\n\nexport const UserPhotosContextProvider: React.FC<React.PropsWithChildren> = (props) => {\n\tconst { requestConfig } = useGraphApi();\n\tconst [photosChanged, setPhotosChanged] = useState(0);\n\tconst [myPhotoUrl, setMyPhotoUrl] = useState<string | null>();\n\n\tuseEffect(() => {\n\t\tif (isRequestConfigResolved) return;\n\t\tif (!requestConfig) return;\n\n\t\tresolveRequestConfig(requestConfig);\n\t\tisRequestConfigResolved = true;\n\t}, [requestConfig]);\n\n\t// get photo\n\tuseEffect(() => {\n\t\tif (!requestConfig) return;\n\n\t\tget(`/me/photos/96x96/$value`, requestConfig)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.ok) {\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} else {\n\t\t\t\t\tthrow Error();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then((rawData) => {\n\t\t\t\tconst blobUrl = URL.createObjectURL(rawData);\n\t\t\t\tsetMyPhotoUrl(blobUrl);\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(\"Cannot get my photo\", error);\n\t\t\t\tsetMyPhotoUrl(null);\n\t\t\t});\n\t}, [requestConfig]);\n\n\tconst getPhotoUrl = useCallback(\n\t\t(identifier?: string) => {\n\t\t\tif (!identifier) return;\n\n\t\t\tconst result = photosMap.get(identifier);\n\n\t\t\tif (!result) return;\n\t\t\tif (result === imageUrlPendingPlaceholder) return;\n\n\t\t\treturn result;\n\t\t},\n\t\t[photosChanged]\n\t);\n\n\tconst requestPhotoByIdentifier = useCallback(async (identifier: string) => {\n\t\tconst existingEntry = photosMap.get(identifier);\n\n\t\tif (existingEntry !== undefined) {\n\t\t\treturn; // already cached\n\t\t}\n\n\t\tif (existingEntry === imageUrlPendingPlaceholder) {\n\t\t\treturn; // requesting in progress\n\t\t}\n\n\t\t// Set the flag before starting the request\n\t\tphotosMap.set(identifier, imageUrlPendingPlaceholder);\n\n\t\tconst requestConfig = await requestConfigAsync;\n\t\ttry {\n\t\t\tconst response = await get(`/users/${identifier}/photos/96x96/$value`, requestConfig);\n\t\t\tif (response.ok) {\n\t\t\t\tconst rawData = await response.blob();\n\t\t\t\tconst blobUrl = URL.createObjectURL(rawData);\n\n\t\t\t\tphotosMap.set(identifier, blobUrl);\n\t\t\t} else {\n\t\t\t\tthrow Error();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tphotosMap.set(identifier, null);\n\t\t}\n\t}, []);\n\n\tconst requestPhotos = useCallback(async (identifiers: string[] | string) => {\n\t\tconst identifierArray = Array.isArray(identifiers) ? identifiers : [identifiers];\n\t\tconst qualifiedIdentifiers = identifierArray.filter((identifier) => identifier && identifier.length > 0) as string[];\n\t\tconst deduplicatedIdentifiers = [...new Set(qualifiedIdentifiers)];\n\n\t\tawait Promise.all(deduplicatedIdentifiers.map((identifier) => requestPhotoByIdentifier(identifier)));\n\n\t\tsetPhotosChanged((prev) => 1 - prev);\n\t}, []);\n\n\tconst contextObject = {\n\t\tgetPhotoUrl,\n\t\trequestPhotos,\n\t\tmyPhotoUrl,\n\t};\n\n\treturn <UserPhotosContext.Provider value={contextObject}>{props.children}</UserPhotosContext.Provider>;\n};\n\nexport function useUserPhotosContext() {\n\treturn useContext(UserPhotosContext);\n}\n","import { ApolloProvider } from \"@apollo/client\";\nimport React from \"react\";\nimport { apolloService } from \"../utils/apollo-service\";\nimport { AuthContextProvider } from \"./auth-context\";\nimport { CustomerServiceDialogContextProvider } from \"./customer-service-dialog-context\";\nimport { DirectoryContextProvider } from \"./directory-context\";\nimport { FavoritesContextProvider } from \"./favorites-context\";\nimport { PageViewContextProvider } from \"./page-view-context/page-view-context\";\nimport { SiteSearchContextProvider } from \"./site-search-context\";\nimport { ThemeContextProvider } from \"./theme-context\";\nimport { UserPhotosContextProvider } from \"./user-photos-context\";\nimport { UserProfileContextProvider } from \"./user-profile-context/user-profile-context\";\n\nexport * from \"./auth-context\";\n\nexport const GlobalContextProviders: React.FC<React.PropsWithChildren> = (props) => {\n\treturn (\n\t\t<ApolloProvider client={apolloService.client}>\n\t\t\t<PageViewContextProvider>\n\t\t\t\t<ThemeContextProvider>\n\t\t\t\t\t<AuthContextProvider>\n\t\t\t\t\t\t<DirectoryContextProvider>\n\t\t\t\t\t\t\t<UserPhotosContextProvider>\n\t\t\t\t\t\t\t\t<UserProfileContextProvider>\n\t\t\t\t\t\t\t\t\t<FavoritesContextProvider>\n\t\t\t\t\t\t\t\t\t\t<SiteSearchContextProvider>\n\t\t\t\t\t\t\t\t\t\t\t<CustomerServiceDialogContextProvider>{props.children}</CustomerServiceDialogContextProvider>\n\t\t\t\t\t\t\t\t\t\t</SiteSearchContextProvider>\n\t\t\t\t\t\t\t\t\t</FavoritesContextProvider>\n\t\t\t\t\t\t\t\t</UserProfileContextProvider>\n\t\t\t\t\t\t\t</UserPhotosContextProvider>\n\t\t\t\t\t\t</DirectoryContextProvider>\n\t\t\t\t\t</AuthContextProvider>\n\t\t\t\t</ThemeContextProvider>\n\t\t\t</PageViewContextProvider>\n\t\t</ApolloProvider>\n\t);\n};\n","import { css } from \"styled-components\";\n\nexport const hideInPrint = css`\n\t@media print {\n\t\tdisplay: none;\n\t}\n`;\n","import { css } from \"styled-components\";\n\nexport const screenReaderOnly = css`\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n\n\t// Avoid browsers rendering the focus ring in some cases.\n\toutline: 0;\n\n\t// Avoid some cases where the browser will still render the native controls (see #9049).\n\t-webkit-appearance: none;\n\t-moz-appearance: none;\n`;\n","import { createGlobalStyle } from \"styled-components\";\nimport { tokens } from \"../tokens\";\n\nexport const ResetStyles = createGlobalStyle`\n h1,h2,h3,h4,h5,h6 {\n font-weight: 600;\n }\n h1,h2,h3,h4,h5,h6,p {\n margin: 0rem;\n }\n\n ol, ul {\n margin: 0;\n padding: 0;\n }\n\n input,\n button,\n textarea,\n select {\n font-family: inherit;\n }\n\n\thtml, body, #app {\n @media not print {\n height: 100%;\n overflow: hidden;\n }\n }\n\n body {\n margin: 0;\n font-family: ${tokens.fonts.system};\n background-color: ${tokens.colors.gray30};\n color: ${tokens.colors.gray160};\n }\n\n /* hide focus outline for mouse interactions */\n :focus:not(:focus-visible) {\n outline: none;\n }\n\n *,*::before,*::after {\n box-sizing: border-box;\n }\n`;\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport function useNavigationPerfMarker() {\n\tconst location = useLocation();\n\tuseEffect(() => {\n\t\tperformance.mark(\"Navigation-Start\", { detail: location.pathname });\n\t}, [location.pathname]);\n}\n","import { RefObject, useLayoutEffect } from \"react\";\n\ntype OnSizeChangeCallback<T extends Element> = (size: ResizeObserverSize, target: T) => void;\n\nexport function useResizeObserver<T extends Element>(ref: RefObject<T>, onSizeChange: OnSizeChangeCallback<T>): void;\nexport function useResizeObserver<T extends Element>(element: T, onSizeChange: OnSizeChangeCallback<T>): void;\nexport function useResizeObserver<T extends Element>(refOrElement: T | RefObject<T>, onSizeChange: OnSizeChangeCallback<T>) {\n\tuseLayoutEffect(() => {\n\t\tconst targetNode = refOrElement instanceof Element ? refOrElement : refOrElement?.current;\n\t\tif (!targetNode) return;\n\n\t\tconst resizeObserver = new ResizeObserver((entries) => {\n\t\t\tconst size = entries?.[0].borderBoxSize?.[0];\n\t\t\tif (size) {\n\t\t\t\tonSizeChange(size, targetNode as T);\n\t\t\t}\n\t\t});\n\n\t\tresizeObserver.observe(targetNode);\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [onSizeChange]);\n}\n","import { useCallback } from \"react\";\nimport { SITE_MAIN_ID } from \"../components/app-root/app-root\";\n\n/**\n * Set focus on the main element of the page\n */\nexport function useSkipToMain() {\n\treturn useCallback(() => {\n\t\t(document.querySelector(`#${SITE_MAIN_ID}`) as HTMLElement)?.focus();\n\t}, []);\n}\n","import { gql } from \"@apollo/client\";\nimport { NotificationAudience } from \"@hits/rest-api-types\";\n\nexport const ALL_COMMUNICATIONS = gql`\n\tquery AllCommunications {\n\t\tcommunications {\n\t\t\tmessage\n\t\t\taudience\n\t\t}\n\t}\n`;\n\nexport interface AllCommunications {\n\tcommunications: {\n\t\tmessage: string;\n\t\taudience: NotificationAudience;\n\t}[];\n}\n","import { useQuery } from \"@apollo/client\";\nimport { MessageBar } from \"@fluentui/react\";\nimport { NotificationAudience } from \"@hits/rest-api-types\";\nimport React, { useState } from \"react\";\nimport { AllCommunications, ALL_COMMUNICATIONS } from \"../../apis/queries/communications\";\n\nconst ALLOWED_AUDIENCE: NotificationAudience[] = [\"Users\"];\n\n// HACK message for `NonWDGUsers` audience contains special html that requires additional javascript from legacy UI to handle.\n// We cannot show it here until there is a compatible format for both frontends\n\nexport const CommunicationMessage: React.FC = () => {\n\tconst { data } = useQuery<AllCommunications>(ALL_COMMUNICATIONS);\n\tconst [isVisible, setIsVisible] = useState(true); // TODO this should be remembered for each user with localStorage API\n\n\t// TODO currently, audience type is hard coded to just \"Users\". We need to determine this on the fly based the actual user's audience type\n\tconst displayableMessage = data?.communications?.filter((message) => ALLOWED_AUDIENCE.includes(message.audience))?.[0];\n\n\treturn displayableMessage && isVisible ? (\n\t\t<MessageBar aria-live=\"polite\" onDismiss={() => setIsVisible(false)} dismissButtonAriaLabel=\"Close\">\n\t\t\t<span dangerouslySetInnerHTML={{ __html: displayableMessage.message }}></span>\n\t\t</MessageBar>\n\t) : null;\n};\n","import { useEffect, useState } from \"react\";\n\nexport function useIsOffline() {\n\tconst [isOffline, setIsOffline] = useState(!navigator.onLine);\n\n\tuseEffect(() => {\n\t\tconst handleDisconnect = setIsOffline.bind(null, true);\n\t\twindow.addEventListener(\"offline\", handleDisconnect);\n\t\treturn () => window.removeEventListener(\"offline\", handleDisconnect);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst handleReconnect = setIsOffline.bind(null, false);\n\t\twindow.addEventListener(\"online\", handleReconnect);\n\t\treturn () => window.removeEventListener(\"online\", handleReconnect);\n\t}, []);\n\n\treturn isOffline;\n}\n","import { MessageBar, MessageBarType } from \"@fluentui/react\";\nimport React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useIsOffline } from \"../../utils/use-is-offline\";\nimport { RestylableLink } from \"../shared/link/link\";\n\nexport const NetworkStatusMessage: React.FC = () => {\n\tconst [isVisible, setIsVisible] = useState(true);\n\tconst isOffline = useIsOffline();\n\tconst [isOfflineOnce, setIsOfflineOnce] = useState(isOffline);\n\n\tuseEffect(() => {\n\t\tif (isOfflineOnce) return;\n\n\t\tsetIsOfflineOnce(isOffline);\n\t}, [isOffline, isOfflineOnce]);\n\n\treturn isOfflineOnce && isVisible ? (\n\t\t<MessageBar\n\t\t\taria-live=\"assertive\"\n\t\t\tdismissButtonAriaLabel=\"Close\"\n\t\t\tmessageBarType={isOffline ? MessageBarType.severeWarning : MessageBarType.warning}\n\t\t\tonDismiss={() => setIsVisible(false)}\n\t\t>\n\t\t\t{isOffline && \"Network connection lost. Please verify your network connection.\"}\n\t\t\t{!isOffline && (\n\t\t\t\t<>\n\t\t\t\t\tNetwork connection disrupted. Please <EmbeddedLink href={location.href}>reload the page</EmbeddedLink> to resolve any issues.\n\t\t\t\t</>\n\t\t\t)}\n\t\t</MessageBar>\n\t) : null;\n};\n\nconst EmbeddedLink = styled(RestylableLink)`\n\tpadding: 0 !important; // fluent UI forces unnecessary padding on links\n`;\n","import { gql } from \"@apollo/client\";\nimport { PageViewEntityType } from \"@hits/rest-api-types\";\n\nexport const SEARCHBOX_HISTORY_ITEMS = gql`\n\tquery PageViews($args: PageViewsArgs!) {\n\t\tpageViews(args: $args) {\n\t\t\tentityId\n\t\t\tentityType\n\t\t\ttimestamp\n\t\t\trelatedEntity {\n\t\t\t\ttitle\n\t\t\t\tisConfidential\n\t\t\t\tisDeleted\n\t\t\t\tisPublished\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface SearchboxHistoryItemsOutput {\n\tpageViews: {\n\t\tentityId: number;\n\t\tentityType: PageViewEntityType;\n\t\ttimestamp: string;\n\t\trelatedEntity: {\n\t\t\ttitle: string;\n\t\t\tisConfidential: boolean;\n\t\t\tisDeleted: boolean;\n\t\t\tisPublished: boolean;\n\t\t} | null;\n\t}[];\n}\n\nexport interface SearchboxHistoryItemsInput {\n\targs: {\n\t\tuserId: number;\n\t\tlimit: number;\n\t};\n}\n","import React, { createContext, useContext } from \"react\";\n\nexport interface TrackerContextProviderType extends React.PropsWithChildren {\n\tscope?: string;\n}\n\nexport interface TrackerContextType {\n\tpath: string[];\n}\n\nconst TrackerContext = createContext<TrackerContextType>({\n\tpath: [],\n});\n\n/**\n * The tracker context is designed to be nested.\n * When a tracker context is added, it will append the scope to the existing array of scopes.\n * This constructs a \"breadcrumb\" like structure to help tracking where an event occurs\n */\nexport const TrackerContextProvider: React.FC<TrackerContextProviderType> = (props) => {\n\tconst parentValue = useTrackerContext();\n\tconst newPath = [...parentValue.path, ...(props.scope ? [props.scope] : [])];\n\tconst updatedValue = { ...parentValue, path: newPath };\n\treturn <TrackerContext.Provider value={updatedValue}>{props.children}</TrackerContext.Provider>;\n};\n\nexport function useTrackerContext() {\n\treturn useContext(TrackerContext);\n}\n","import { useQuery } from \"@apollo/client\";\nimport { Dialog, DialogFooter, DialogType, PrimaryButton } from \"@fluentui/react\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { META, Meta } from \"../../../apis/queries/meta\";\n\nexport interface AboutDialogProps {\n\thidden: boolean;\n\tonClose: () => void;\n}\n\nexport const AboutDialog: React.FC<AboutDialogProps> = (props) => {\n\tconst { data: metaData, loading: isServerVersionLoading } = useQuery<Meta>(META);\n\n\treturn (\n\t\t<Dialog\n\t\t\thidden={props.hidden}\n\t\t\tonDismiss={props.onClose}\n\t\t\tdialogContentProps={{\n\t\t\t\ttitle: \"About\",\n\t\t\t\ttype: DialogType.normal,\n\t\t\t}}\n\t\t>\n\t\t\t<dl>\n\t\t\t\t<StyledDescriptionTerm>Branch</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails> {process.env.SOURCE_BRANCH_NAME}</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>Build</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>{process.env.BUILD_ID}</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>Web package</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>{process.env.WEB_PACKAGE_VERSION}</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>API server package</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>{isServerVersionLoading ? \"Loading…\" : metaData?.meta.packageVersion ?? \"Unknown\"}</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>API server node</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>{isServerVersionLoading ? \"Loading…\" : metaData?.meta.nodeVersion ?? \"Unknown\"}</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>API server functions extension</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>\n\t\t\t\t\t{isServerVersionLoading ? \"Loading…\" : metaData?.meta.functionsExtensionVersionRequested ?? \"Unknown\"}\n\t\t\t\t</StyledDescriptionDetails>\n\t\t\t\t<StyledDescriptionTerm>Last commit</StyledDescriptionTerm>\n\t\t\t\t<StyledDescriptionDetails>{process.env.COMMIT_HASH}</StyledDescriptionDetails>\n\t\t\t</dl>\n\t\t\t<DialogFooter>\n\t\t\t\t<PrimaryButton onClick={props.onClose} text=\"Close\" />\n\t\t\t</DialogFooter>\n\t\t</Dialog>\n\t);\n};\n\nconst StyledDescriptionTerm = styled.dt`\n\tfont-weight: 600;\n`;\n\nconst StyledDescriptionDetails = styled.dd`\n\tmargin: 0 0 8px 0;\n\tfont-family: monospace;\n`;\n","export interface FormatTitleConfig {\n\tfallbackTitle?: string;\n\tisDraft?: boolean;\n\tdraftPrefix?: string;\n}\n\nconst DEFAULT_CONFIG: FormatTitleConfig = {\n\tfallbackTitle: \"Untitled\",\n\tdraftPrefix: \"(Draft) \", // notice the space\n\tisDraft: false,\n};\n\nexport function formatTitle(title?: string | null, config?: FormatTitleConfig) {\n\tconst { fallbackTitle, draftPrefix, isDraft } = { ...DEFAULT_CONFIG, ...config };\n\n\tconst partTitle = title?.trim().length ? title : fallbackTitle;\n\tconst partPrefix = isDraft ? draftPrefix : \"\";\n\n\treturn `${partPrefix}${partTitle}`;\n}\n","import React, { useEffect, useState } from \"react\";\n\nexport interface DelayedProps extends React.PropsWithChildren {\n\t/**\n\t * @default 0\n\t */\n\ttimeout?: number;\n}\n\nexport const Delayed: React.FC<DelayedProps> = ({ timeout = 0, children }) => {\n\tconst [isDelayedRenderReady, setIsDelayedRenderReady] = useState(false);\n\n\t// Ensure the live region is rendered first and the message appears next. Screenreaders such as NVDA and JAWS\n\t// will ignore the initial content in live region and only announce subsequent changes\n\tuseEffect(() => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsetIsDelayedRenderReady(true);\n\t\t}, timeout);\n\n\t\treturn () => clearTimeout(timeoutId);\n\t}, [timeout, children]);\n\n\treturn <>{isDelayedRenderReady ? children : null}</>;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { screenReaderOnly } from \"../../../styles/02-tools/screen-reader-only\";\nimport { Delayed } from \"../../../utils/delayed\";\n\nexport interface LiveAnnounceProps extends React.PropsWithChildren {\n\t/**\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n\t */\n\tpoliteness?: \"polite\" | \"assertive\";\n}\n\nexport const LiveAnnouncer: React.FC<LiveAnnounceProps> = (props) => {\n\tconst { politeness = \"polite\" } = props;\n\n\t// Ensure the message appears after a short delay\n\t// Screenreaders such as NVDA and JAWS will ignore the initial content in live\n\t// region and only announce subsequent changes\n\n\treturn (\n\t\t<AnnouncementRoot aria-atomic={true} aria-live={politeness}>\n\t\t\t<Delayed timeout={100}>{props.children}</Delayed>\n\t\t</AnnouncementRoot>\n\t);\n};\n\nconst AnnouncementRoot = styled.div`\n\t${screenReaderOnly}\n`;\n","import { Spinner } from \"@fluentui/react\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { LiveAnnouncer } from \"../live-announcer/live-announcer\";\n\nconst StyledSpinner = styled.div`\n\tmargin: var(--item-vertical-padding) var(--item-side-padding);\n\talign-self: start;\n\tjustify-content: start;\n`;\n\nexport interface InlineSpinnerProps {\n\t/** @default \"Loading…\" */\n\tlabel?: string;\n\tclassName?: string;\n}\n\n// Replace Fluent spinner aria-live with custom LiveAnnouncer because some screenreaders ignore\n// the initial label in the spinner\n\nexport const InlineSpinner: React.FC<InlineSpinnerProps> = (props) => (\n\t<>\n\t\t<StyledSpinner as={Spinner} className={props.className} aria-live={\"off\"} label={props.label ?? \"Loading…\"} labelPosition=\"right\" />\n\t\t<LiveAnnouncer>{props.label ?? \"Loading…\"}</LiveAnnouncer>\n\t</>\n);\n","import styled from \"styled-components\";\nimport { tokens } from \"../../../styles/tokens\";\n\n// Make sure the element is already on the page before setting any message\n// Screenreaders can ignore the initial content if it appears at the same time\n// as the initial rendering.\nexport const ExceptionMessage = styled.div`\n\tmargin: var(--item-vertical-padding) var(--item-side-padding);\n\tcolor: ${tokens.colors.gray160};\n\tfont-size: 14px;\n\n\t&:empty {\n\t\tdisplay: contents; // when empty, make sure it does not take up space in grid\n\t}\n`;\n","import styled from \"styled-components\";\nimport { tokens } from \"../../../styles/tokens\";\n\nexport const GroupTitle = styled.h2`\n\tdisplay: flex;\n\tfont-size: 16px;\n\tfont-weight: 600;\n\tcolor: ${tokens.colors.gray160};\n\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n`;\n","import { css } from \"styled-components\";\n\nexport const maxLineCount = (max: number) => css`\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: ${max};\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n`;\n","import styled from \"styled-components\";\nimport { maxLineCount } from \"../../../styles/02-tools/line-clamp\";\nimport { tokens } from \"../../../styles/tokens\";\nimport { RestylableLink } from \"../../shared/link/link\";\n\nexport const SuggestionItemPreview = styled.div`\n\tfont-size: 14px;\n\tdisplay: flex;\n\tcolor: ${tokens.colors.gray160};\n`;\n\nexport const SuggestionItem = styled(RestylableLink)`\n\tfont-size: 14px;\n\tline-height: 20px;\n\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n\tdisplay: flex;\n\ttext-decoration: none;\n\tcolor: ${tokens.colors.gray160};\n\toutline-offset: -1px;\n\n\t&:hover {\n\t\tcolor: black;\n\t\ttext-decoration: none;\n\t\tbackground-color: ${tokens.colors.gray20};\n\t}\n`;\n\nexport const SuggestionItemIcon = styled.i`\n\tuser-select: none;\n\tfont-size: 16px;\n\tmargin-right: 0.5rem;\n\tcolor: ${tokens.colors.gray130};\n`;\n\n// Transient props\n// Ref: https://styled-components.com/docs/api#transient-props\nexport interface SuggestionItemTextProps {\n\t$capitalize?: boolean;\n}\n\nexport const SuggestionItemText = styled.div<SuggestionItemTextProps>`\n\tcolor: inherit;\n\t${maxLineCount(3)};\n\t${(props) => props.$capitalize && `text-transform: capitalize;`}\n`;\n","import { useQuery } from \"@apollo/client\";\nimport { FontIcon } from \"@fluentui/react\";\nimport React from \"react\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { SearchboxHistoryItemsInput, SearchboxHistoryItemsOutput, SEARCHBOX_HISTORY_ITEMS } from \"../../../apis/queries/searchbox-history-items\";\nimport { useUserProfileContext } from \"../../../contexts/user-profile-context/user-profile-context\";\nimport { entityMeta } from \"../../../utils/entity-meta\";\nimport { formatTitle } from \"../../../utils/format-title\";\nimport { getReportUrl } from \"../../../utils/get-report-url\";\nimport { InlineSpinner } from \"../../shared/inline-spinner/inline-spinner\";\nimport { LiveAnnouncer } from \"../../shared/live-announcer/live-announcer\";\nimport { ExceptionMessage } from \"./_exception-message\";\nimport { GroupTitle } from \"./_group-title\";\nimport { SuggestionItem, SuggestionItemIcon, SuggestionItemText } from \"./_suggestion-item\";\n\nexport interface DropdownHistoryProps {\n\tclassName?: string;\n\tonOpenHistoryItem: (event: React.MouseEvent) => void;\n}\n\ninterface HistoryItem {\n\t/** a description with both content type and title, used for hover tooltip and screenreader */\n\ttooltip: string;\n\ttitle: string;\n\tlink: string;\n\ticonName: string;\n\ticonTooltip: string;\n}\n\nexport const DROPDOWN_PAGE_VIEW_LIMIT = 7;\n\nexport const DropdownHistory: React.FC<DropdownHistoryProps> = (props) => {\n\tconst userProfile = useUserProfileContext();\n\tconst { loading, error, data } = useQuery<SearchboxHistoryItemsOutput, SearchboxHistoryItemsInput>(SEARCHBOX_HISTORY_ITEMS, {\n\t\tvariables: {\n\t\t\targs: {\n\t\t\t\tuserId: userProfile.myProfile?.user.id ?? 0,\n\t\t\t\tlimit: DROPDOWN_PAGE_VIEW_LIMIT,\n\t\t\t},\n\t\t},\n\t\tskip: !userProfile.myProfile?.user.id,\n\t});\n\n\tconst displayItems: HistoryItem[] | [] =\n\t\tdata?.pageViews\n\t\t\t.filter((item) => item.relatedEntity)\n\t\t\t.map((item) => ({\n\t\t\t\ttooltip: `${entityMeta.get(item.entityType)!.displayName!}: ${item.relatedEntity!.title}`,\n\t\t\t\ttitle: formatTitle(item.relatedEntity!.title, { isDraft: !item.relatedEntity!.isPublished }),\n\t\t\t\tlink: getReportUrl(item.entityType, item.entityId),\n\t\t\t\ticonName: entityMeta.get(item.entityType)!.iconName!,\n\t\t\t\ticonTooltip: entityMeta.get(item.entityType)!.displayName!,\n\t\t\t})) || [];\n\n\treturn (\n\t\t<RecentSection className={props.className}>\n\t\t\t<GroupTitle>Recent</GroupTitle>\n\t\t\t{loading && <InlineSpinner />}\n\t\t\t{!loading &&\n\t\t\t\tdisplayItems!.length > 0 &&\n\t\t\t\tdisplayItems!.map((item) => (\n\t\t\t\t\t<SuggestionItem\n\t\t\t\t\t\tas={RouterLink}\n\t\t\t\t\t\tkey={item.link}\n\t\t\t\t\t\tto={item.link}\n\t\t\t\t\t\tdata-is-focusable={true}\n\t\t\t\t\t\ttitle={item.tooltip}\n\t\t\t\t\t\taria-label={item.tooltip}\n\t\t\t\t\t\tonClick={props.onOpenHistoryItem}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<SuggestionItemIcon as={FontIcon} iconName={item.iconName} aria-label={item.iconTooltip} title={item.iconTooltip} />\n\t\t\t\t\t\t<SuggestionItemText>{item.title}</SuggestionItemText>\n\t\t\t\t\t</SuggestionItem>\n\t\t\t\t))}\n\t\t\t<ExceptionMessage role=\"status\">\n\t\t\t\t{!loading && displayItems!.length === 0 && \"No recent items are found.\"}\n\t\t\t\t{error && \"Error loading recent items.\"}\n\t\t\t</ExceptionMessage>\n\t\t\t<LiveAnnouncer>{!loading && displayItems!.length > 0 && `Suggestions: ${displayItems.length} recent items`}</LiveAnnouncer>\n\t\t</RecentSection>\n\t);\n};\n\nconst RecentSection = styled.section`\n\tpadding-bottom: 8px;\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n","import { useEffect } from \"react\";\n\n/** Ref: https://usehooks.com/useOnClickOutside/ */\nexport function useOnClickOutside<T extends HTMLElement>(ref: React.RefObject<T>, handler: (e: MouseEvent | TouchEvent) => void) {\n\tuseEffect(\n\t\t() => {\n\t\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\t\t// Do nothing if clicking ref's element or descendent elements\n\t\t\t\tconst clickingTargetElement = event.target as HTMLElement;\n\n\t\t\t\tif (!ref.current || ref.current.contains(clickingTargetElement)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\thandler(event);\n\t\t\t};\n\n\t\t\tdocument.addEventListener(\"mousedown\", listener);\n\t\t\tdocument.addEventListener(\"touchstart\", listener);\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener(\"mousedown\", listener);\n\t\t\t\tdocument.removeEventListener(\"touchstart\", listener);\n\t\t\t};\n\t\t},\n\t\t// Add ref and handler to effect dependencies\n\t\t// It's worth noting that because passed in handler is a new ...\n\t\t// ... function on every render that will cause this effect ...\n\t\t// ... callback/cleanup to run every render. It's not a big deal ...\n\t\t// ... but to optimize you can wrap handler in useCallback before ...\n\t\t// ... passing it into this hook.\n\t\t[ref, handler]\n\t);\n}\n","import { useEffect } from \"react\";\n\n/** execute a function when the focus leaves a DOM tree */\nexport function useOnFocusOut<T extends HTMLElement>(ref: React.RefObject<T>, handler: (e: FocusEvent) => void, ignoreNull = true) {\n\tuseEffect(() => {\n\t\tconst listener = (event: FocusEvent) => {\n\t\t\tconst newFocusTarget = event.relatedTarget as HTMLElement | null;\n\t\t\tif (ignoreNull && !newFocusTarget) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!ref.current || ref.current.contains(newFocusTarget)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandler(event);\n\t\t};\n\n\t\tref.current?.addEventListener(\"focusout\", listener);\n\n\t\treturn () => {\n\t\t\tref.current?.removeEventListener(\"focusout\", listener);\n\t\t};\n\t}, [ref, handler]);\n}\n","import { Filters } from \"./use-managed-url\";\n\nexport const ALLOWED_FILTERS: (keyof Filters)[] = [\n\t\"entityTypes\",\n\t\"topicIds\",\n\t\"groupIds\",\n\t\"productIds\",\n\t\"methodIds\",\n\t\"researcherIds\",\n\t\"publishDateRange\",\n\t\"isPublished\",\n];\n\nconst filterTypes: { [K in keyof Filters]: string } = {\n\tentityTypes: \"array\",\n\ttopicIds: \"array\",\n\tproductIds: \"array\",\n\tmethodIds: \"array\",\n\tgroupIds: \"array\",\n\tresearcherIds: \"array\",\n\tpublishDateRange: \"array\",\n\tisPublished: \"boolean\",\n};\n\nexport function getFilterValues<T extends keyof Filters>(searchObject: URLSearchParams, key: T): Filters[T] {\n\tconst raw = searchObject.get(key);\n\tif (!raw) {\n\t\tif (filterTypes[key] === \"array\") {\n\t\t\treturn [] as any;\n\t\t} else {\n\t\t\treturn undefined as any;\n\t\t}\n\t}\n\treturn JSON.parse(raw);\n}\n\n/**\n * @return a copy of the URLSearchParams object in which the given facet will be filtered to the given values\n */\nexport function replaceFiltersFacetValues<T extends keyof Filters>(searchObject: URLSearchParams, key: T, values: Filters[T]): URLSearchParams {\n\tconst mutableSearchObj = new URLSearchParams(searchObject.toString());\n\treturn setFiltersFacetValues(mutableSearchObj, key, values);\n}\n\nfunction setFiltersFacetValues<T extends keyof Filters>(searchObject: URLSearchParams, key: T, values: Filters[T]): URLSearchParams {\n\tif ((Array.isArray(values) && !values.length) || values === undefined) searchObject.delete(key);\n\telse searchObject.set(key, JSON.stringify(values));\n\n\treturn searchObject;\n}\n\n/**\n * Return a copy of the searchParams object with the given filters\n */\nexport function getFiltersQueryParamString(searchParams: URLSearchParams, filters?: Partial<Filters>): URLSearchParams {\n\tconst mutableSearchObj = new URLSearchParams(searchParams.toString());\n\tif (!filters) return mutableSearchObj;\n\n\tsetFiltersFacetValues(mutableSearchObj, \"entityTypes\", filters.entityTypes ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"productIds\", filters.productIds ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"topicIds\", filters.topicIds ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"methodIds\", filters.methodIds ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"groupIds\", filters.groupIds ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"researcherIds\", filters.researcherIds ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"publishDateRange\", filters.publishDateRange ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"publishDateRange\", filters.publishDateRange ?? []);\n\tsetFiltersFacetValues(mutableSearchObj, \"isPublished\", filters.isPublished);\n\n\treturn mutableSearchObj;\n}\n\nexport function getFiltersFromSearchObject(searchObject: URLSearchParams): Filters {\n\treturn Object.fromEntries(\n\t\tALLOWED_FILTERS.map((filterKey) => {\n\t\t\tconst filterValue = getFilterValues(searchObject, filterKey);\n\t\t\treturn filterValue ? [filterKey, filterValue] : null;\n\t\t}).filter((entry): entry is [string, any] => entry !== null)\n\t) as Filters;\n}\n","import { getFiltersQueryParamString } from \"./search-url-utils\";\nimport { Filters, Sort } from \"./use-managed-url\";\n\nexport interface BuildSearchUrlOptions {\n\tquery: string;\n\tspellCheck?: boolean;\n\tfilters?: Partial<Filters>;\n\tsort?: Sort;\n}\nexport const buildSearchUrl = (options: BuildSearchUrlOptions) => {\n\tlet urlSearchParams = new URLSearchParams(\"top=10\");\n\turlSearchParams.set(\"q\", options.query);\n\t// `undefined` should not trigger this logic\n\tif (options.spellCheck === false) {\n\t\turlSearchParams.set(\"spellCheck\", \"false\");\n\t}\n\tif (options.filters) {\n\t\turlSearchParams = getFiltersQueryParamString(urlSearchParams, options.filters);\n\t}\n\n\tif (options.sort) {\n\t\turlSearchParams.set(\"sort\", options.sort);\n\t}\n\n\tconst url = `/search?${urlSearchParams.toString()}`;\n\n\treturn url;\n};\n","import { EntityType } from \"@hits/rest-api-types\";\nimport { useCallback, useMemo } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { getFiltersFromSearchObject, replaceFiltersFacetValues } from \"./search-url-utils\";\n\nexport const EMPTY_QUERY = \"*\";\nconst DEFAULT_SKIP = 0;\nconst DEFAULT_TOP = 10;\n\nexport type Sort = \"most-relevant\" | \"most-recent\";\nconst DEFAULT_SORT = \"most-relevant\";\n\nexport interface Filters {\n\tentityTypes: EntityType[];\n\ttopicIds: number[];\n\tproductIds: number[];\n\tmethodIds: number[];\n\tgroupIds: number[];\n\tresearcherIds: number[];\n\tpublishDateRange: string[]; // [from, to]\n\tisPublished?: boolean;\n}\n\nexport interface UseManagedUrlOutput {\n\tfullQuery: string;\n\tq: string;\n\tsort: Sort;\n\tfilters: Filters;\n\ttop: number;\n\tskip: number;\n\tcurrentPage: number; // After skipping, which page (0 based) are the results on\n\tspellCheck: boolean;\n\tsetQ: (q: string) => void;\n\tsetSort: (sort: Sort) => void;\n\tsetSkip: (skip: number) => void;\n\tsetPage: (page: number) => void;\n\tsetPrevPage: () => void;\n\tsetNextPage: () => void;\n\tsetFiltersFacet: SetFiltersFacet;\n\tsetFiltersFacetValueItem: SetFiltersFacetValueItem;\n\tsetSpellCheck: (isSpellCheck: boolean) => void;\n}\n\nexport type SetFiltersFacet = <T extends keyof Filters>(facet: T, values: Filters[T]) => void;\nexport type SetFiltersFacetValueItem = <T extends keyof Filters>(\n\tfacet: T,\n\tvalueItem: Filters[T] extends any[] ? Filters[T][0] : Filters[T],\n\tinclude: boolean\n) => void;\n\nexport function useManagedUrl(): UseManagedUrlOutput {\n\tconst { search, pathname } = useLocation();\n\tconst navigate = useNavigate();\n\n\tconst searchObject = useMemo(() => {\n\t\tconst result = new URLSearchParams(search);\n\n\t\t// ensure required values\n\t\tif (!result.get(\"q\")) result.set(\"q\", EMPTY_QUERY);\n\t\tif (!result.get(\"top\")) result.set(\"top\", DEFAULT_TOP.toString());\n\t\tif (!result.get(\"sort\")) result.set(\"sort\", DEFAULT_SORT);\n\n\t\treturn result;\n\t}, [search]);\n\n\t/*\n\t * ===========\n\t * GETTERS\n\t * ===========\n\t */\n\n\tconst q = useMemo(() => searchObject.get(\"q\")!, [searchObject]);\n\tconst top = useMemo(() => parseInt(searchObject.get(\"top\")!), [searchObject]);\n\tconst sort = useMemo(() => searchObject.get(\"sort\") as Sort, [searchObject]);\n\n\tconst filters = useMemo(() => {\n\t\treturn getFiltersFromSearchObject(searchObject);\n\t}, [searchObject]);\n\n\tconst skip = useMemo(() => {\n\t\tconst skipString = searchObject.get(\"skip\");\n\t\treturn skipString ? parseInt(skipString) : DEFAULT_SKIP;\n\t}, [searchObject]);\n\n\tconst currentPage = useMemo(() => {\n\t\tif (skip % top > 0) {\n\t\t\tconsole.error(`[search] skip(=${skip}) is not multiples of top(=${top})`);\n\t\t}\n\n\t\treturn Math.floor(skip / top);\n\t}, [top, skip]);\n\n\tconst spellCheck = useMemo(() => {\n\t\t// by default, we should include spell correction results.\n\t\tconst spellCheckString = searchObject.get(\"spellCheck\");\n\t\treturn spellCheckString !== \"false\"; // watch out, this is a string\n\t}, [searchObject]);\n\n\t/*\n\t * ===========\n\t * SETTERS\n\t * ===========\n\t */\n\tconst setSpellCheck = useCallback(\n\t\t(isSpellCheck: boolean) => {\n\t\t\tif (isSpellCheck) {\n\t\t\t\tsearchObject.delete(\"spellCheck\");\n\t\t\t} else {\n\t\t\t\tsearchObject.set(\"spellCheck\", \"false\");\n\t\t\t}\n\n\t\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\t\tnavigate(newUrl);\n\t\t},\n\t\t[pathname, searchObject]\n\t);\n\n\tconst setQ = useCallback(\n\t\t(q: string) => {\n\t\t\t// updating query should bust all pagination and filter\n\t\t\t_resetPagination();\n\t\t\t_resetFilters();\n\n\t\t\tsearchObject.set(\"q\", q);\n\t\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\t\tnavigate(newUrl);\n\t\t},\n\t\t[pathname, searchObject]\n\t);\n\n\tconst setSort = useCallback(\n\t\t(sort: Sort) => {\n\t\t\tsearchObject.set(\"sort\", sort);\n\n\t\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\t\tnavigate(newUrl);\n\t\t},\n\t\t[pathname, searchObject]\n\t);\n\n\tconst setSkip = useCallback(\n\t\t(skip: number) => {\n\t\t\tif (skip > 0) {\n\t\t\t\tsearchObject.set(\"skip\", skip.toString());\n\t\t\t} else {\n\t\t\t\tsearchObject.delete(\"skip\");\n\t\t\t}\n\n\t\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\t\tnavigate(newUrl);\n\t\t},\n\t\t[pathname, searchObject]\n\t);\n\n\tconst setFiltersFacet = useCallback(\n\t\t<T extends keyof Filters>(facet: T, values: Filters[T]) => {\n\t\t\t_resetPagination();\n\n\t\t\tconst newSearchObj = replaceFiltersFacetValues(searchObject, facet, values);\n\n\t\t\tconst newUrl = `${pathname}?${newSearchObj}`;\n\t\t\tnavigate(newUrl);\n\t\t},\n\t\t[pathname, searchObject]\n\t);\n\n\tconst setFiltersFacetValueItem = useCallback(\n\t\t<T extends keyof Filters>(facet: T, valueItem: Filters[T] extends any[] ? Filters[T][0] : Filters[T], include: boolean) => {\n\t\t\tlet newValues: Filters[T];\n\n\t\t\tif (Array.isArray(filters[facet])) {\n\t\t\t\tnewValues = [...(filters[facet] as any[])] as Filters[T];\n\n\t\t\t\tif (include) {\n\t\t\t\t\t(newValues as any[]).push(valueItem);\n\t\t\t\t} else {\n\t\t\t\t\tnewValues = (newValues as any[]).filter((value) => value !== valueItem) as Filters[T];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnewValues = valueItem;\n\t\t\t}\n\n\t\t\tsetFiltersFacet(facet, newValues);\n\t\t},\n\t\t[filters, setFiltersFacet]\n\t);\n\n\tconst setPage = useCallback((page: number) => setSkip(page * top), [setSkip, top]);\n\tconst setPrevPage = useCallback(() => setSkip(Math.max(skip - top, 0)), [skip, setSkip, top]);\n\tconst setNextPage = useCallback(() => setSkip(Math.max(skip + top)), [skip, setSkip, top]);\n\n\tconst _resetPagination = useCallback(() => {\n\t\tsearchObject.delete(\"skip\");\n\n\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\tnavigate(newUrl, { replace: true });\n\t}, [pathname, searchObject]);\n\n\tconst _resetFilters = useCallback(() => {\n\t\tsearchObject.delete(\"filter\");\n\n\t\tconst newUrl = `${pathname}?${searchObject}`;\n\t\tnavigate(newUrl, { replace: true });\n\t}, [pathname, searchObject]);\n\n\treturn {\n\t\tcurrentPage,\n\t\tfilters,\n\t\tfullQuery: searchObject.toString(),\n\t\tq,\n\t\tskip,\n\t\tsort,\n\t\tspellCheck,\n\t\ttop,\n\t\tsetFiltersFacet,\n\t\tsetFiltersFacetValueItem,\n\t\tsetNextPage,\n\t\tsetPage,\n\t\tsetPrevPage,\n\t\tsetQ,\n\t\tsetSkip,\n\t\tsetSort,\n\t\tsetSpellCheck,\n\t};\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { palette } from \"../../../styles/theme\";\nimport { RestylableLink } from \"../../shared/link/link\";\n\nexport interface DropdownFooterProps {\n\tclassName?: string;\n\tviewAllLink: string;\n\tviewAllLabel: string;\n\thideViewAllLink?: boolean;\n\tonOpenAllResults: () => void;\n\tonOpenAdvancedSearch: () => void;\n}\n\nexport const DropdownFooter: React.FC<DropdownFooterProps> = (props) => {\n\treturn (\n\t\t<StyledDiv className={props.className}>\n\t\t\t{!props.hideViewAllLink && (\n\t\t\t\t<AllResultsLink as={Link} to={props.viewAllLink} onClick={props.onOpenAllResults}>\n\t\t\t\t\t{props.viewAllLabel}\n\t\t\t\t</AllResultsLink>\n\t\t\t)}\n\t\t\t<AdvancedSearchLink as={Link} to={`/Search/Advanced`} onClick={props.onOpenAdvancedSearch}>\n\t\t\t\tAdvanced search\n\t\t\t</AdvancedSearchLink>\n\t\t</StyledDiv>\n\t);\n};\n\nconst StyledDiv = styled.div`\n\ttext-decoration: none;\n\tfont-size: 14px;\n\tdisplay: flex;\n\tbackground-color: ${palette.neutralLighter};\n\n\t.all-results {\n\t\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n\t\tmargin-right: auto;\n\t}\n\t.advanced-search {\n\t\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n\t\tmargin-left: auto;\n\t}\n`;\n\nconst AllResultsLink = styled(RestylableLink)`\n\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n\tmargin-right: auto;\n\tcolor: ${palette.themeDarkAlt};\n`;\n\nconst AdvancedSearchLink = styled(RestylableLink)`\n\tpadding: var(--item-vertical-padding) var(--item-side-padding);\n\tmargin-left: auto;\n\tcolor: ${palette.neutralSecondary};\n`;\n","import { gql } from \"@apollo/client\";\nimport { EntityType, HubEntityType } from \"@hits/rest-api-types\";\n\nconst HUB_SUGGESTION_FRAGMENT = gql`\n\tfragment HubSuggestionFragment on Hub {\n\t\tid\n\t\ttagName\n\t\ttagReferenceId\n\t\tdisplayName\n\t\ttype\n\t}\n`;\n\nexport interface HubSuggestionFragment {\n\tid: number;\n\ttagName: string;\n\ttagReferenceId: number;\n\tdisplayName: string;\n\ttype: HubEntityType;\n}\n\nexport interface DocumentSuggestionItem {\n\tentityType: EntityType;\n\thighlights: string[];\n\tid: number;\n\tisPublished: boolean;\n\ttitle: string;\n}\n\nexport const SEARCH_SUGGESTIONS = gql`\n\tquery SearchSuggestions($args: SearchSuggestionsArgs!) {\n\t\tsearchSuggestions(args: $args) {\n\t\t\tphrases {\n\t\t\t\thtml\n\t\t\t\ttext\n\t\t\t}\n\t\t\thubsExact {\n\t\t\t\t...HubSuggestionFragment\n\t\t\t}\n\t\t\thubsWordStart {\n\t\t\t\t...HubSuggestionFragment\n\t\t\t}\n\t\t\tdocumentSummary {\n\t\t\t\tcount\n\t\t\t\titems {\n\t\t\t\t\tentityType\n\t\t\t\t\thighlights\n\t\t\t\t\tid\n\t\t\t\t\tisPublished\n\t\t\t\t\ttitle\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t${HUB_SUGGESTION_FRAGMENT}\n`;\n\nexport interface SearchSuggestionsOutput {\n\tsearchSuggestions: {\n\t\tphrases: {\n\t\t\thtml: string;\n\t\t\ttext: string;\n\t\t}[];\n\t\thubsExact: HubSuggestionFragment[];\n\t\thubsWordStart: HubSuggestionFragment[];\n\t\tdocumentSummary: {\n\t\t\tcount: number;\n\t\t\titems: DocumentSuggestionItem[] | null;\n\t\t};\n\t};\n}\n\nexport interface SearchSuggestionsInput {\n\targs: {\n\t\tquery: string;\n\t};\n}\n","import { HubEntityType } from \"@hits/rest-api-types\";\nimport { entityMeta } from \"./entity-meta\";\n\nexport function getHubUrl(entityType: HubEntityType, tagName: string) {\n\tconst entityTypeSlug = entityMeta.get(entityType)?.slugName;\n\tconst itemNameSlug = tagName.toLocaleLowerCase();\n\n\tif (!entityTypeSlug) {\n\t\tconsole.error(\"Provided entity is not a hub entity. Home url is returned\");\n\t\treturn \"/\";\n\t}\n\n\treturn `/${entityTypeSlug}/${itemNameSlug}`;\n}\n","import { EntityType } from \"@hits/rest-api-types\";\nimport { entityMeta } from \"./entity-meta\";\n\n// currently, HITS only support displaying English or US locale.\nconst RULES = new Intl.PluralRules(\"en-US\");\n\nexport function pluralizeEntity(entityType: EntityType, count?: number): string | undefined {\n\tif (count === undefined) return undefined;\n\tif (typeof count !== \"number\") return undefined;\n\n\tswitch (RULES.select(count)) {\n\t\tcase \"one\":\n\t\t\treturn entityMeta.get(entityType)?.displayName;\n\t\tdefault:\n\t\t\treturn entityMeta.get(entityType)?.displayNamePlural;\n\t}\n}\n\nexport function pluralizeWord(baseWord: string, count = 0): string {\n\tconst dictionaryEntry = DICTIONARY.get(baseWord);\n\n\tif (dictionaryEntry) {\n\t\treturn dictionaryEntry[RULES.select(count)];\n\t} else {\n\t\tswitch (RULES.select(count)) {\n\t\t\tcase \"one\":\n\t\t\t\treturn baseWord;\n\t\t\tdefault:\n\t\t\t\treturn baseWord + \"s\";\n\t\t}\n\t}\n}\n\nexport type DictionaryEntry = Record<Intl.LDMLPluralRule, string>;\n\n/**\n * This will be replaced by machine generated resource file, once hits support multi-language\n */\nconst DICTIONARY = new Map<string, DictionaryEntry>();\n","import { useEffect, useState } from \"react\";\n\nexport const useDebounce = (value: string, initialValue: string, delayInMs: number) => {\n\tconst [debouncedValue, setDebouncedValue] = useState<string>(initialValue);\n\n\tuseEffect(() => {\n\t\tconst handler = setTimeout(() => {\n\t\t\tsetDebouncedValue(value);\n\t\t}, delayInMs);\n\n\t\treturn () => {\n\t\t\tclearTimeout(handler);\n\t\t};\n\t}, [value, delayInMs]);\n\n\treturn debouncedValue;\n};\n","import { HubEntityType } from \"@hits/rest-api-types\";\nimport { entityTypes } from \"../../../utils/entity-meta\";\n\ninterface RawHubSuggestion {\n\tid: number;\n\tdisplayName: string;\n\tentityType: HubEntityType;\n\ttagName: string;\n}\n\n/**\n * Deduplicate and remove irrelevant suggestions\n */\nexport function normalizeHubSuggestions<T extends RawHubSuggestion>(rawSuggestions: T[], query: string): T[] {\n\tconst lowerCasePhrase = query.toLocaleLowerCase();\n\tconst normalizedItems = getUniqueSuggestions(rawSuggestions).filter((item) => isSuggestionRelevant(item, lowerCasePhrase));\n\n\treturn normalizedItems;\n}\n\nfunction getUniqueSuggestions<T extends RawHubSuggestion>(suggestions: T[]): T[] {\n\treturn [...new Set(suggestions.map((item) => item.id))].map((id) => suggestions.find((item) => item.id === id)!);\n}\n\nfunction isSuggestionRelevant<T extends RawHubSuggestion>(item: T, lowerCasePhrase: string): boolean {\n\treturn (\n\t\t// non-people result: honor original result\n\t\titem.entityType !== entityTypes.user ||\n\t\t// people result: make sure we don't look into parenthetical string such as Joe Smith (Azure), or Megan Smith (SHE/HER), as well as any vendor company names\n\t\titem.displayName\n\t\t\t.replace(/\\([^)]*\\)/g, \"\")\n\t\t\t.toLocaleLowerCase()\n\t\t\t.includes(lowerCasePhrase) ||\n\t\t// and support alias by matching tagName\n\t\titem.tagName.toLocaleLowerCase().includes(lowerCasePhrase)\n\t);\n}\n","import { EventType } from \"@hits/rest-api-types\";\n\ninterface EventTypeObject {\n\taddSearchPageFilter: EventType.AddSearchPageFilter;\n\tendDiscoverSession: EventType.EndDiscoverSession;\n\tendSearchBoxSession: EventType.EndSearchBoxSession;\n\tendSearchPageSession: EventType.EndSearchPageSession;\n\topenContent: EventType.OpenContent;\n}\n\nexport const eventTypes: EventTypeObject = {\n\taddSearchPageFilter: 31,\n\tendDiscoverSession: 32,\n\tendSearchBoxSession: 33,\n\tendSearchPageSession: 34,\n\topenContent: 35,\n};\n","import { EntityType, EventType, HitsRole } from \"@hits/rest-api-types\";\nimport { useMemo, useRef } from \"react\";\nimport { PresentationConfiguration } from \"../components/presentation-page/presentation-config-hooks\";\nimport { OmniboxMode } from \"../components/report-page/link-dialog/link-dialog\";\nimport { Filters } from \"../components/search-page/use-managed-url\";\nimport { useTrackerContext } from \"../contexts/tracker-context\";\nimport { appInsights } from \"./app-insights\";\nimport { LinkDialogMode } from \"./bifrost-types\";\nimport { eventTypes } from \"./event-meta\";\nimport { useSessionPromoCode } from \"./use-session-promo-code\";\n\n// Please sort A-Z\n\nexport const useTrackAddFollow = () => useEventTrackerFactory<AddDiscoverInterest>(\"add-follow\");\nexport const useTrackAddSearchPageFilter = () => useEventTrackerFactory<AddSearchPageFilter>(\"add-search-page-filter\", eventTypes.addSearchPageFilter);\nexport const useTrackCreate = () => useEventTrackerFactory<CreateSummary>(\"create\");\nexport const useTrackEndDiscoverSession = () => useEventTrackerFactory<DiscoverSessionSummary>(\"end-discover-session\", eventTypes.endDiscoverSession);\nexport const useTrackEndSearchBoxSession = () => useEventTrackerFactory<SearchBoxSessionSummary>(\"end-search-box-session\", eventTypes.endSearchBoxSession);\nexport const useTrackEndSearchPageSession = () => useEventTrackerFactory<SearchPageSessionSummary>(\"end-search-page-session\", eventTypes.endSearchPageSession);\nexport const useTrackLinkDialogAction = () => useEventTrackerFactory<LinkDialogAction>(\"link-dialog-action\");\nexport const useTrackLoadFeed = () => useEventTrackerFactory<LoadFeed>(\"load-feed\");\nexport const useTrackOpenFeedContent = () => useEventTrackerFactory<OpenFeedContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackOpenHomeContent = () => useEventTrackerFactory<OpenHomeContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackOpenHubPageContent = () => useEventTrackerFactory<OpenHubPageContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackOpenRecommendedExplorations = () => useEventTrackerFactory<OpenBaseContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackOpenSearchBoxContent = () => useEventTrackerFactory<OpenSearchBoxContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackOpenSearchPageContent = () => useEventTrackerFactory<OpenSearchPageContent>(\"open-content\", eventTypes.openContent);\nexport const useTrackPresentationInvalidReconciliation = () => useEventTrackerFactory<PresentationInvalidReconciliation>(\"presentation-reconciliation-invalid\");\nexport const useTrackTimeSpent = () => useMetricTrackerFactory<BaseMetricDataObject>(\"TimeSpent\");\n\nexport interface AddDiscoverInterest {\n\ttagName: string;\n\tentityType: EntityType;\n}\n\nexport interface AddSearchPageFilter {\n\tfacetName: string;\n\tselectedOptionIndex?: number;\n\tavailableOptionCount?: number;\n\tresultCountForOption?: number;\n\tcustomData?: any;\n}\n\nexport type ComponentDuration = {\n\tduration: number;\n};\n\nexport interface CreateSummary {\n\tentityType?: number;\n\ttemplateId?: number;\n\tcreatorRoles: HitsRole[];\n\tduration: number;\n}\n\nexport type DiscoverExitAction = \"open\" | \"ignore\" | \"browse\";\n\nexport interface DiscoverSessionSummary {\n\tscrollDistance: number;\n\topenItemCount: number;\n\tloadMoreTripCount: number;\n\texitAction: DiscoverExitAction;\n\tisDiscoveryPrioritized: boolean;\n\tduration: number;\n}\n\nexport interface LinkDialogAction {\n\tdialogMode: LinkDialogMode;\n\tomniboxMode: OmniboxMode;\n\tisSuccess: boolean;\n}\n\nexport interface OpenBaseContent {\n\tentityId?: number;\n\tentityType?: EntityType;\n\tkind?: string;\n\tindex?: number;\n}\n\nexport interface OpenHomeContent extends OpenBaseContent {\n\topenInEditor?: boolean;\n}\n\n/**\n * Events from the hub result card\n * \"explore\" - open the primary matching hub page\n * \"entity\" - open report or person from the primary matching hub details\n * \"suggested-page\" - open additional hub page results (secondary/partial match)\n */\nexport type SearchPageContentKindHub = \"explore\" | \"entity\" | \"suggested-page\";\nexport type SearchPageContentKindRanked = \"ranked\" | \"ranked-child\";\nexport type SearchPageContentKindNotesBundle = \"notes-bundle-item\";\n\nexport interface OpenSearchPageContent extends OpenBaseContent {\n\tkind: SearchPageContentKindHub | SearchPageContentKindRanked | SearchPageContentKindNotesBundle;\n\tpage: number;\n\tquery: string;\n\tfilters: Filters;\n\tresultCount: number;\n\tisCurated: boolean;\n}\n\nexport interface OpenHubPageContent extends OpenBaseContent {\n\tkind: \"hub\" | \"view-all-recent\" | \"report\" | \"hub-settings\" | \"get-link\" | \"child-category\" | \"parent-category\" | \"statistics\";\n}\n\nexport interface OpenFeedContent extends OpenBaseContent {\n\tindex: number;\n\tisDiscoverPrioritized: boolean;\n}\n\nexport type SearchBoxContentKind = \"entity\" | \"history\" | \"all\" | \"suggested-phrase\" | \"advanced-search\";\n\nexport interface OpenSearchBoxContent extends OpenBaseContent {\n\tkind: SearchBoxContentKind;\n}\n\nexport type SearchBoxExitAction = \"open\" | \"commit\" | \"abandon\";\n\nexport interface SearchBoxSessionSummary {\n\texitQuery: string | null;\n\texitAction: SearchBoxExitAction;\n\tduration: number;\n}\n\nexport type SearchPageExitAction = \"open\" | \"abandon\";\n\nexport interface SearchPageSessionSummary {\n\tattemptedQueries: string[];\n\tattemptedQueryCount: number;\n\tsuccessfulQueryCount: number; // queries that lead to at least one item opened\n\tfailedQueryCount: number; // queries that lead to no item opened\n\tquerySuccessRate: number;\n\tduration: number;\n\topenItemCount: number;\n\texitQuery: string;\n\texitResultCount: number | null;\n\texitAction: SearchPageExitAction;\n\texitFilters: Filters;\n\texitFilterCount: number;\n}\n\nexport interface LoadFeed {\n\tisInitial?: boolean;\n\trequestCount: number;\n\toverflowItemCount: number;\n\tduration?: number;\n}\n\nexport interface PresentationInvalidReconciliation {\n\tentityId: string;\n\tflattenedNodes: { id: string }[];\n\tcachedConfig: PresentationConfiguration;\n}\n\n/** ========= INTERNAL BELOW ========= */\n\n/** Create a tracker function that automatically detects the calling context and injects common metadata */\nfunction useEventTrackerFactory<T = unknown>(name: string, eventType?: EventType) {\n\tconst { path } = useTrackerContext();\n\n\tconst promoCode = useSessionPromoCode();\n\n\treturn useRef((data?: BaseDataObject & T) => {\n\t\tconst { scope, ...restOfData } = data || ({} as BaseDataObject);\n\t\tconst newPath = scope ? [...path, scope] : path;\n\t\tconst pathString = newPath.join(\"/\");\n\t\tconst uri = location.href;\n\t\tconst webPackageVersion = process.env.WEB_PACKAGE_VERSION;\n\t\tconst commitHash = process.env.COMMIT_HASH;\n\n\t\tappInsights.trackEvent({ name }, { ...restOfData, path: pathString, uri, promoCode, eventType, webPackageVersion, commitHash });\n\t}).current;\n}\n\n/** Create a matric tracker function that automatically detects the calling context and injects common metadata */\nfunction useMetricTrackerFactory<T = unknown>(name: string) {\n\tconst { path } = useTrackerContext();\n\n\treturn useMemo(\n\t\t() => (data?: BaseMetricDataObject & T) => {\n\t\t\tconst { scope, average, ...restOfData } = data || ({} as BaseMetricDataObject);\n\t\t\tconst newPath = scope ? [...path, scope] : path;\n\t\t\tconst pathString = newPath.join(\"/\");\n\t\t\tappInsights.trackMetric({ name, average }, { ...restOfData, path: pathString });\n\t\t},\n\t\t[path]\n\t);\n}\n\ninterface BaseDataObject {\n\t/** Use this parameter to append new scope to the tracking path in addition to the scopes already acquired from the context */\n\tscope?: string;\n}\n\ninterface BaseMetricDataObject {\n\t/** Use this parameter to append new scope to the tracking path in addition to the scopes already acquired from the context */\n\tscope?: string;\n\taverage: number;\n}\n","import { useCallback } from \"react\";\nimport {\n\tOpenSearchBoxContent,\n\tSearchBoxExitAction,\n\tSearchBoxSessionSummary,\n\tuseTrackEndSearchBoxSession,\n\tuseTrackOpenSearchBoxContent,\n} from \"../../../utils/use-tracker\";\n\n// since we have only one search box per site, we can safely use module scope variables outside of hook\nlet uploadedExitAction: SearchBoxExitAction | null = null;\nlet isDropdownOpen = false;\nlet currentQuery = \"\";\nlet sessionStartTime: number | undefined = undefined;\n\nexport function useSearchBoxAnalytics() {\n\tconst trackEndSearchBoxSession = useTrackEndSearchBoxSession();\n\tconst trackOpenSearchBoxContent = useTrackOpenSearchBoxContent();\n\n\tconst trackOpenDropdown = useCallback(() => {\n\t\tuploadedExitAction = null;\n\t\tisDropdownOpen = true;\n\t\tsessionStartTime = performance.now();\n\t\tconsole.log(`[analytics] quick find start`);\n\t}, []);\n\n\tconst trackCloseDropdown = useCallback(() => {\n\t\t// only track if the dropdown is currently open\n\t\tif (!isDropdownOpen) return;\n\n\t\tconsole.log(`[analytics] quick find abandon`);\n\t\tuploadResult(\"abandon\");\n\t\tisDropdownOpen = false;\n\t}, []);\n\n\tconst trackQueryUpdate = useCallback((q: string) => {\n\t\tcurrentQuery = q;\n\t}, []);\n\n\tconst trackOpenFindResult = useCallback((args: OpenSearchBoxContent) => {\n\t\ttrackOpenSearchBoxContent(args);\n\n\t\tconsole.log(`[analytics] quick find open`, args);\n\t\tuploadResult(\"open\");\n\t}, []);\n\n\tconst trackCommit = useCallback(() => {\n\t\tconsole.log(`[analytics] quick find commit`);\n\t\tuploadResult(\"commit\");\n\t}, []);\n\n\tconst uploadResult = useCallback((exitAction: SearchBoxExitAction) => {\n\t\t// prevent duplicated tracking\n\t\tif (uploadedExitAction !== null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sessionSummary: SearchBoxSessionSummary = {\n\t\t\texitQuery: currentQuery,\n\t\t\texitAction,\n\t\t\tduration: (performance.now() - sessionStartTime!) / 1000,\n\t\t};\n\n\t\tconsole.log(`[analytics] quick find summary`, sessionSummary);\n\n\t\ttrackEndSearchBoxSession(sessionSummary);\n\t\tuploadedExitAction = exitAction;\n\t\tisDropdownOpen = false;\n\t}, []);\n\n\treturn {\n\t\ttrackOpenFindResult,\n\t\ttrackOpenDropdown,\n\t\ttrackCloseDropdown,\n\t\ttrackQueryUpdate,\n\t\ttrackCommit,\n\t};\n}\n","import { useQuery } from \"@apollo/client\";\nimport { FontIcon } from \"@fluentui/react\";\nimport { EntityType, HubEntityType } from \"@hits/rest-api-types\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { HubSuggestionFragment, SearchSuggestionsInput, SearchSuggestionsOutput, SEARCH_SUGGESTIONS } from \"../../../apis/queries/search-suggestions\";\nimport { screenReaderOnly } from \"../../../styles/02-tools/screen-reader-only\";\nimport { entityMeta, entityTypes } from \"../../../utils/entity-meta\";\nimport { formatTitle } from \"../../../utils/format-title\";\nimport { getHubUrl } from \"../../../utils/get-hub-url\";\nimport { getReportUrl } from \"../../../utils/get-report-url\";\nimport { iconNames } from \"../../../utils/icon-names\";\nimport { pluralizeEntity, pluralizeWord } from \"../../../utils/pluralize\";\nimport { useDebounce } from \"../../../utils/use-debounce\";\nimport { InlineSpinner } from \"../../shared/inline-spinner/inline-spinner\";\nimport { LiveAnnouncer } from \"../../shared/live-announcer/live-announcer\";\nimport { normalizeHubSuggestions } from \"./normalize-hub-suggestions\";\nimport { useSearchBoxAnalytics } from \"./use-search-box-analytics\";\nimport { ExceptionMessage } from \"./_exception-message\";\nimport { GroupTitle } from \"./_group-title\";\nimport { SuggestionItem, SuggestionItemIcon, SuggestionItemText } from \"./_suggestion-item\";\n\nexport interface DropdownSuggestionsProps {\n\tclassName?: string;\n\tquery: string;\n\tcloseSuggestions: () => any;\n}\n\ninterface PhraseSuggestion {\n\thtml: string;\n\ttext: string;\n}\n\ninterface HubSuggestion {\n\t/** a description with both content type and title, used for hover tooltip and screenreader */\n\tid: number;\n\ttooltip: string;\n\tdisplayName: string;\n\tlink: string;\n\ticonName: string;\n\ticonTooltip: string;\n\tentityType: HubEntityType;\n\ttagName: string;\n\tscore: number;\n}\n\ninterface ReportSuggestion {\n\t/** a description with both content type and title, used for hover tooltip and screenreader */\n\ttooltip: string;\n\ttitleHtml: { __html: string };\n\tlink: string;\n\ticonName: string;\n\ticonTooltip: string;\n\tentityType: EntityType;\n\tscore: number;\n}\n\ninterface HubDisplaySection {\n\tentityType: HubEntityType;\n\titems: HubSuggestion[];\n}\n\ninterface ReportDisplaySection {\n\tentityType: EntityType;\n\titems: ReportSuggestion[];\n}\n\nexport const QUERY_DEBOUCE_MS = 500;\nconst MAX_TOTAL_ITEMS = 10;\nconst MAX_PHRASE_ITEMS = 3;\nconst MAX_HUB_ITEMS = 3; // make sure hub suggestions don't overwhelm search results\n\n// Hub ranking weights\ntype MatchType = \"exact\" | \"fuzzy\";\nconst MATCH_TYPE_WEIGHTS: Record<MatchType, number> = {\n\texact: 1000,\n\tfuzzy: 0,\n};\n\n/**\n * Why people > products > topics > group?\n * - product > topics because products are easier to recall. Topics require familiarility with HITS taxonomy\n * - group in the end because group names often contain product and topic.\n * If group is in the end, people can add words to narrow down to groups.\n * If group is in the beginning, people can never get products or topics to show.\n * - people first is based on a weak hypothesis that users use it most often. Need validation.\n *\n * This must match the ranking in `get-hub-result.ts` for search page result\n */\n\nconst HUB_RANKING_WEIGHTS: Record<HubEntityType, number> = {\n\t[entityTypes.user]: 400,\n\t[entityTypes.product]: 300,\n\t[entityTypes.topic]: 200,\n\t[entityTypes.researchGroup]: 100,\n};\n\n// Report ranking weights\nconst REPORT_RANKING_WEIGHTS: Record<EntityType, number> = {\n\t[entityTypes.collection]: 400,\n\t[entityTypes.study]: 300,\n\t[entityTypes.note]: 200,\n};\n\nexport const DropdownSuggestions: React.FC<DropdownSuggestionsProps> = (props) => {\n\tconst { trackOpenFindResult } = useSearchBoxAnalytics();\n\tconst debouncedQuery = useDebounce(props.query, \"\", QUERY_DEBOUCE_MS);\n\tconst { data, loading, error } = useQuery<SearchSuggestionsOutput, SearchSuggestionsInput>(SEARCH_SUGGESTIONS, {\n\t\tvariables: {\n\t\t\targs: {\n\t\t\t\tquery: debouncedQuery,\n\t\t\t},\n\t\t},\n\t\tskip: !debouncedQuery.length,\n\t});\n\tconst isLoading = loading || props.query !== debouncedQuery;\n\n\tconst [displayPhrases, setDisplayPhrases] = useState<PhraseSuggestion[]>([]);\n\tconst [displayHubSections, setDisplayHubSections] = useState<HubDisplaySection[]>([]);\n\tconst [displayReportSections, setDisplayReportSections] = useState<ReportDisplaySection[]>([]);\n\n\tconst [isEmpty, setIsEmpty] = useState(false);\n\tconst [resultSummary, setResultSummary] = useState<string | null>(null);\n\n\tconst mapHubFragmentToDisplaySuggestion = useCallback<(item: HubSuggestionFragment, matchType: MatchType) => HubSuggestion>(\n\t\t(item, matchType) => ({\n\t\t\ttooltip: `${entityMeta.get(item.type)!.displayName}: ${item.displayName}`,\n\t\t\tdisplayName: item.displayName,\n\t\t\tlink: getHubUrl(item.type, item.tagName),\n\t\t\ticonName: entityMeta.get(item.type)!.iconName!,\n\t\t\ticonTooltip: entityMeta.get(item.type)!.displayName!,\n\t\t\tentityType: item.type,\n\t\t\ttagName: item.tagName,\n\t\t\tid: item.id,\n\t\t\tscore: MATCH_TYPE_WEIGHTS[matchType] + HUB_RANKING_WEIGHTS[item.type],\n\t\t}),\n\t\t[]\n\t);\n\n\t/**\n\t * Build suggestion list. Rank the items:\n\t * 1. On top level, Phrases > Hubs > Reports. This is achieved in the render logic itself.\n\t * 2. Within Hubs, use predefined weights to rank items\n\t * 3. Within Reports, use predefined weights to rank items\n\t *\n\t * While building the list, make sure\n\t * 1. The total number of displayed items across all categories are within the MAX_TOTAL_ITEMS limit\n\t * 2. Each categorty is within its own limit: MAX_PHRASE_ITEMS, MAX_HUB_ITEMS\n\t * 3. Report result can use up the rest of the slots\n\t */\n\tuseEffect(() => {\n\t\tlet totalRemaining = MAX_TOTAL_ITEMS;\n\t\tconst resultSummaryFragments: string[] = [];\n\n\t\t// 1 Phrases\n\t\tconst allPhrases = data?.searchSuggestions.phrases || [];\n\t\tconst phrases = allPhrases.slice(0, MAX_PHRASE_ITEMS);\n\n\t\tsetDisplayPhrases(phrases);\n\t\ttotalRemaining = totalRemaining - phrases.length;\n\t\tphrases.length > 0 && resultSummaryFragments.push(`${phrases.length} ${pluralizeWord(\"phrase\", phrases.length)}`);\n\n\t\t// 2 Hubs\n\n\t\t// 2.1 Classify and score items\n\t\tconst exactItems: HubSuggestion[] = (data?.searchSuggestions.hubsExact ?? []).map((item) => mapHubFragmentToDisplaySuggestion(item, \"exact\"));\n\t\tconst fuzzyItems: HubSuggestion[] = (data?.searchSuggestions.hubsWordStart ?? []).map((item) => mapHubFragmentToDisplaySuggestion(item, \"fuzzy\"));\n\t\tconst hubItems = [...exactItems, ...fuzzyItems];\n\t\tconst normalizedHubItems = normalizeHubSuggestions(hubItems, debouncedQuery);\n\n\t\t// 2.2 Sort results, trim overflow\n\t\tconst trimmedHubItems = normalizedHubItems.sort((a, b) => b.score - a.score).slice(0, Math.min(MAX_HUB_ITEMS, totalRemaining));\n\n\t\t// 2.3 Allocate the result to the UI. Walk through each sorted item, create new sections as we go.\n\t\tconst hubSections: HubDisplaySection[] = [];\n\t\ttrimmedHubItems.forEach((item) => {\n\t\t\tlet section = hubSections.find((section) => section.entityType === item.entityType);\n\t\t\tif (!section) {\n\t\t\t\tsection = {\n\t\t\t\t\tentityType: item.entityType,\n\t\t\t\t\titems: [],\n\t\t\t\t};\n\n\t\t\t\thubSections.push(section);\n\t\t\t}\n\n\t\t\tsection.items.push(item);\n\t\t});\n\n\t\t// 2.4 Render\n\t\tsetDisplayHubSections(hubSections);\n\t\thubSections.forEach((section) => resultSummaryFragments.push(`${section.items.length} ${pluralizeEntity(section.entityType, section.items.length)}`));\n\t\ttotalRemaining = Math.max(0, totalRemaining - trimmedHubItems.length);\n\n\t\t// 3 documents\n\n\t\t// 3.1 Classify and score items\n\t\tconst documentItems: ReportSuggestion[] =\n\t\t\tdata?.searchSuggestions.documentSummary.items?.map((result) => ({\n\t\t\t\ttooltip: `${entityMeta.get(result.entityType)!.displayName!}: ${result.title}`,\n\t\t\t\ttitleHtml: {\n\t\t\t\t\t__html: formatTitle(result.highlights[0]?.length ? result.highlights[0] : result.title, {\n\t\t\t\t\t\tisDraft: !result.isPublished,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\tlink: getReportUrl(result.entityType, result.id),\n\t\t\t\ticonName: entityMeta.get(result.entityType)!.iconName!,\n\t\t\t\ticonTooltip: entityMeta.get(result.entityType)!.displayName!,\n\t\t\t\tentityType: result.entityType,\n\t\t\t\tscore: REPORT_RANKING_WEIGHTS[result.entityType],\n\t\t\t})) ?? [];\n\n\t\t// 3.2 Sort results, trim overflow\n\t\tconst trimmedReportItems = documentItems.sort((a, b) => b.score - a.score).slice(0, totalRemaining);\n\n\t\t// 3.3 Allocate the result to the UI. Walk through each sorted item, create new sections as we go.\n\t\tconst reportSections: ReportDisplaySection[] = [];\n\t\ttrimmedReportItems.forEach((item) => {\n\t\t\tlet section = reportSections.find((section) => section.entityType === item.entityType);\n\t\t\tif (!section) {\n\t\t\t\tsection = {\n\t\t\t\t\tentityType: item.entityType,\n\t\t\t\t\titems: [],\n\t\t\t\t};\n\n\t\t\t\treportSections.push(section);\n\t\t\t}\n\n\t\t\tsection.items.push(item);\n\t\t});\n\n\t\t// 3.4 Render\n\t\tsetDisplayReportSections(reportSections);\n\t\treportSections.forEach((section) => resultSummaryFragments.push(`${section.items.length} ${pluralizeEntity(section.entityType, section.items.length)}`));\n\n\t\t// 4. Summarize\n\t\tsetIsEmpty(phrases.length + hubSections.length + reportSections.length === 0);\n\t\tsetResultSummary(resultSummaryFragments.length > 0 ? \"Suggestions: \" + resultSummaryFragments.join(\", \") : null);\n\t}, [data]);\n\n\tconst handleOpenPhrase = useCallback((event: React.MouseEvent) => {\n\t\ttrackOpenFindResult({ kind: \"suggested-phrase\" });\n\t\tif (!event.ctrlKey) {\n\t\t\tprops.closeSuggestions();\n\t\t}\n\t}, []);\n\n\tconst handleOpenEntity = useCallback((event: React.MouseEvent, entityType: EntityType) => {\n\t\ttrackOpenFindResult({ kind: \"entity\", entityType });\n\t\tif (!event.ctrlKey) {\n\t\t\tprops.closeSuggestions();\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<StyledDiv className={props.className}>\n\t\t\t{/* suggested phrases */}\n\t\t\t{!isLoading && displayPhrases.length > 0 && (\n\t\t\t\t<section>\n\t\t\t\t\t<ScreenReaderHeading>Suggested phrases</ScreenReaderHeading>\n\t\t\t\t\t{displayPhrases.map((phrase) => (\n\t\t\t\t\t\t<SuggestionItem\n\t\t\t\t\t\t\tas={RouterLink}\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tkey={phrase.text}\n\t\t\t\t\t\t\tto={`/search?q=${encodeURIComponent(phrase.text)}`}\n\t\t\t\t\t\t\tdata-is-focusable={true}\n\t\t\t\t\t\t\ttitle={`Search \"${phrase.text}\"`}\n\t\t\t\t\t\t\tonClick={handleOpenPhrase}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SuggestionItemIcon as={FontIcon} iconName={iconNames.search} aria-label=\"Phrase: \" title=\"Search\" />\n\t\t\t\t\t\t\t<SuggestionItemText dangerouslySetInnerHTML={{ __html: phrase.html }}></SuggestionItemText>\n\t\t\t\t\t\t</SuggestionItem>\n\t\t\t\t\t))}\n\t\t\t\t</section>\n\t\t\t)}\n\t\t\t{/* suggested hubs */}\n\t\t\t{!isLoading &&\n\t\t\t\tdisplayHubSections.length > 0 &&\n\t\t\t\tdisplayHubSections.map((section) => (\n\t\t\t\t\t<section key={section.entityType}>\n\t\t\t\t\t\t<GroupTitle>\n\t\t\t\t\t\t\t<span>{pluralizeEntity(section.entityType, section.items.length)}</span>\n\t\t\t\t\t\t</GroupTitle>\n\t\t\t\t\t\t{section.items.map((displayHub) => (\n\t\t\t\t\t\t\t<SuggestionItem\n\t\t\t\t\t\t\t\tas={RouterLink as any}\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\tkey={displayHub.link}\n\t\t\t\t\t\t\t\tto={displayHub.link}\n\t\t\t\t\t\t\t\tdata-is-focusable={true}\n\t\t\t\t\t\t\t\taria-label={displayHub.tooltip}\n\t\t\t\t\t\t\t\ttitle={displayHub.tooltip}\n\t\t\t\t\t\t\t\tonClick={(event: React.MouseEvent) => handleOpenEntity(event, displayHub.entityType!)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SuggestionItemIcon as={FontIcon} iconName={displayHub.iconName} aria-label={displayHub.iconTooltip} title={displayHub.iconTooltip} />\n\t\t\t\t\t\t\t\t<SuggestionItemText $capitalize={displayHub.entityType === entityTypes.topic}>{displayHub.displayName}</SuggestionItemText>\n\t\t\t\t\t\t\t</SuggestionItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</section>\n\t\t\t\t))}\n\t\t\t{/* suggested reports */}\n\t\t\t{!isLoading &&\n\t\t\t\tdisplayReportSections.length > 0 &&\n\t\t\t\tdisplayReportSections.map((section) => (\n\t\t\t\t\t<section key={section.entityType}>\n\t\t\t\t\t\t<GroupTitle>\n\t\t\t\t\t\t\t<span>{pluralizeEntity(section.entityType, section.items.length)}</span>\n\t\t\t\t\t\t</GroupTitle>\n\t\t\t\t\t\t{section.items.map((item) => (\n\t\t\t\t\t\t\t<SuggestionItem\n\t\t\t\t\t\t\t\tas={RouterLink as any}\n\t\t\t\t\t\t\t\tkey={item.link}\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\tto={item.link}\n\t\t\t\t\t\t\t\tdata-is-focusable={true}\n\t\t\t\t\t\t\t\ttitle={item.tooltip}\n\t\t\t\t\t\t\t\taria-label={item.tooltip}\n\t\t\t\t\t\t\t\tonClick={(event: React.MouseEvent) => handleOpenEntity(event, item.entityType!)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SuggestionItemIcon as={FontIcon} iconName={item.iconName} aria-label={item.iconTooltip} title={item.iconTooltip} />\n\t\t\t\t\t\t\t\t<SuggestionItemText dangerouslySetInnerHTML={item.titleHtml}></SuggestionItemText>\n\t\t\t\t\t\t\t</SuggestionItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</section>\n\t\t\t\t))}\n\t\t\t{isLoading && <InlineSpinner />}\n\t\t\t<ExceptionMessage role=\"status\">\n\t\t\t\t{!isLoading && !error && isEmpty && \"Sorry, nothing came up.\"}\n\t\t\t\t{!isLoading && error && \"Sorry, something went wrong.\"}\n\t\t\t</ExceptionMessage>\n\t\t\t<LiveAnnouncer>{resultSummary}</LiveAnnouncer>\n\t\t</StyledDiv>\n\t);\n};\n\nconst ScreenReaderHeading = styled(GroupTitle)`\n\t${screenReaderOnly}\n`;\n\nconst StyledDiv = styled.div`\n\tpadding-top: 8px;\n\tpadding-bottom: 8px;\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n","import { FocusZone, FocusZoneDirection, FontIcon, TooltipHost } from \"@fluentui/react\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { useSiteSearchContext } from \"../../../contexts/site-search-context\";\nimport { tokens } from \"../../../styles/tokens\";\nimport { useOnClickOutside } from \"../../../utils/use-on-click-outside\";\nimport { useOnFocusOut } from \"../../../utils/use-on-focus-out\";\nimport { useSkipToMain } from \"../../../utils/use-skip-to-main\";\nimport { buildSearchUrl } from \"../../search-page/build-search-url\";\nimport { EMPTY_QUERY, useManagedUrl } from \"../../search-page/use-managed-url\";\nimport { DropdownFooter } from \"./dropdown-footer\";\nimport { DropdownHistory } from \"./dropdown-history\";\nimport { DropdownSuggestions } from \"./dropdown-suggestions\";\nimport { useSearchBoxAnalytics } from \"./use-search-box-analytics\";\n\nexport const DROPDOWN_ELEMENT_ID = \"app-search-suggestions\";\n\nexport interface SearchBoxProps {\n\tclassName?: string;\n\tautoFocus?: boolean;\n\tonCancel?: () => void;\n\tonMouseOver?: () => void;\n}\n\nexport const SearchBox: React.FC<SearchBoxProps> = (props) => {\n\tconst [isInputFocused, setIsInputFocused] = useState(false);\n\tconst [displayQuery, setDisplayQuery] = useState<string>(\"\");\n\tconst trimmedQuery = displayQuery.trim();\n\tconst rootRef = useRef<HTMLDivElement>(null);\n\tconst siteSearchContext = useSiteSearchContext();\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst { q } = useManagedUrl();\n\tconst navigate = useNavigate();\n\tconst { trackOpenDropdown, trackCloseDropdown, trackCommit, trackQueryUpdate, trackOpenFindResult } = useSearchBoxAnalytics();\n\tconst isEmptyState = !trimmedQuery.length;\n\n\t/**\n\t * Consider the url as source of truth.\n\t * Keep in-memory query in sync with the url query\n\t */\n\tuseEffect(() => {\n\t\tconst displayQuery = q === EMPTY_QUERY ? \"\" : q; // don't show the default `*` query on UI\n\n\t\tsetDisplayQuery(displayQuery);\n\t}, [q]);\n\n\tuseEffect(() => {\n\t\tif (props.autoFocus) {\n\t\t\tsiteSearchContext.searchBoxRef.current!.focus();\n\t\t}\n\t}, [props.autoFocus]);\n\n\tuseEffect(() => {\n\t\tisDropdownOpen ? trackOpenDropdown() : trackCloseDropdown();\n\t}, [isDropdownOpen]);\n\n\tconst skipToMain = useSkipToMain();\n\n\tconst onPassiveCancel = () => {\n\t\tif (props.onCancel) {\n\t\t\tprops.onCancel();\n\t\t}\n\n\t\tsetIsDropdownOpen(false);\n\t};\n\n\tuseOnFocusOut(rootRef, onPassiveCancel);\n\tuseOnClickOutside(rootRef, onPassiveCancel);\n\n\tconst onInputFocus = () => {\n\t\tsetIsInputFocused(true);\n\t\tsetIsDropdownOpen(true);\n\t};\n\tconst onInputBlur = () => setIsInputFocused(false);\n\tconst onRootKeydown = (e: React.KeyboardEvent<HTMLElement>) => {\n\t\tif (e.key === \"Escape\") {\n\t\t\tsiteSearchContext.searchBoxRef.current?.focus(); // when focus isn't in the input, bring it back first\n\t\t\tsetDisplayQuery(\"\");\n\n\t\t\tif (!displayQuery.length) {\n\t\t\t\tsiteSearchContext.searchBoxRef.current!.blur();\n\t\t\t\tonPassiveCancel();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst allResultsLink = buildSearchUrl({ query: displayQuery ? displayQuery : EMPTY_QUERY });\n\n\tconst onCommitSearch = (openInNewTab?: boolean) => {\n\t\tconst effectiveQuery = trimmedQuery.length ? trimmedQuery : EMPTY_QUERY;\n\t\tconst resultPageUrl = buildSearchUrl({ query: effectiveQuery });\n\n\t\tif (openInNewTab) {\n\t\t\twindow.open(resultPageUrl);\n\t\t\t// don't close dropdown when user opens in new tab. This allows rapid opening of multiple items\n\t\t} else {\n\t\t\tnavigate(resultPageUrl);\n\t\t\tsetIsDropdownOpen(false);\n\t\t\tsiteSearchContext.searchBoxRef.current?.blur();\n\t\t\tskipToMain();\n\t\t}\n\n\t\ttrackCommit();\n\t};\n\n\tconst onInputKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (e.key === \"Enter\") {\n\t\t\tonCommitSearch(e.ctrlKey);\n\t\t}\n\t};\n\n\tconst onQueryChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t// TODO switch back to `e?.target.value.trimStart?.()` once https://github.com/swc-project/swc/issues/2063 is addressed\n\t\tconst newQuery = e?.target.value.trimStart ? e.target.value.trimStart() : e?.target.value;\n\t\tsetDisplayQuery(newQuery);\n\t\ttrackQueryUpdate(newQuery);\n\t};\n\n\tconst closeDropdown = useCallback(() => {\n\t\tsiteSearchContext.searchBoxRef.current!.focus();\n\t\tsetIsDropdownOpen(false);\n\t\tsiteSearchContext.searchBoxRef.current!.blur();\n\t}, []);\n\n\tconst handleOpenHistoryItem = useCallback((event: React.MouseEvent) => {\n\t\ttrackOpenFindResult({ kind: \"history\" });\n\t\tif (!event.ctrlKey) {\n\t\t\tcloseDropdown();\n\t\t}\n\t}, []);\n\n\tconst handleOpenAllResult = useCallback(() => {\n\t\ttrackOpenFindResult({ kind: \"all\" });\n\t\tcloseDropdown();\n\t}, []);\n\n\tconst handleOpenAdvancedSearch = useCallback(() => {\n\t\ttrackOpenFindResult({ kind: \"advanced-search\" });\n\t\tcloseDropdown();\n\t}, []);\n\n\treturn (\n\t\t<StyledSearchWidget\n\t\t\tclassName={props.className}\n\t\t\t$isInputFocused={isInputFocused}\n\t\t\t$isSearchBoxStretched={isDropdownOpen}\n\t\t\tonKeyDown={onRootKeydown}\n\t\t\tonMouseOver={props.onMouseOver}\n\t\t\tref={rootRef}\n\t\t>\n\t\t\t<FocusZone className=\"modern-search__focus-zone\" isCircularNavigation={true} direction={FocusZoneDirection.vertical}>\n\t\t\t\t<FontIcon className=\"modern-search__search-icon\" iconName=\"Search\" />\n\t\t\t\t<SearchBoxInput\n\t\t\t\t\tonFocus={onInputFocus}\n\t\t\t\t\tonBlur={onInputBlur}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-label=\"Search box. Suggestions appear as you type.\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tref={siteSearchContext.searchBoxRef}\n\t\t\t\t\tplaceholder=\"Search insights and reports\"\n\t\t\t\t\tdata-testid=\"search-input\"\n\t\t\t\t\tdata-is-focusable={true}\n\t\t\t\t\taria-expanded={isDropdownOpen}\n\t\t\t\t\taria-owns={DROPDOWN_ELEMENT_ID}\n\t\t\t\t\tonChange={onQueryChange}\n\t\t\t\t\tonKeyDown={onInputKeydown}\n\t\t\t\t\tvalue={displayQuery}\n\t\t\t\t/>\n\t\t\t\t{isDropdownOpen && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"modern-search__suggestions-container\"\n\t\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\t\taria-label=\"suggestions\"\n\t\t\t\t\t\tid={DROPDOWN_ELEMENT_ID}\n\t\t\t\t\t\tonScroll={(e) => e.stopPropagation()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isEmptyState && <DropdownHistory className=\"modern-search__suggestions-scroll-area\" onOpenHistoryItem={handleOpenHistoryItem} />}\n\t\t\t\t\t\t{!isEmptyState && <DropdownSuggestions className=\"modern-search__suggestions-scroll-area\" query={trimmedQuery} closeSuggestions={closeDropdown} />}\n\t\t\t\t\t\t<DropdownFooter\n\t\t\t\t\t\t\tclassName=\"modern-search__footer\"\n\t\t\t\t\t\t\tviewAllLabel={\"Open search page\"}\n\t\t\t\t\t\t\tviewAllLink={allResultsLink}\n\t\t\t\t\t\t\tonOpenAllResults={handleOpenAllResult}\n\t\t\t\t\t\t\tonOpenAdvancedSearch={handleOpenAdvancedSearch}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</FocusZone>\n\t\t\t{isDropdownOpen && (\n\t\t\t\t<TooltipHost content=\"Commit search query\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"modern-search__input-action\"\n\t\t\t\t\t\tdata-test-action=\"commit\"\n\t\t\t\t\t\tonClick={(event) => onCommitSearch(event.ctrlKey)}\n\t\t\t\t\t\taria-label=\"Commit search query\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FontIcon iconName=\"Forward\" />\n\t\t\t\t\t</button>\n\t\t\t\t</TooltipHost>\n\t\t\t)}\n\t\t</StyledSearchWidget>\n\t);\n};\n\ninterface SearchWidgetStyleProps {\n\t$isInputFocused?: boolean;\n\t$isSearchBoxStretched?: boolean;\n}\n\nconst StyledSearchWidget = styled.div<SearchWidgetStyleProps>`\n\t--placeholder-color: rgba(255, 255, 255, 0.85);\n\t--min-width: 21rem;\n\t--expanded-width-mobile: calc(100% - 2rem);\n\t--expanded-width-desktop: calc(50vw + 1rem); /** start at 21 rem and gain 1px for every additional 2px screen width */\n\t--expanded-width-limit: 40rem;\n\t--item-side-padding: 1rem;\n\t--item-vertical-padding: 0.5rem;\n\n\tflex: 1 1 auto;\n\tposition: absolute;\n\twidth: ${(props) => (props.$isSearchBoxStretched ? \"var(--expanded-width-mobile)\" : \"var(--min-width)\")};\n\ttop: 8px;\n\tleft: 0;\n\tright: 0;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\theight: 32px;\n\tdisplay: flex;\n\n\t@media screen and (min-width: 40rem) {\n\t\twidth: var(--min-width);\n\t\tleft: initial;\n\t\tright: 6.5rem;\n\t}\n\n\t@media screen and (min-width: 60rem) {\n\t\tleft: 0;\n\t\tright: 0;\n\t\twidth: ${(props) => (props.$isSearchBoxStretched ? \"var(--expanded-width-desktop)\" : \"var(--min-width)\")};\n\t\tmax-width: var(--expanded-width-limit);\n\t}\n\n\t.modern-search__focus-zone {\n\t\twidth: 100%;\n\t}\n\n\t.modern-search__search-icon {\n\t\tcolor: ${(props) => (props.$isInputFocused ? tokens.colors.gray160 : \"var(--placeholder-color)\")};\n\t\tposition: absolute;\n\t\tleft: 0.5rem;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tpointer-events: none;\n\t}\n\n\t.modern-search__input-action {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tfont-size: 16px;\n\t\tborder: none;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tbackground-color: transparent;\n\t\tcursor: pointer;\n\t\tcolor: ${(props) => (props.$isInputFocused ? tokens.colors.gray160 : \"var(--placeholder-color)\")};\n\n\t\t&:focus,\n\t\t&:hover {\n\t\t\tcolor: ${tokens.colors.gray160};\n\t\t\tbackground-color: ${tokens.colors.gray30};\n\t\t}\n\t}\n\n\t.modern-search__suggestions-container {\n\t\tbackground-color: white;\n\t\tposition: absolute;\n\t\tborder-radius: ${tokens.corners.radius4};\n\t\ttop: calc(32px + 4px);\n\t\twidth: 100%;\n\t\tbox-shadow: ${tokens.shadows.depth16};\n\n\t\tdisplay: grid;\n\t\tgrid-template-rows: 1fr auto;\n\n\t\tmax-height: 80vh;\n\t\toverflow: hidden;\n\t\tanimation: fade-in 250ms both;\n\n\t\t@keyframes fade-in {\n\t\t\t0% {\n\t\t\t\topacity: 0;\n\t\t\t\ttransform: translate3d(0, -8px, 0);\n\t\t\t}\n\t\t\t100% {\n\t\t\t\topacity: 1;\n\t\t\t\ttransform: translate3d(0, 0, 0);\n\t\t\t}\n\t\t}\n\t}\n\n\t.modern-search__suggestions-scroll-area {\n\t\toverflow-y: auto;\n\t}\n`;\n\nconst SearchBoxInput = styled.input`\n\t/* use 16px prevents safari from zooming into the control */\n\tfont-size: 16px;\n\tpadding-left: 2rem;\n\tpadding-right: 0.5rem;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: border-box;\n\tbackground-color: #003a6e;\n\tborder: none;\n\tborder-radius: ${tokens.corners.radius4};\n\tbox-shadow: ${tokens.shadows.depth4Inset};\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\n\t@media screen and (min-width: 40rem) {\n\t\tfont-size: 14px;\n\t}\n\n\t&,\n\t&::placeholder {\n\t\tcolor: var(--placeholder-color);\n\t}\n\n\t&::placeholder {\n\t\tfont-size: 14px;\n\t}\n\n\t&:focus {\n\t\tcolor: #333;\n\t\tbackground-color: white;\n\t\toutline: none;\n\t}\n\n\t&:not(:focus):hover {\n\t\tcursor: pointer;\n\t\tbackground-color: rgba(255, 255, 255, 0.25);\n\t\tbox-shadow: ${tokens.shadows.depth8};\n\t}\n`;\n","import { gql } from \"@apollo/client\";\nimport { EntityType } from \"@hits/rest-api-types\";\n\nexport const MY_CONTRIBUTION_DRAFTS = gql`\n\tquery MyContributionDrafts {\n\t\tmyContent {\n\t\t\tdraftNotes {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdraftStudies {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdraftCollections {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface MyContributionDrafts {\n\tmyContent: {\n\t\tdraftNotes: MyContributionDraftReport[];\n\t\tdraftStudies: MyContributionDraftReport[];\n\t\tdraftCollections: MyContributionDraftReport[];\n\t};\n}\n\nexport interface MyContributionDraftReport {\n\tid: number;\n\tentityType: EntityType.Study | EntityType.Collection;\n\ttitle: string;\n\tcreatedOn: string;\n\tupdateOn: string;\n\tfamily: {\n\t\tid: number;\n\t\tpointOfContact: {\n\t\t\talias: string;\n\t\t\tdirectoryObjectId: string;\n\t\t\tdisplayName: string;\n\t\t} | null;\n\t\tresearchers:\n\t\t\t| {\n\t\t\t\t\talias: string;\n\t\t\t\t\tdirectoryObjectId: string;\n\t\t\t\t\tdisplayName: string;\n\t\t\t }[]\n\t\t\t| null;\n\t};\n\tviewCount: number;\n}\n","import { gql } from \"@apollo/client\";\nimport { EntityType } from \"@hits/rest-api-types\";\n\nexport const MY_CONTRIBUTION_PUBLISHED = gql`\n\tquery MyContributionPublished {\n\t\tmyContent {\n\t\t\tpublishedNotes {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tmetric {\n\t\t\t\t\tviewCount\n\t\t\t\t\ttotalUsers\n\t\t\t\t\treportShares\n\t\t\t\t\tcitedCount\n\t\t\t\t}\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpublishedDate\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpublishedStudies {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tmetric {\n\t\t\t\t\tviewCount\n\t\t\t\t\ttotalUsers\n\t\t\t\t\treportShares\n\t\t\t\t\tcitedCount\n\t\t\t\t}\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpublishedDate\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpublishedCollections {\n\t\t\t\tid\n\t\t\t\tentityType\n\t\t\t\ttitle\n\t\t\t\tcreatedOn\n\t\t\t\tupdateOn\n\t\t\t\tviewCount\n\t\t\t\tmetric {\n\t\t\t\t\tviewCount\n\t\t\t\t\ttotalUsers\n\t\t\t\t\treportShares\n\t\t\t\t\tcitedCount\n\t\t\t\t}\n\t\t\t\tfamily {\n\t\t\t\t\tid\n\t\t\t\t\tpublishedDate\n\t\t\t\t\tpointOfContact {\n\t\t\t\t\t\talias\n\t\t\t\t\t\tdirectoryObjectId\n\t\t\t\t\t\tdisplayName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport interface MyContributionPublished {\n\tmyContent: {\n\t\tpublishedNotes: MyContributionPublishedReport[];\n\t\tpublishedStudies: MyContributionPublishedReport[];\n\t\tpublishedCollections: MyContributionPublishedReport[];\n\t};\n}\n\nexport interface MyContributionPublishedReport {\n\tid: number;\n\tentityType: EntityType.Study | EntityType.Collection | EntityType.Note;\n\ttitle: string;\n\tcreatedOn: string;\n\tupdateOn: string;\n\tmetric: {\n\t\tviewCount: number | null;\n\t\ttotalUsers: number | null;\n\t\treportShares: number | null;\n\t\tcitedCount: number | null;\n\t};\n\tfamily: {\n\t\tid: number;\n\t\tpublishedDate: string;\n\t\tpointOfContact: {\n\t\t\talias: string;\n\t\t\tdirectoryObjectId: string;\n\t\t\tdisplayName: string;\n\t\t} | null;\n\t\tresearchers:\n\t\t\t| {\n\t\t\t\t\talias: string;\n\t\t\t\t\tdirectoryObjectId: string;\n\t\t\t\t\tdisplayName: string;\n\t\t\t }[]\n\t\t\t| null;\n\t};\n\tviewCount: number;\n}\n","import { gql } from \"@apollo/client\";\n\nexport const MY_CONTRIBUTION_STATS = gql`\n\tquery MyContributionStats {\n\t\tmyContent {\n\t\t\tpublishedNotesCount\n\t\t\tpublishedStudiesCount\n\t\t\tpublishedCollectionsCount\n\t\t}\n\t}\n`;\n\nexport interface MyContributionStats {\n\tmyContent: {\n\t\tpublishedNotesCount: number;\n\t\tpublishedStudiesCount: number;\n\t\tpublishedCollectionsCount: number;\n\t};\n}\n","import { DocumentNode } from \"graphql\";\nimport { useCallback } from \"react\";\nimport { MyContributionDrafts, MY_CONTRIBUTION_DRAFTS } from \"../../apis/queries/my-contribution-drafts\";\nimport { MyContributionPublished, MY_CONTRIBUTION_PUBLISHED } from \"../../apis/queries/my-contribution-published\";\nimport { MyContributionStats, MY_CONTRIBUTION_STATS } from \"../../apis/queries/my-contribution-stats\";\nimport { apolloService } from \"../../utils/apollo-service\";\n\nconst backups = new Map<DocumentNode, any>();\n\nexport function useMockData() {\n\tconst mockNoDrafts = useCallback(() => {\n\t\tconst existingQuery = apolloService.client.readQuery<MyContributionDrafts>({\n\t\t\tquery: MY_CONTRIBUTION_DRAFTS,\n\t\t});\n\n\t\tif (existingQuery && !backups.has(MY_CONTRIBUTION_DRAFTS)) {\n\t\t\tbackups.set(MY_CONTRIBUTION_DRAFTS, existingQuery);\n\t\t}\n\n\t\tapolloService.client.writeQuery<MyContributionDrafts>({\n\t\t\tquery: MY_CONTRIBUTION_DRAFTS,\n\t\t\tdata: {\n\t\t\t\tmyContent: {\n\t\t\t\t\t...existingQuery?.myContent,\n\t\t\t\t\tdraftCollections: [],\n\t\t\t\t\tdraftNotes: [],\n\t\t\t\t\tdraftStudies: [],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tconst mockNoPublished = useCallback(() => {\n\t\tconst existingContentQuery = apolloService.client.readQuery<MyContributionPublished>({\n\t\t\tquery: MY_CONTRIBUTION_PUBLISHED,\n\t\t});\n\n\t\tif (existingContentQuery && !backups.has(MY_CONTRIBUTION_PUBLISHED)) {\n\t\t\tbackups.set(MY_CONTRIBUTION_PUBLISHED, existingContentQuery);\n\t\t}\n\n\t\tapolloService.client.writeQuery<MyContributionPublished>({\n\t\t\tquery: MY_CONTRIBUTION_PUBLISHED,\n\t\t\tdata: {\n\t\t\t\tmyContent: {\n\t\t\t\t\t...existingContentQuery?.myContent,\n\t\t\t\t\tpublishedCollections: [],\n\t\t\t\t\tpublishedNotes: [],\n\t\t\t\t\tpublishedStudies: [],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst existingStatsQuery = apolloService.client.readQuery<MyContributionStats>({\n\t\t\tquery: MY_CONTRIBUTION_STATS,\n\t\t});\n\n\t\tif (existingStatsQuery && !backups.has(MY_CONTRIBUTION_STATS)) {\n\t\t\tbackups.set(MY_CONTRIBUTION_STATS, existingStatsQuery);\n\t\t}\n\n\t\tapolloService.client.writeQuery<MyContributionStats>({\n\t\t\tquery: MY_CONTRIBUTION_STATS,\n\t\t\tdata: {\n\t\t\t\tmyContent: {\n\t\t\t\t\t...existingStatsQuery?.myContent,\n\t\t\t\t\tpublishedCollectionsCount: 0,\n\t\t\t\t\tpublishedNotesCount: 0,\n\t\t\t\t\tpublishedStudiesCount: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tconst resetAll = useCallback(() => {\n\t\t[...backups.entries()].forEach(([query, data]) => {\n\t\t\tapolloService.client.writeQuery({\n\t\t\t\tquery,\n\t\t\t\tdata,\n\t\t\t});\n\t\t});\n\n\t\tbackups.clear();\n\t}, []);\n\n\treturn {\n\t\tmockNoDrafts,\n\t\tmockNoPublished,\n\t\tresetAll,\n\t};\n}\n","import { useApolloClient } from \"@apollo/client\";\nimport { ContextualMenu, ContextualMenuItemType, DirectionalHint, FontIcon, IContextualMenuItem, Persona, PersonaSize, TooltipHost } from \"@fluentui/react\";\nimport React, { useCallback, useMemo, useRef, useState } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { SEARCHBOX_HISTORY_ITEMS } from \"../../apis/queries/searchbox-history-items\";\nimport { useAuthContext } from \"../../contexts/auth-context\";\nimport { useCustomerServiceDialogContext } from \"../../contexts/customer-service-dialog-context\";\nimport { useSiteSearchContext } from \"../../contexts/site-search-context\";\nimport { TrackerContextProvider } from \"../../contexts/tracker-context\";\nimport { useUserPhotosContext } from \"../../contexts/user-photos-context\";\nimport { useUserProfileContext } from \"../../contexts/user-profile-context/user-profile-context\";\nimport { hideInPrint } from \"../../styles/02-tools/hide-in-print\";\nimport { authService } from \"../../utils/auth-service\";\nimport { env } from \"../../utils/env\";\nimport { roleMeta } from \"../../utils/role-meta\";\nimport { AboutDialog } from \"./about-dialog/about-dialog\";\nimport { CustomerServiceDialog, TopLevelType } from \"./customer-service-dialog/customer-service-dialog\";\nimport { DROPDOWN_PAGE_VIEW_LIMIT } from \"./search-box/dropdown-history\";\nimport { SearchBox } from \"./search-box/search-box\";\nimport { useMockData } from \"./use-mock-data\";\n\nexport interface AppHeaderProps {\n\tclassName?: string;\n}\n\nexport const AppHeader: React.FC<AppHeaderProps> = (props) => {\n\tconst authContext = useAuthContext();\n\tconst siteSearchContext = useSiteSearchContext();\n\tconst { myPhotoUrl } = useUserPhotosContext();\n\tconst { myProfile, myRoles, toggleEmulatedRole, resetEmulatedRoles, isEmulatingRole, roleBasedFeatureFlags } = useUserProfileContext();\n\tconst navigate = useNavigate();\n\tconst mockData = useMockData();\n\tconst apolloClient = useApolloClient();\n\n\t// help menu\n\tconst helpMenuTriggerRef = useRef(null);\n\tconst [isHelpMenuOpen, setIsHelpMenuOpen] = useState(false);\n\n\t// overflow menu\n\tconst overflowMenuTriggerRef = useRef(null);\n\tconst [isOverflowMenuOpen, setIsOverflowMenuOpen] = useState(false);\n\n\t// me menu\n\tconst meMenuTriggerRef = useRef(null);\n\tconst [isMeMenuOpen, setIsMeMenuOpen] = useState(false);\n\n\t// create issue dialog\n\tconst { open: openCustomerServiceDialog, isOpen: isCustomerServiceDialogOpen, topLevelType, initialContent, onClose } = useCustomerServiceDialogContext();\n\n\t// about dialog\n\tconst [isAboutDialogOpen, setIsAboutDialogOpen] = useState(false);\n\n\t// track popup windows disabled state\n\tconst [popupsDisabled, setIsPopupsDisabled] = useState(false);\n\n\tconst helpMenuItems: IContextualMenuItem[] = [\n\t\t{\n\t\t\tkey: \"contact\",\n\t\t\ttext: \"Contact Helpdesk\",\n\t\t\tonClick: () => openCustomerServiceDialog(TopLevelType.SupportRequest),\n\t\t},\n\t\t{\n\t\t\tkey: \"feedback\",\n\t\t\ttext: \"Provide feedback\",\n\t\t\tonClick: () => openCustomerServiceDialog(TopLevelType.Feedback),\n\t\t},\n\t\t{\n\t\t\tkey: \"doc\",\n\t\t\ttext: \"Documentation\",\n\t\t\thref: \"https://dev.azure.com/hits-users-wiki/documentation/_wiki/wikis/documentation.wiki/1/HITS-Community-Wiki\",\n\t\t\ttarget: \"_blank\",\n\t\t},\n\t\t{\n\t\t\tkey: \"divider_1\",\n\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t},\n\t\t{\n\t\t\tkey: \"legal\",\n\t\t\ttext: \"Legal\",\n\t\t\tsubMenuProps: {\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: \"privacy-and-cookies\",\n\t\t\t\t\t\ttext: \"Privacy & cookies\",\n\t\t\t\t\t\thref: \"http://go.microsoft.com/fwlink/?LinkId=521839\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tkey: \"data-protection-notice\",\n\t\t\t\t\t\ttext: \"Data Protection Notice\",\n\t\t\t\t\t\thref: \"http://go.microsoft.com/fwlink/?LinkId=518021\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tkey: \"divider_2\",\n\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t},\n\t\t{\n\t\t\tkey: \"about\",\n\t\t\ttext: \"About\",\n\t\t\tonClick: () => {\n\t\t\t\tsetIsAboutDialogOpen(true);\n\t\t\t},\n\t\t},\n\t];\n\n\tconst overFlowMenuItems: IContextualMenuItem[] = [\n\t\t{\n\t\t\tkey: \"preferences\",\n\t\t\ttext: \"Preferences\",\n\t\t\ticonProps: {\n\t\t\t\ticonName: \"Settings\",\n\t\t\t},\n\t\t\tonClick: () => navigate(\"/my/preferences\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"help\",\n\t\t\ttext: \"Help\",\n\t\t\ticonProps: {\n\t\t\t\ticonName: \"Help\",\n\t\t\t},\n\t\t\tsubMenuProps: {\n\t\t\t\titems: helpMenuItems,\n\t\t\t},\n\t\t},\n\t];\n\n\tconst handleClickWithoutClosing = useCallback((fn: () => any) => {\n\t\treturn (e: React.MouseEvent | React.KeyboardEvent | undefined) => {\n\t\t\t// Fluent UI allows us to call preventDefault() in order to keep a context menu open after onClick\n\t\t\te?.preventDefault();\n\t\t\tfn();\n\t\t};\n\t}, []);\n\n\tconst prefetchRecentHistory = useCallback(() => {\n\t\tif (!myProfile) return;\n\n\t\tapolloClient.query({\n\t\t\tquery: SEARCHBOX_HISTORY_ITEMS,\n\t\t\tvariables: {\n\t\t\t\targs: {\n\t\t\t\t\tuserId: myProfile.user.id,\n\t\t\t\t\tlimit: DROPDOWN_PAGE_VIEW_LIMIT,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}, [myProfile]);\n\n\tconst emulateRoleOptions: IContextualMenuItem[] = useMemo(\n\t\t() => [\n\t\t\t...[...roleMeta.entries()].map((role) => ({\n\t\t\t\tkey: role[1].displayName,\n\t\t\t\ttext: role[1].displayName,\n\t\t\t\tcanCheck: true,\n\t\t\t\tchecked: myRoles?.includes(role[0]),\n\t\t\t\tonClick: handleClickWithoutClosing(() => toggleEmulatedRole?.(role[0])),\n\t\t\t})),\n\t\t\t{\n\t\t\t\tkey: \"divider_2\",\n\t\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t\t},\n\t\t\t...(isEmulatingRole\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: \"reset\",\n\t\t\t\t\t\t\ttext: \"Reset\",\n\t\t\t\t\t\t\tonClick: handleClickWithoutClosing(() => resetEmulatedRoles?.()),\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: []),\n\t\t],\n\t\t[myRoles, isEmulatingRole]\n\t);\n\n\tconst meMenuItems: IContextualMenuItem[] = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tkey: \"my-contributions\",\n\t\t\t\ttext: \"My content\",\n\t\t\t\tonClick: () => navigate(\"/my/contributions/drafts\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: \"favorites\",\n\t\t\t\ttext: \"Favorites\",\n\t\t\t\tonClick: () => navigate(\"/my/favorites\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: \"history\",\n\t\t\t\ttext: \"History\",\n\t\t\t\tonClick: () => navigate(\"/my/history\"),\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: \"queries\",\n\t\t\t\ttext: \"Queries\",\n\t\t\t\thref: \"/search/advanced\",\n\t\t\t},\n\t\t\t...(isEmulatingRole || roleBasedFeatureFlags?.isAdminDevToolEnabled\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: \"divider-above-admin\",\n\t\t\t\t\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: \"admin-settings\",\n\t\t\t\t\t\t\ttext: \"Admin portal\",\n\t\t\t\t\t\t\thref: \"/admin\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: \"debug-tools\",\n\t\t\t\t\t\t\ttext: \"Debug tools\",\n\t\t\t\t\t\t\tsubMenuProps: {\n\t\t\t\t\t\t\t\tdirectionalHint: DirectionalHint.leftTopEdge,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tkey: \"copy-creds\",\n\t\t\t\t\t\t\t\t\t\ttext: \"Copy credentials\",\n\t\t\t\t\t\t\t\t\t\tsubMenuProps: {\n\t\t\t\t\t\t\t\t\t\t\tdirectionalHint: DirectionalHint.leftTopEdge,\n\t\t\t\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"api-token\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext: \"API token\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\timport(\"./debug-tools\").then((debugTools) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdebugTools.getHitsApiToken(authContext);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tkey: \"debug-presentation\",\n\t\t\t\t\t\t\t\t\t\ttext: \"Debug presentation\",\n\t\t\t\t\t\t\t\t\t\tsubMenuProps: {\n\t\t\t\t\t\t\t\t\t\t\tdirectionalHint: DirectionalHint.leftTopEdge,\n\t\t\t\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"toggle-popups\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Disable popup windows\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanCheck: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked: popupsDisabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: handleClickWithoutClosing(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\timport(\"./debug-tools\").then((debugTools) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst enabled = debugTools.togglePopups();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsPopupsDisabled(!enabled);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tkey: \"graphql-playground\",\n\t\t\t\t\t\t\t\t\t\ttext: \"GraphQL Playground\",\n\t\t\t\t\t\t\t\t\t\thref: \"/my/graphql-playground\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tkey: \"role-emulation\",\n\t\t\t\t\t\t\t\t\t\ttext: \"Emulate roles\",\n\t\t\t\t\t\t\t\t\t\tsubMenuProps: {\n\t\t\t\t\t\t\t\t\t\t\tdirectionalHint: DirectionalHint.leftTopEdge,\n\t\t\t\t\t\t\t\t\t\t\titems: emulateRoleOptions,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tkey: \"mock-data\",\n\t\t\t\t\t\t\t\t\t\ttext: \"Use mock data\",\n\t\t\t\t\t\t\t\t\t\tsubMenuProps: {\n\t\t\t\t\t\t\t\t\t\t\tdirectionalHint: DirectionalHint.leftTopEdge,\n\t\t\t\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"no-drafts\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Empty draft list\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: handleClickWithoutClosing(() => mockData.mockNoDrafts()),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"no-published\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Empty published list\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: handleClickWithoutClosing(() => mockData.mockNoPublished()),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"divider-above-reset-mock-data\",\n\t\t\t\t\t\t\t\t\t\t\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: \"reset-mock-data\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Reset\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: handleClickWithoutClosing(() => mockData.resetAll()),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: []),\n\t\t\t{\n\t\t\t\tkey: \"divider-above-sign-out\",\n\t\t\t\titemType: ContextualMenuItemType.Divider,\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: \"sign-out\",\n\t\t\t\ttext: \"Sign out\",\n\t\t\t\tonClick: () => authService.signOut(),\n\t\t\t},\n\t\t],\n\t\t[roleBasedFeatureFlags, isEmulatingRole, emulateRoleOptions, popupsDisabled]\n\t);\n\n\treturn (\n\t\t<TrackerContextProvider scope={\"app-header\"}>\n\t\t\t<StyledHeader className={props.className}>\n\t\t\t\t{!siteSearchContext.isHeaderTakeover && (\n\t\t\t\t\t<HomeLink as={Link} className=\"app-name\" data-testid=\"app-name\" to=\"/\">\n\t\t\t\t\t\t{env.appTitle}\n\t\t\t\t\t</HomeLink>\n\t\t\t\t)}\n\t\t\t\t<SearchBox\n\t\t\t\t\tautoFocus={siteSearchContext.isHeaderTakeover}\n\t\t\t\t\tclassName={siteSearchContext.isHeaderTakeover ? \"search-mode\" : \"non-search-mode\"}\n\t\t\t\t\tonCancel={siteSearchContext.releaseHeader}\n\t\t\t\t\tonMouseOver={prefetchRecentHistory}\n\t\t\t\t/>\n\t\t\t\t{!siteSearchContext.isHeaderTakeover && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<TooltipHost content=\"Search\">\n\t\t\t\t\t\t\t<StyledSquareButton className=\"search-button\" onClick={siteSearchContext.takeoverHeader} aria-label=\"Search\">\n\t\t\t\t\t\t\t\t<FontIcon iconName=\"Search\" />\n\t\t\t\t\t\t\t</StyledSquareButton>\n\t\t\t\t\t\t</TooltipHost>\n\n\t\t\t\t\t\t<TooltipHost content=\"Preferences\">\n\t\t\t\t\t\t\t<StyledSquareButton className=\"collapse-when-narrow\" onClick={() => navigate(\"/my/preferences\")} aria-label=\"Preferences\">\n\t\t\t\t\t\t\t\t<FontIcon iconName=\"Settings\" />\n\t\t\t\t\t\t\t</StyledSquareButton>\n\t\t\t\t\t\t</TooltipHost>\n\n\t\t\t\t\t\t<TooltipHost content=\"Get help\">\n\t\t\t\t\t\t\t<StyledSquareButton className=\"collapse-when-narrow\" ref={helpMenuTriggerRef} onClick={() => setIsHelpMenuOpen(true)} aria-label=\"Get help\">\n\t\t\t\t\t\t\t\t<FontIcon iconName=\"Help\" />\n\t\t\t\t\t\t\t</StyledSquareButton>\n\t\t\t\t\t\t</TooltipHost>\n\n\t\t\t\t\t\t<ContextualMenu\n\t\t\t\t\t\t\titems={helpMenuItems}\n\t\t\t\t\t\t\thidden={!isHelpMenuOpen}\n\t\t\t\t\t\t\ttarget={helpMenuTriggerRef}\n\t\t\t\t\t\t\tonItemClick={() => setIsHelpMenuOpen(false)}\n\t\t\t\t\t\t\tonDismiss={() => setIsHelpMenuOpen(false)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<TooltipHost content=\"More\">\n\t\t\t\t\t\t\t<StyledSquareButton className=\"collapse-container\" ref={overflowMenuTriggerRef} onClick={() => setIsOverflowMenuOpen(true)} aria-label=\"More\">\n\t\t\t\t\t\t\t\t<FontIcon iconName=\"More\" />\n\t\t\t\t\t\t\t</StyledSquareButton>\n\t\t\t\t\t\t</TooltipHost>\n\n\t\t\t\t\t\t<ContextualMenu\n\t\t\t\t\t\t\titems={overFlowMenuItems}\n\t\t\t\t\t\t\thidden={!isOverflowMenuOpen}\n\t\t\t\t\t\t\ttarget={overflowMenuTriggerRef}\n\t\t\t\t\t\t\tonItemClick={() => setIsOverflowMenuOpen(false)}\n\t\t\t\t\t\t\tonDismiss={() => setIsOverflowMenuOpen(false)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<TooltipHost content=\"App menu\">\n\t\t\t\t\t\t\t<StyledSquareButton ref={meMenuTriggerRef} onClick={() => setIsMeMenuOpen(true)} aria-label=\"App menu\">\n\t\t\t\t\t\t\t\t{authContext.account?.name && (\n\t\t\t\t\t\t\t\t\t<Persona hidePersonaDetails text={authContext.account?.name} imageUrl={myPhotoUrl || undefined} size={PersonaSize.size32} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</StyledSquareButton>\n\t\t\t\t\t\t</TooltipHost>\n\n\t\t\t\t\t\t<ContextualMenu\n\t\t\t\t\t\t\titems={meMenuItems}\n\t\t\t\t\t\t\thidden={!isMeMenuOpen}\n\t\t\t\t\t\t\ttarget={meMenuTriggerRef}\n\t\t\t\t\t\t\tonItemClick={() => setIsMeMenuOpen(false)}\n\t\t\t\t\t\t\tonDismiss={() => setIsMeMenuOpen(false)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{isCustomerServiceDialogOpen && <CustomerServiceDialog initialContent={initialContent} topLevelType={topLevelType} onClose={onClose} />}\n\t\t\t\t<AboutDialog hidden={!isAboutDialogOpen} onClose={() => setIsAboutDialogOpen(false)} />\n\t\t\t</StyledHeader>\n\t\t</TrackerContextProvider>\n\t);\n};\n\nconst HomeLink = styled.a`\n\tdisplay: inline-flex;\n\theight: 100%;\n\talign-items: center;\n`;\n\nconst StyledSquareButton = styled.button`\n\tcursor: pointer;\n\tbackground-color: transparent;\n\tborder: none;\n\twidth: 48px;\n\theight: 48px;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t&:hover {\n\t\tbackground-color: #003a6e;\n\t}\n\n\t.ms-Icon {\n\t\tfont-size: 16px;\n\t\tcolor: white;\n\t}\n\n\ttext-decoration: none;\n`;\n\nconst StyledHeader = styled.header`\n\tz-index: 100;\n\tbackground-color: #005a9e;\n\theight: 48px;\n\tdisplay: flex;\n\talign-items: center;\n\tflex-shrink: 0;\n\t${hideInPrint}\n\n\t.app-name {\n\t\tmargin-left: 2rem;\n\t\tmargin-right: auto;\n\t\tfont-weight: 600;\n\t\tcolor: white;\n\t\tfont-size: 16px;\n\t\ttext-decoration: none;\n\t}\n\n\t.icon-button {\n\t\tcursor: pointer;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\twidth: 48px;\n\t\theight: 48px;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t.ms-Icon {\n\t\t\tfont-size: 16px;\n\t\t\tcolor: white;\n\t\t}\n\t}\n\n\t.icon-button:hover {\n\t\tbackground-color: #003a6e;\n\t}\n\n\t.collapse-when-narrow {\n\t\tdisplay: none;\n\n\t\t@media screen and (min-width: 60rem) {\n\t\t\tdisplay: inline-flex;\n\t\t}\n\t}\n\n\t@media screen and (min-width: 60rem) {\n\t\t.collapse-container {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.non-search-mode {\n\t\tdisplay: none;\n\t}\n\n\t.search-mode {\n\t\tdisplay: inline-flex;\n\t}\n\n\t@media screen and (min-width: 40rem) {\n\t\t.non-search-mode {\n\t\t\tdisplay: inline-flex;\n\t\t}\n\t\t.search-button {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n","import React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { appInsights } from \"../../utils/app-insights\";\nimport { env } from \"../../utils/env\";\nimport { AppLoadingIndicator } from \"../app-root/app-loading-indicator\";\n\nexport const ExternalPage: React.FC = () => {\n\tconst { pathname, search } = useLocation();\n\n\tconst urlSearchParams = new URLSearchParams(search);\n\turlSearchParams.set(\"forceClassic\", \"true\");\n\n\tuseEffect(() => {\n\t\tappInsights.trackPageView({\n\t\t\tname: \"External\",\n\t\t\tproperties: {\n\t\t\t\tpathname,\n\t\t\t},\n\t\t});\n\n\t\t// We intentionally altered the url by adding `?forceClassic=true` before navigating. Otherwise, the browser back button\n\t\t// will skip the entry in history. This behavior can only be validated in UAT environment where modern and classic HITS are\n\t\t// running under the same host name.\n\t\tlocation.replace(`${env.dotnetFrontendBaseUrl}${pathname}?${urlSearchParams}`);\n\t}, []);\n\n\treturn <AppLoadingIndicator loadingReason=\"Loading…\" />;\n};\n\nexport default ExternalPage;\n","import React, { lazy, LazyExoticComponent, Suspense } from \"react\";\nimport { Navigate, PathRouteProps, Route, Routes } from \"react-router-dom\";\nimport { TrackerContextProvider } from \"../../contexts/tracker-context\";\nimport { entityMeta, entityTypes } from \"../../utils/entity-meta\";\nimport { AppLoadingIndicator } from \"../app-root/app-loading-indicator\";\nimport { ExternalPage } from \"../external-page/external-page\";\n\ninterface AppPageProps extends PathRouteProps {\n\tpath: string;\n\ttrackerScope: string;\n\trouteComponent: LazyExoticComponent<any> | React.FC<any>;\n}\n\nexport const appPages: AppPageProps[] = [\n\t{\n\t\ttrackerScope: \"graphql-playground\",\n\t\tpath: \"/my/graphql-playground/*\",\n\t\trouteComponent: lazy(() => import(\"../graphql-playground-page/graphql-playground-page\")),\n\t},\n\t{ trackerScope: \"user-preferences\", path: \"/my/preferences/*\", routeComponent: lazy(() => import(\"../user-preferences-page/user-preferences-page\")) },\n\t{ trackerScope: \"home\", path: \"/my/*\", routeComponent: lazy(() => import(\"../home-page/home-page\")) },\n\t{\n\t\ttrackerScope: \"create\",\n\t\tpath: \"/create/*\",\n\t\trouteComponent: lazy(() => import(\"../create-page/create-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"helpdesk\",\n\t\tpath: \"/helpdesk/*\",\n\t\trouteComponent: lazy(() => import(\"../customer-service-page/customer-service-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"feedback\",\n\t\tpath: \"/feedback/*\",\n\t\trouteComponent: lazy(() => import(\"../customer-service-page/customer-service-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"search\",\n\t\tpath: \"/search\",\n\t\trouteComponent: lazy(() => import(\"../search-page/search-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"hub\",\n\t\tpath: `/${entityMeta.get(entityTypes.topic)?.slugName}/*`,\n\t\trouteComponent: lazy(() => import(\"../hub-page/hub-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"hub\",\n\t\tpath: `/${entityMeta.get(entityTypes.product)?.slugName}/*`,\n\t\trouteComponent: lazy(() => import(\"../hub-page/hub-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"hub\",\n\t\tpath: `/${entityMeta.get(entityTypes.user)?.slugName}/*`,\n\t\trouteComponent: lazy(() => import(\"../hub-page/hub-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"hub\",\n\t\tpath: `/${entityMeta.get(entityTypes.researchGroup)?.slugName}/*`,\n\t\trouteComponent: lazy(() => import(\"../hub-page/hub-page\")),\n\t},\n\t{\n\t\ttrackerScope: \"report\",\n\t\tpath: \"/:entityTypeSlug/create/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-editor\")),\n\t},\n\t{\n\t\tpath: \"/:entityTypeSlug/preview/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/:entityTypeSlug/edit/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-editor\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/study/present/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../presentation-page/presentation-page-loader\")),\n\t\ttrackerScope: \"presentation\",\n\t},\n\t{\n\t\tpath: \"/collection/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/study/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/note/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/recommendation/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n\t{\n\t\tpath: \"/insight/:entityIdString/*\",\n\t\trouteComponent: lazy(() => import(\"../report-page/report-viewer\")),\n\t\ttrackerScope: \"report\",\n\t},\n];\n\nexport const AppPages: React.FC = () => {\n\treturn (\n\t\t<Suspense fallback={<AppLoadingIndicator loadingReason=\"Loading app…\" />}>\n\t\t\t<Routes>\n\t\t\t\t<Route path=\"/\" element={<Navigate to=\"/my\" replace />} />\n\t\t\t\t{appPages.map((route) => (\n\t\t\t\t\t<Route\n\t\t\t\t\t\tkey={route.path}\n\t\t\t\t\t\tpath={route.path}\n\t\t\t\t\t\telement={\n\t\t\t\t\t\t\t<TrackerContextProvider scope={route.trackerScope}>\n\t\t\t\t\t\t\t\t<route.routeComponent />\n\t\t\t\t\t\t\t</TrackerContextProvider>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t\t<Route\n\t\t\t\t\tpath=\"*\"\n\t\t\t\t\telement={\n\t\t\t\t\t\t<TrackerContextProvider scope=\"redirect\">\n\t\t\t\t\t\t\t<ExternalPage />\n\t\t\t\t\t\t</TrackerContextProvider>\n\t\t\t\t\t}\n\t\t\t\t></Route>\n\t\t\t</Routes>\n\t\t</Suspense>\n\t);\n};\n","import { useEffect } from \"react\";\nimport { useUserProfileContext } from \"../../contexts/user-profile-context/user-profile-context\";\nimport { appInsights } from \"../../utils/app-insights\";\n\nexport const useInitializeAppInsights = () => {\n\tconst { myProfile } = useUserProfileContext();\n\n\tuseEffect(() => {\n\t\tif (myProfile) appInsights.setAuthenticatedUserContext(myProfile.user.id.toString());\n\t}, [myProfile]);\n};\n","import { initializeIcons } from \"@fluentui/react\";\nimport React, { useCallback, useRef } from \"react\";\nimport { BrowserRouter, useSearchParams } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { GlobalContextProviders, useAuthContext } from \"../../contexts/global-context-providers\";\nimport { hideInPrint } from \"../../styles/02-tools/hide-in-print\";\nimport { screenReaderOnly } from \"../../styles/02-tools/screen-reader-only\";\nimport { ResetStyles } from \"../../styles/03-generic/reset\";\nimport { tokens } from \"../../styles/tokens\";\nimport { useNavigationPerfMarker } from \"../../utils/navigation-perf-marker\";\nimport { useResizeObserver } from \"../../utils/use-resize-observer\";\nimport { useSkipToMain } from \"../../utils/use-skip-to-main\";\nimport { CommunicationMessage } from \"../app-banner/communication-message\";\nimport { NetworkStatusMessage } from \"../app-banner/network-status-message\";\nimport { AppHeader } from \"../app-header/app-header\";\nimport { AppPages } from \"../app-pages/app-pages\";\nimport { AppLoadingIndicator } from \"./app-loading-indicator\";\nimport { useInitializeAppInsights } from \"./use-initialize-app-insights\";\n\nexport const SITE_MAIN_ID = \"maincontent\";\n\nexport const messageStackHeightVariableName = \"--message-stack-area-height\";\n\nconst AppContent: React.FC = () => {\n\tconst authContext = useAuthContext();\n\n\tconst [searchParams] = useSearchParams();\n\tconst isEmbed = searchParams.get(\"embed\") === \"true\";\n\n\tuseInitializeAppInsights();\n\n\tconst skipToMain = useSkipToMain();\n\n\tconst handleSkipToMain = useCallback((e: React.MouseEvent) => {\n\t\t// use javascript to handle event can prevent # string to show up. This keeps the URL clean\n\t\te.preventDefault();\n\t\tskipToMain();\n\t}, []);\n\n\t// measure the height change\n\tconst messageStackRef = useRef<HTMLDivElement>(null);\n\tuseResizeObserver(\n\t\tmessageStackRef,\n\t\tuseCallback((size) => document.documentElement.style.setProperty(messageStackHeightVariableName, size.blockSize.toString() + \"px\"), [])\n\t);\n\tuseNavigationPerfMarker();\n\treturn (\n\t\t<>\n\t\t\t{!isEmbed && (\n\t\t\t\t<SkipLink href={`#${SITE_MAIN_ID}`} onClick={handleSkipToMain}>\n\t\t\t\t\tSkip to main content\n\t\t\t\t</SkipLink>\n\t\t\t)}\n\t\t\t{authContext.authState === \"signed-in\" && (\n\t\t\t\t<StyledPageRoot>\n\t\t\t\t\t{!isEmbed && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<AppHeader className=\"header classic-shim-header\" />\n\t\t\t\t\t\t\t<MessageStack ref={messageStackRef}>\n\t\t\t\t\t\t\t\t<NetworkStatusMessage />\n\t\t\t\t\t\t\t\t<CommunicationMessage />\n\t\t\t\t\t\t\t</MessageStack>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t<ScrollArea tabIndex={-1} id={SITE_MAIN_ID} className=\"scroll-area\">\n\t\t\t\t\t\t<AppPages />\n\t\t\t\t\t</ScrollArea>\n\t\t\t\t</StyledPageRoot>\n\t\t\t)}\n\t\t\t{authContext.authState === \"signing-in\" && <AppLoadingIndicator loadingReason=\"Authenticating…\" />}\n\t\t</>\n\t);\n};\n\nexport const AppRoot: React.FC = () => {\n\treturn (\n\t\t<BrowserRouter>\n\t\t\t<ResetStyles />\n\t\t\t<GlobalContextProviders>\n\t\t\t\t<AppContent />\n\t\t\t</GlobalContextProviders>\n\t\t</BrowserRouter>\n\t);\n};\n\nconst ScrollArea = styled.main`\n\toutline: none; /** programmatic focus zone should not receive outline */\n\tflex-grow: 1;\n\tpadding-bottom: 4rem;\n\n\t@media not print {\n\t\toverflow-y: scroll; /** retain the scroll bar to avoid content jump */\n\t}\n`;\n\nconst MessageStack = styled.div`\n\t${hideInPrint}\n`;\n\nconst SkipLink = styled.a`\n\t&:not(:focus) {\n\t\t${screenReaderOnly}\n\t}\n\n\t&:focus {\n\t\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tz-index: 200;\n\t\tbackground-color: white;\n\t\tborder: 1px solid black;\n\t\tborder-radius: ${tokens.corners.radius2};\n\t\tpadding: 8px 16px;\n\t\tcolor: black;\n\t}\n`;\n\nconst StyledPageRoot = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n`;\n\ninitializeIcons();\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { AppRoot } from \"./components/app-root/app-root\";\nimport { appInsights } from \"./utils/app-insights\";\nimport { authService } from \"./utils/auth-service\";\n\nperformance.mark(\"AppRoot-Start\");\nauthService.autoSignIn();\n\nfunction handleReactRendered() {\n\t/**\n\t * Measure from browser starting to parse HTML to React finishing the 1st render.\n\t * This is approximately the \"blank screen\" duration.\n\t *\n\t * This is affected by\n\t * - Network speed (initial download)\n\t * - The size of the entry bundle (initial download)\n\t * - The computing power of the device\n\t *\n\t * This is the MVP implementation of perf measurement.\n\t * Follow-up work: #32503554\n\t */\n\tconst duration = performance.now() - window.scriptingStartTime!;\n\t// Don't use any hook. This is outside react.\n\tappInsights.trackMetric({\n\t\tname: \"react-rendered\",\n\t\taverage: duration,\n\t});\n\n\tconsole.log(`[perf] react rendered ${(duration / 1000).toFixed(2)}s`);\n}\n\nconst mountNode = document.getElementById(\"app\");\n\nReactDOM.render(<AppRoot />, mountNode, handleReactRendered);\n"],"file":"assets/index-6aedfffc.js"}