{"version":3,"file":"js/app.30ebbffd.js","mappings":"mEAGA,MAAMA,UAAiBC,EAAAA,EACtBC,WAAAA,CAAYC,EAASC,EAAK,EAAGC,EAAK,CAAC,GAElCC,MAAOH,EAASC,EAAMC,EACvB,EAED,K,qCCNA,MAAME,UAAkBN,EAAAA,EAEvBC,WAAAA,CAAYC,EAASC,EAAK,EAAGC,EAAK,CAAC,GAElCC,MAAOH,EAASC,EAAMC,EACvB,EAGD,K,qBCXA,MAAMJ,UAAoBO,MACzBN,WAAAA,CAAYC,EAASC,EAAK,EAAGC,EAAK,CAAC,GAElCC,MAAMH,GACNM,KAAKC,KAAOD,KAAKP,YAAYQ,KAGzBF,MAAMG,mBACTH,MAAMG,kBAAkBF,KAAMR,GAI/BQ,KAAKN,QAAUA,EACfM,KAAKL,KAAOA,EACZK,KAAKJ,KAAOA,CACb,EAED,K,yDCjB4D,EAAU,W,IAA8BO,EAAAA,K,EAAwB,EAAC,S,OAAe,EAAC,KAAAC,EAAU,kB,YAAQC,EAAAA,GAAS,MAAC,aAACC,GAAAA,WAAgBC,EAAuBC,OAAM,OAAsC,qBAAqBC,C,MAAwB,CAAY,eAAmB,QAAC,UAAY,QAAM,iCAAG,UAAG,oBAAC,YAAC,Q,GAA8E,CAAC,mBAAM,OAAC,EAAS,OAAI,0BAAsB,EAC5d,KAGD,EAASC,EAAAA,EAAM,CAAEC,EAAAA,gBAAe,M,uICJqK,W,MAAkB,K,IAA0BV,MAAK,G,OAAQ,EAAC,K,MAAA,CAAC,OAAIW,KAAO,K,CAAwD,OAAK,C,YAAM,O,YAAO,CAAC,OAAS,WAAW,IAAIL,MAAS,SAAC,GAACM,OAAW,EAAC,cAAaC,KAAG,QAAgI,I,CAAsB,EAAC,2C,MAAC,CAAU,IAAU,aAAeD,KAAAA,GAAqBD,MAAO,KAAkGJ,CAAAA,EAAK,OAAC,C,YAAW,QAAG,gHAAG,MAAMO,CAAsBF,GAAAA,CAAqDD,KAAO,aAAsHA,KAAO,GAA8CJ,MAAM,KAAe,WAACL,YAAYS,Q,CAASI,EAAG,GAAC,aAAW,wC,YAAI,Y,MAAa,C,SAAER,M,EAAS,WAAW,EAAO,MAAKS,C,YAAiB,wC,MAAC,IAAM,EAAC,sD,YAAE,wC,GAAE,GAAC,iCAA6B,MAAUL,C,MAAkC,CAAG,eAAsJJ,YAAM,OAAC,IAAI,Y,GAAE,UAAO,GAAc,QAAC,IAAmHA,MAAM,kBAAC,MAAQ,CAAE,UAAqF,yDAAC,MAAiD,CAACD,EAAG,kBAAuBA,EAAG,UAAoB,EAAI,GAAG,EAAC,aAAgB,cAAO,WAAmB,KAAI,aAAS,OAACC,MAAM,CAAC,IAAU,uBAAqI,CAACD,EAAG,QAAqB,KAAC,sCAACM,MAAAA,CAA6BD,MAAO,KAEt8DD,CAAAA,EAAAA,GAAAA,iBAAoB,kCAExB,MAASD,C,4bCmET,GACAT,KAAA,eACAiB,SAAA,CACAH,WAAA,WACA,YAAAI,OAAAV,QAAAM,UACA,EACAK,WAAA,WACA,MAAAC,QACA,EACAC,WAAA,WACA,MAAAD,QACA,EACAE,KAAA,WACA,IAAAC,EAAA,IAAAC,KACA,OAAAD,EAAAE,aACA,ICtF2P,I,UCOvPC,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QCChC,GACA1B,KAAA,MACA2B,WAAA,CAAAC,aAAAA,GACAC,QAAAA,GACA,OACAC,MAAA,aAEA,GC1ByO,ICQrO,GAAY,OACd,EACArB,EACAC,GACA,EACA,KACA,KACA,MAIF,EAAe,EAAiB,Q,mBClBhC,MAAMqB,EAAS,CACd,CACCC,KAAW,iBACXhC,KAAW,eACX0B,UAAWA,IAAM,8BACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,gBACXhC,KAAW,cACX0B,UAAWA,IAAM,8BACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,uBACXhC,KAAW,oBACX0B,UAAWA,IAAM,8BACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,cACXhC,KAAW,aACX0B,UAAWA,IAAM,8BACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,IACXhC,KAAW,OACX0B,UAAWA,IAAM,+DACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,oBACXhC,KAAW,OACX0B,UAAWA,IAAM,wEACjBO,MAAWM,IAAS,CAAGC,WAAWD,EAAME,OAAOD,WAAYE,MAAOH,EAAMI,MAAMD,QAC9ER,KAAW,CACVC,KAAM,CACLC,UAAgB,KAInB,CACCJ,KAAW,wBACXhC,KAAW,WACX0B,UAAWA,IAAM,wEACjBO,MAAWM,IAAS,CAAGC,WAAWD,EAAME,OAAOD,WAAYE,MAAOH,EAAMI,MAAMD,QAC9ER,KAAW,CACVC,KAAM,CACLC,UAAgB,KAInB,CACCJ,KAAW,wBACXhC,KAAW,WACX0B,UAAWA,IAAM,8DACjBO,MAAWM,IAAS,CAAGC,WAAWD,EAAME,OAAOD,aAC/CN,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,MAIf,CACCN,KAAW,QACXhC,KAAW,YACX0B,UAAWA,IAAM,+DACjBO,OAAW,EACXC,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,CAAE,aACdC,WAAY,CAAE,YAAa,iBAI9B,CACCN,KAAW,gBACXhC,KAAW,OACX0B,UAAWA,IAAM,+DACjBO,MAAWM,IAAS,CAAGK,OAAOL,EAAME,OAAOG,SAC3CV,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,CAAE,aACdC,WAAY,CAAE,YAAa,iBAI9B,CACCN,KAAW,IACXhC,KAAW,QACX0B,UAAWA,IAAM,8BACjBQ,KAAW,CACVC,KAAM,CACLC,UAAgB,EAChBC,UAAY,GACZC,WAAY,OAKhB,QCxIAO,EAAAA,GAAIC,IAAIC,EAAAA,GAER,MAAMC,EAAS,IAAID,EAAAA,EAAU,CAC3BE,KAAM,UACNC,KAAM9B,QACNW,OAAMA,IAGRiB,EAAOG,YAAY,CAAEC,EAAIC,EAAMC,KAG1BF,EAAGlB,KAAKC,KAAKC,WAAamB,EAAAA,EAAM/C,QAAQM,YAC3C0C,eAAeC,QAAQ,uBAAwBL,EAAGM,UAClDJ,EAAM,kBAGNA,GACD,IAGD,Q,UCtBAT,EAAAA,GAAIC,IAAIa,EAAAA,GAGR,WACC,MAAMC,EAAI,CAAC,EACXC,SAASC,iBAAiB,aAAaC,IACtC,MAAMC,EAAgBD,EAAEE,OAAOC,QAAQ,8BACtB,IAAbH,EAAEI,QAAiC,MAAjBH,GAAyBD,EAAEE,OAAOG,UAAUC,SAAS,mBAC1ET,EAAEU,GAAKN,EACPJ,EAAEW,YAAcR,EAAES,QAClBZ,EAAEa,YAAcV,EAAEW,QAClBd,EAAEe,SAAWf,EAAEU,GAAGM,wBAAwBC,KAC1CjB,EAAEkB,SAAWlB,EAAEU,GAAGM,wBAAwBG,IAC1CnB,EAAEU,GAAGU,MAAMC,SAAW,QACtBrB,EAAEU,GAAGU,MAAME,OAAS,EACpBtB,EAAEuB,cAAgBvB,EAAEU,GAAGU,MAAMI,WAC7BxB,EAAEU,GAAGU,MAAMI,WAAa,OACzB,IAEDvB,SAASC,iBAAiB,aAAaC,SACzB3D,IAATwD,EAAEU,KACNV,EAAEU,GAAGU,MAAMH,KAAOQ,KAAKC,IACtBD,KAAKE,IAAI3B,EAAEe,SAAWZ,EAAES,QAAUZ,EAAEW,YAAa,GACjDiB,OAAOC,WAAa7B,EAAEU,GAAGM,wBAAwBc,OAC9C,KACJ9B,EAAEU,GAAGU,MAAMD,IAAMM,KAAKC,IACrBD,KAAKE,IAAI3B,EAAEkB,SAAWf,EAAEW,QAAUd,EAAEa,YAAa,GACjDe,OAAOG,YAAc/B,EAAEU,GAAGM,wBAAwBgB,QAC/C,KAAI,IAET/B,SAASC,iBAAiB,WAAW,UACvB1D,IAATwD,EAAEU,KACNV,EAAEU,GAAGU,MAAMI,WAAaxB,EAAEuB,cAC1BvB,EAAEU,QAAKlE,EAAS,IAEjByF,aAAY,KACX,MAAMC,EAASjC,SAASkC,cAAc,8BACvB,OAAXD,IACJA,EAAOd,MAAMH,KAAOQ,KAAKC,IAAIU,SAASF,EAAOd,MAAMH,MAAOW,OAAOC,WAAaK,EAAOlB,wBAAwBc,OAAS,KACtHI,EAAOd,MAAMD,IAAMM,KAAKC,IAAIU,SAASF,EAAOd,MAAMD,KAAMS,OAAOG,YAAcG,EAAOlB,wBAAwBgB,QAAU,KAAI,GACxH,IACH,CAtCD,GAyCA,UAAmBjC,EAAAA,EAAQ,CAC3B,G,oBChDA,GACCsC,QAAS,CAERC,eAAgB,SAAUC,EAAgBC,EAAU,CACnDC,MAAQ,OACRC,IAAQ,UACRhF,KAAQ,UACRiF,KAAQ,UACRC,OAAQ,YAER,GAA2B,iBAAjBL,EACT,MAAO,GAGiD,MAAtDA,EAAeM,OAAQN,EAAeO,OAAO,EAAG,KAClDP,EAAiBA,EAAeM,OAAQ,EAAGN,EAAeO,OAAO,GAAI,UAGtE,IAAIC,EAAQ,IAAInF,KAAM2E,GAEtB,OAAOQ,EAAMC,eAAgB,UAAWR,EACzC,EAEAS,WAAY,SAAUV,EAAgBC,EAAU,CAC/CC,MAAO,OACPC,IAAO,UACPhF,KAAO,YAEP,IAAIqF,EAAQ,IAAInF,KAAM2E,GAEtB,OAAOQ,EAAMC,eAAgB,UAAWR,EACzC,EAEAU,eAAgB,SAAUC,EAAKC,EAAwB,GAEtD,IAAIC,EAAY,IAAIC,KAAKC,aAAc,QAAS,CAC/CnC,MAAuB,WACvBoC,SAAuB,MACvBJ,sBAAuBA,IAExB,OAAOC,EAAUI,OAAQN,EAC1B,ICzCF,GACCO,QAAQ,CACPC,OAAO,WACN/B,OAAOgC,SAASD,QACjB,I,UCWF1E,EAAAA,GAAI4E,OAAOC,eAAgB,EAG3B7E,EAAAA,GAAI8E,MAAOC,GACX/E,EAAAA,GAAI8E,MAAOE,GAGXhF,EAAAA,GAAIC,IAAIgF,EAAAA,GACRjF,EAAAA,GAAIC,IAAKiF,EAAAA,GACTlF,EAAAA,GAAIC,IAAIkF,EAAAA,GAER,IAAInF,EAAAA,GAAK,CACRG,OAAM,EACNO,MAAK,IACL0E,QAAO,EACPC,aAAc,WAEb3E,EAAAA,EAAM4E,WAAW,CAAEC,EAAUC,KAC5BC,QAAQC,IAAIH,EAASI,MAEjBJ,EAASI,KAAKC,WAAY,kBAC7BC,aAAajF,QAAS,sBAAuBkF,KAAKC,UAAWP,EAAMQ,gBAEhET,EAASI,KAAKC,WAAY,kBAC7BC,aAAajF,QAAS,sBAAuBkF,KAAKC,UAAWP,EAAMS,oBAEhEV,EAASI,KAAKC,WAAY,oBAC7BC,aAAajF,QAAS,qBAAsB4E,EAAMU,aACnD,IAEDxF,EAAAA,EAAMyF,SAAU,cAAeC,MAAM,WACrC,GAED,EACAxI,OAAcyI,GAAKA,EAAGC,KACnBC,OAAQ,O,mEC5CZ,MAAMC,EAAaA,CAAEC,GAAc,KAElC,IAAIC,EAAUnI,4CACVoI,EAAapI,GAIjB,MAAMqI,EAAiB,CAAC,EAElBC,EAAW,SAAUC,GAC1B,GAAyB,SAAtBA,EAAQlD,OAAO,EAAE,GACnB,OAAOkD,EAGR,IAAIC,EAAeD,EAAQE,QAAS,aAAc,IAC9CC,EAAe,GASnB,OARgB,OAAZN,GAAgC,KAAZA,IACvBM,EAAS,IACLF,EAAaG,QAAS,MAAS,IAClCD,EAAS,KAEVA,GAAUN,GAGJD,EAAUK,EAAeE,CACjC,EAQME,EAAmBC,eAAgB7D,EAAU,CAAC,GACnD,IAAIqB,EAAS,IACTgC,KACArD,GAOJ,GAJ4B,qBAAlBqB,EAAOyC,UAChBzC,EAAOyC,QAAU,CAAC,GAGhBZ,EAAe,CACjB,IAAIa,QAAiC5G,EAAAA,EAAMyF,SAAU,oCACrDvB,EAAOyC,QAAS,iBAAoB,UAAYC,CACjD,CAEA,OAAO1C,CACR,EAOM2C,EAAgB,SAAUrG,GAE/B,MAAIA,EAAEsG,UAAYtG,EAAEsG,SAAS1K,MAAQoE,EAAEsG,SAAS1K,KAAK2K,MAC9C,IAAIhL,EAAAA,EAAUyE,EAAEsG,SAAS1K,KAAKF,QAASsE,EAAEsG,SAASE,OAAQxG,EAAEsG,SAAS1K,KAAKA,MAI1E,IAAIL,EAAAA,EAAUyE,EAAEtE,QAAS,EAAGsE,EAAEyG,MAEtC,EAEA,MAAO,CAONC,aAAcR,iBAGb,IAAIS,QAA6BnH,EAAAA,EAAMyF,SAAU,gCAG7CvB,EAAS,IACTgC,EACHS,QAAS,CACR,cAAiB,UAAYQ,IAK/B,IACC,IAAIC,QAAmCC,EAAAA,EAAMC,IAAKnB,EAAU,kBAAoBjC,GAChF,OAAOkD,EAA2BhL,KAAKmL,WACxC,CACA,MAAO/G,GAEN,MAAIA,EAAEsG,SACC,IAAIxK,EAAAA,EAAWkE,EAAEsG,SAAS1K,KAAKF,QAASsE,EAAEsG,SAASE,OAAQxG,EAAEsG,SAAS1K,KAAKA,MAI3E,IAAIE,EAAAA,EAAWkE,EAAEtE,QAEzB,CAED,EASAoL,IAAKZ,eAAgBc,EAAK3E,EAAU,CAAC,GACpC,IAAIqB,QAAeuC,EAAkB5D,GAErC,OAAOwE,EAAAA,EAAMC,IAAKnB,EAAUqB,GAAOtD,GAASuD,MAAOZ,EACpD,EAUAa,KAAMhB,eAAgBc,EAAKpL,EAAMyG,EAAU,CAAC,GAC3C,IAAIqB,QAAeuC,EAAkB5D,GAErC,OAAOwE,EAAAA,EAAMK,KAAMvB,EAAUqB,GAAOpL,EAAM8H,GAASuD,MAAOZ,EAC3D,EAUAc,IAAKjB,eAAgBc,EAAKpL,EAAMyG,EAAU,CAAC,GAC1C,IAAIqB,QAAeuC,EAAkB5D,GAErC,OAAOwE,EAAAA,EAAMM,IAAKxB,EAAUqB,GAAOpL,EAAM8H,GAASuD,MAAOZ,EAC1D,EAUAe,MAAOlB,eAAgBc,EAAKpL,EAAMyG,EAAU,CAAC,GAC5C,IAAIqB,QAAeuC,EAAkB5D,GAErC,OAAOwE,EAAAA,EAAMO,MAAOzB,EAAUqB,GAAOpL,EAAM8H,GAASuD,MAAOZ,EAE5D,EASAgB,OAAQnB,eAAgBc,EAAK3E,EAAU,CAAC,GACvC,IAAIqB,QAAeuC,EAAkB5D,GAErC,OAAOwE,EAAAA,EAAMQ,OAAQ1B,EAAUqB,GAAOtD,GAASuD,MAAOZ,EACvD,EASAiB,SAAUpB,eAAgBc,GACzB,IAAIO,EAAkB,GACtB,GAAGhC,EACF,IACC,IAAIiC,QAA6BxL,KAAK8K,IAAKnB,EAAU,mBACrD4B,EAA2BC,EAAqB5L,KAAKmL,WACtD,CACA,MAAM/G,GACL,MAAM,IAAIlE,EAAAA,EAAW,yDACtB,CAGD,IAAI2L,EAAc9B,EAASqB,GAC3B,GAAGzB,EAAe,CACjB,IAAIQ,EAAS,IACT0B,EAAYzB,QAAS,MAAS,IACjCD,EAAS,KAEV0B,GAAe1B,EAAS,mBAAqBwB,CAC9C,CAEA9F,OAAOiG,KAAMD,EAEd,EASAA,YAAavB,eAAgBc,GAC5B,IAAIO,EAAkB,GACtB,GAAGhC,EACF,IACC,IAAIiC,QAA6BxL,KAAK8K,IAAKnB,EAAU,mBACrD4B,EAA2BC,EAAqB5L,KAAKmL,WACtD,CACA,MAAM/G,GACL,MAAM,IAAIlE,EAAAA,EAAW,yDACtB,CAGD,IAAI2L,EAAc9B,EAASqB,GAE3B,GAAGzB,EAAe,CACjB,IAAIQ,EAAS,IACT0B,EAAYzB,QAAS,MAAS,IACjCD,EAAS,KAEV0B,GAAe1B,EAAS,mBAAqBwB,CAC9C,CAEA,OAAOE,CAER,EAEAE,eAAezB,eAAgB0B,EAAMC,GACpC,IAAInE,QAAeuC,EAAkB,CACpCE,QAAS,CACR,eAAgB,yBAKd2B,EAAW,IAAIC,SACnBD,EAAS/B,OAAO,OAAQ6B,GAExB,IAAIZ,EAAM,WAMV,MAJwB,iBAAda,IACTb,GAAO,eAAea,GAGhBhB,EAAAA,EAAMK,KAAMvB,EAAUqB,GAAOc,EAAUpE,GAASuD,MAAOZ,EAE/D,EAEA,EAGF,K,+HC7Qe,MAAM2B,EAOpBvM,WAAAA,CAAYsL,EAAY,GAAIkB,EAAS,GAAIhM,EAAK,GAAIc,GAAW,IAAOmL,EAAAA,EAAAA,GAAA,mBALtD,KAAEA,EAAAA,EAAAA,GAAA,gBACL,KAAEA,EAAAA,EAAAA,GAAA,YACN,KAAEA,EAAAA,EAAAA,GAAA,mBACI,GAGZlM,KAAK+K,YAAcA,EACnB/K,KAAKiM,SAAWA,EAChBjM,KAAKC,KAAOA,EACZD,KAAKe,WAAaA,CACnB,E,cCND,IAAIyI,EAAUnI,2CAEV8K,EAAiB,CAAC,QACrB,iBACA,SACA,UACA,gDAED,MAAMC,EAAc,CAEnBC,WAAY,CACXjK,KAAQ,CACPkK,SAAuBjL,uCACvBkL,UAAuBlL,sDACvBmL,YAAuBhD,EAAUnI,gBACjCoL,sBAAuBjD,EAAUnI,kBAElCqL,MAAQ,CACPC,2BAA2B,EAC3BC,cAAwB,eACxBC,wBAAwB,GAEzBC,OAAQ,CACPC,cAAe,CACdC,eAAgBA,CAAEC,EAAOvN,EAASwN,KACjC,IAAIA,EAGJ,OAAQD,GACP,KAAKE,EAAAA,EAAcpN,MAElB,YADAwI,QAAQgC,MAAO7K,GAEhB,KAAKyN,EAAAA,EAAcC,KAElB,YADA7E,QAAQ8E,KAAM3N,GAEf,KAAKyN,EAAAA,EAAcG,QAElB,YADA/E,QAAQgF,MAAO7N,GAEhB,KAAKyN,EAAAA,EAAcK,QAElB,YADAjF,QAAQkF,KAAM/N,GAEhB,KAMJgO,aAAc,CACbC,OAAQxB,GAGTyB,WAAY,CACXD,OAAQxB,GAGT0B,iBAAkB,CACjBF,OAAQxB,EACRK,YAAYhD,EAAUnI,wBAIvByM,aAAc,KAEd/M,YAAY,EAEZkL,SAAU,GAEVxM,YAAayK,iBACZlK,KAAK8N,aAAe,IAAIC,EAAAA,GAAyB/N,KAAKqM,kBAChDrM,KAAK8N,aAAaE,YACzB,EAMAC,QAAAA,GACC,IAAIC,EAAKlO,KAELmO,EAAO,IAAInC,EAEf,OAAO,IAAIoC,SAAS,SAAUC,EAASC,GACtCJ,EAAGJ,aAAaS,wBAAwBrF,MAAQoB,IAC/C,GAAiB,OAAbA,EACH6D,EAAO,IAAInC,EAAe1B,EAASS,YAAaT,EAASkE,QAAQvC,SAAU3B,EAASkE,QAAQvO,MAAM,OAE9F,CACJ,IAAIwO,EAAkBP,EAAGJ,aAAaY,iBAEP,IAA3BD,EAAgB9H,SAGX8H,EAAgB9H,OAAS,EAEjC4B,QAAQkF,KAAM,+BAEqB,IAA3BgB,EAAgB9H,SACxBwH,EAAO,IAAInC,EAAeyC,EAAiB,GAAI1D,YAAa0D,EAAiB,GAAIxC,SAAUwC,EAAiB,GAAIxO,MAAM,IAExH,CAEAoO,EAASF,EAAM,IACZlD,OAASjH,IACZsK,EAAQ,IAAIxO,EAAAA,EAAW,mCAAqCkE,EAAEtE,SAAW,GAG3E,GACD,EAEAiP,MAAAA,GACC3O,KAAK8N,aAAac,cAAe5O,KAAK0N,cAAexE,MAAM,WAC3D,GACD,EAEA2F,OAAAA,CAAS5C,GAOR,MAAM6C,EAAgB,CACpBN,QAASxO,KAAK8N,aAAaiB,qBAAsB9C,IAGnDjM,KAAK8N,aAAakB,OAAQF,GAAgB5F,MAAM,WAEhD,GACD,EAQA+F,cAAAA,CAAgBhD,GACf,IAAIiC,EAAUlO,KACVkP,EAAU,IAAId,SAAQ,SAASC,EAASC,GAC3C,MAAMa,EAAgB,CACrBlD,SAAUA,GAEX,IAAIuC,EAAUN,EAAGJ,aAAasB,WAAWD,GACzCjB,EAAGL,iBAAiBW,QAAUA,EAC9BN,EAAGJ,aAAauB,mBAAmBnB,EAAGL,kBAAkB3E,MAAK,SAASoB,GACrE+D,EAAQ/D,EAASS,YAClB,IAAGE,OAAMjH,IACRuE,QAAQkF,KAAK,kEACTzJ,aAAamJ,EAAAA,IAEhBe,EAAGN,WAAWY,QAAUA,EACxBN,EAAGJ,aAAawB,qBAAqBpB,EAAGN,YAAY1E,MAAK,WACxD,KAGDoF,EAAQ,IAAIxO,EAAAA,EAAW,mCAAmCkE,EAAEtE,SAC7D,GAGF,IAEA,OAAOwP,CACR,GAID9C,EAAY3M,c,cCxKZ,MAAM6I,EAAQA,KAAA,CACbyC,YAAa,GACbkB,SAAa,GACbhM,KAAa,GACbc,YAAa,EACbwO,OAAO,IAIF9O,EAAU,CACfsK,YAAY,SAASzC,GACpB,OAAOA,EAAMyC,WACd,GAIKyE,EAAU,CACfC,uBAAuB,UAAS,OAACC,IAChCA,EAAO,YAAY,EACpB,EAEAf,OAAO,WACNvC,EAAYuC,QACb,EAEAE,QAAS,UAAS,MAAEvG,EAAK,OAAEoH,IAC1B,IAAIzD,EAAW3D,EAAM2D,SACrBG,EAAYyC,QAAS5C,GACrB0D,YAAW,IAAID,EAAO,iBAAiB,KACxC,EAEAT,eAAe/E,gBAAe,MAAC5B,EAAK,OAAEoH,IACrC,IAAIE,GAAc,EAElB,IACC,IAAIC,GAA4BC,EAAAA,EAAAA,GAAWxH,EAAMyC,aAC7CtJ,KAAKsO,OAA0C,IAAhCF,EAA0BG,MAC5CJ,GAAc,EAEhB,CACA,MACCA,GAAc,CACf,CAEA,GAAGA,EAAa,CACf,IAAI7E,QAAoBqB,EAAY6C,eAAgB3G,EAAM2D,UAE1D,OADAyD,EAAO,iBAAkB3E,GAClBA,CACR,CAEC,OAAOzC,EAAMyC,WAEf,EASAiD,WAAW9D,gBAAe,OAACwF,EAAM,SAAEzG,UAC5ByG,EAAO,wCACPtD,EAAY6B,WAAW/E,MAAK,SAASiF,GAC1CuB,EAAO,UAAWvB,GAEfA,EAAKpN,aAAeoN,EAAKpD,aAC3B9B,EAAS,kBAEVyG,EAAO,YAAY,EAEpB,GACD,GAIKO,EAAY,CAEjBC,eAAe,SAAS5H,EAAMyC,GAC7BzC,EAAMyC,YAAcA,CACrB,EAEAoF,QAAS,SAAW7H,EAAO6F,GAC1B7F,EAAMvH,WAAaoN,EAAKpN,WACxBuH,EAAMyC,YAAcoD,EAAKpD,aAAezC,EAAMyC,YAC9CzC,EAAM2D,SAAWkC,EAAKlC,SACtB3D,EAAMrI,KAAOkO,EAAKlO,IACnB,EAGAmQ,SAAU,SAAW9H,EAAOiH,GAC3BjH,EAAMiH,MAAQA,CACf,EAEAc,aAAc,SAAS/H,GACtBA,EAAMvH,YAAa,EACnBuH,EAAMyC,YAAc,GACpBzC,EAAM2D,SAAW,GACjB3D,EAAMrI,KAAO,EACd,EAEAqQ,+BAA+B,SAAShI,GACvC,GAAKK,aAAa4H,QAAS,uBAA0B,CAEpD,IAAI3Q,EAAOgJ,KAAK4H,MAAO7H,aAAa4H,QAAS,wBACnC,OAAP3Q,IACFA,EAAK2P,OAAQ,EACbkB,OAAOC,OAAOpI,EAAO1I,GAEvB,CACD,GAID,OACC+Q,YAAY,EACZrI,QACA7H,UACA+O,UACAS,a,UC3Hc,MAAMW,EAWpBnR,WAAAA,CAAamR,IAAW1E,EAAAA,EAAAA,GAAA,cATZ,KAAEA,EAAAA,EAAAA,GAAA,YACN,KAAEA,EAAAA,EAAAA,GAAA,aACF,KAAEA,EAAAA,EAAAA,GAAA,oBACI,IAAKA,EAAAA,EAAAA,GAAA,oBACJ,KAAEA,EAAAA,EAAAA,GAAA,kBACJ,KAAEA,EAAAA,EAAAA,GAAA,aACP,IAIPlM,KAAK6C,OAAQ+N,EAAS/N,QAAU,GAChC7C,KAAKC,KAAQ2Q,EAAS3Q,MAAQ,GAC9BD,KAAK6Q,MAAQD,EAASC,OAAS,GAC/B7Q,KAAK8Q,MAAQF,EAASE,OAAS,GAC/B9Q,KAAK+Q,YAAcH,EAASG,cAAe,EAC3C/Q,KAAKgR,aAAeJ,EAASI,cAAgB,GAC7ChR,KAAKiR,WAAaL,EAASK,YAAc,EAC1C,ECbD,MAAM3I,EAAQA,KAAA,CACbyC,YAAa,GACb+F,MAAM,GACN3C,KAAK,CAAC,EACNpN,YAAa,EACbwO,OAAO,EACP2B,SAAQ,IAIHzQ,EAAU,CAEhB,EAGM+O,EAAU,CASfxB,WAAW9D,gBAAe,OAACwF,EAAM,SAAEzG,UAE5ByG,EAAO,cAAc,SACrBA,EAAO,wCACPzG,EAAS,kBACfyG,EAAO,YAAY,SACbA,EAAO,cAAc,EAE5B,EASAT,eAAe/E,gBAAe,MAAC5B,EAAK,OAAEoH,IACrC,IAAIE,GAAc,EAElB,IACC,IAAIC,GAA4BC,EAAAA,EAAAA,GAAYxH,EAAMyC,aAC9CtJ,KAAKsO,OAA0C,IAAhCF,EAA0BG,MAC5CJ,GAAc,EAEhB,CACA,MAAM5L,GACL4L,GAAc,CACf,CAEA,GAAGA,EAAa,CACf,IAAIuB,GAAM7H,EAAAA,EAAAA,KACNyB,QAAoBoG,EAAIzG,eAE5B,OADAgF,EAAO,mBAAoB3E,GACpBA,CACR,CAEC,OAAOzC,EAAMyC,WAEf,GAKKkF,EAAY,CAEjBmB,iBAAiB,SAAS9I,EAAMyC,GAE/B,IACC,IAAIsG,GAAqBvB,EAAAA,EAAAA,GAAW/E,GACpCzC,EAAMyC,YAAcA,EACpBzC,EAAMwI,MAAQO,EAAmBC,MACjChJ,EAAM6F,KAAO,IAAIyC,EAAUS,EAAmBzR,MAC9C0I,EAAMvH,YAAa,CACpB,CACA,MAAMiD,GAEL,MADAuE,QAAQC,IAAIxE,GACN,IAAIlE,EAAAA,EAAU,0DAA2D,IAAKkE,EACrF,CACD,EAEAoM,SAAU,SAAW9H,EAAOiH,GAC3BjH,EAAMiH,MAAQA,CACf,EAEAe,+BAA+B,SAAShI,GACvC,GAAKK,aAAa4H,QAAS,2BAA8B,CAExD,IAAI3Q,EAAOgJ,KAAK4H,MAAO7H,aAAa4H,QAAS,4BACnC,OAAP3Q,IACFA,EAAK2P,OAAQ,EACbkB,OAAOC,OAAOpI,EAAO1I,GAEvB,CACD,EACA2R,WAAW,SAASjJ,EAAOtB,GAC1BsB,EAAM4I,QAAUlK,CACjB,GAID,OACC2J,YAAY,EACZrI,MAAK,EACL7H,QAAO,EACP+O,QAAO,EACPS,UAASA,GC9GVnN,EAAAA,GAAIC,IAAKyO,EAAAA,IAET,UAAmBA,EAAAA,GAAAA,MAAY,CAC9B/Q,QAAW,CACVM,WAAY,SAAUuH,GACrB,SAAKA,EAAMQ,cAAc/H,YAAeuH,EAAMQ,cAAcyG,OAAUjH,EAAMS,kBAAkBhI,YAAeuH,EAAMS,kBAAkBwG,MAItI,EAEAkC,UAAU,SAASnJ,GAClB,OAAOA,EAAMmJ,SACd,EAEAC,gBAAgB,SAASpJ,GACxB,MAA+B,oBAArBA,EAAMmJ,UAAU,IAAwD,iBAA7BnJ,EAAMmJ,UAAU,GAAGE,QAChErJ,EAAMmJ,UAAU,GAAGE,QAEpB,GACR,GAEDrJ,MAAW,CACVmJ,UAAU,GACVzI,cAAa,GAEdiH,UAAW,CAEV2B,YAAY,SAAUtJ,EAAOuJ,GAC5BvJ,EAAMmJ,UAAUK,KAAMD,EACvB,EAEAE,eAAe,SAASzJ,EAAO0J,GAC9B,IAAIC,EAAQ3J,EAAMmJ,UAAUS,WAAUC,GAAQA,EAAKH,KAAOA,KAC3C,IAAXC,GACH3J,EAAMmJ,UAAUW,OAAOH,EAAO,EAEhC,EAEAI,gBAAgB,SAAS/J,EAAOgK,GAC/BhK,EAAMU,aAAesJ,CACtB,GAGD9C,QAAW,CACVxB,WAAY9D,gBAAgB,OAACwF,IAC5B,GAAK/G,aAAa4H,QAAS,sBAAyB,CAEnD,IAAI3Q,EAAO+I,aAAa4H,QAAS,sBACvB,SAAP3Q,IAAwB,IAAPA,IAAuB,IAAPA,IAAsB,IAAPA,GAClD8P,EAAO,kBAAmB9P,EAE5B,CACD,EAEA2S,gBAAgBrI,iBACfvB,aAAa6J,WAAW,uBACxB7J,aAAa6J,WAAW,0BACzB,EACA3D,QAAS3E,gBAAgB,SAACjB,UACnBA,EAAS,yBACTA,EAAS,wBAChB,EAGAwJ,aAAa,UAAS,OAAC/C,GAASgD,GAC/B,IAAIb,EAAW,CACdG,GAAI,YAAY1M,KAAKqN,SAASC,SAAS,IAAKlM,OAAO,EAAG,GACtDmM,MAAOH,EAAQG,MACfnT,QAASgT,EAAQhT,SAGf,YAAagT,IACfb,EAASF,QAAWe,EAAQf,SAG7BjC,EAAO,cAAemC,EAEvB,EAEAiB,kBAAkB,UAAS,OAACpD,GAAS1L,GACpC,IAAItE,EAAU,GACF,IAATsE,EAAErE,OACJD,GAAWsE,EAAErE,KAAK,MAEnBD,GAAWsE,EAAEtE,QAEb,IAAImS,EAAW,CACdG,GAAI,YAAY1M,KAAKqN,SAASC,SAAS,IAAKlM,OAAO,EAAG,GACtDmM,MAAO,QACPnT,QAASA,EACTiS,QAAQ,KAGTjC,EAAO,cAAemC,EAEvB,EAEAE,cAAAA,EAAe,OAACrC,GAASsC,GACxBtC,EAAO,iBAAkBsC,EAC1B,EAEAK,eAAAA,EAAgB,OAAC3C,GAAS4C,GACzB5C,EAAO,kBAAmB4C,EAC3B,GAEDS,QAAW,CACVjK,cAAmBA,EACnBC,kBAAmBA,I,GCjHjBiK,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7S,IAAjB8S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CACjDlB,GAAIkB,EACJI,QAAQ,EACRF,QAAS,CAAC,GAUX,OANAG,EAAoBL,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG3EI,EAAOC,QAAS,EAGTD,EAAOD,OACf,CAGAH,EAAoBQ,EAAIF,E,WC5BxB,IAAIG,EAAW,GACfT,EAAoBU,EAAI,SAASC,EAAQC,EAAUzT,EAAI0T,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIP,EAAS/M,OAAQsN,IAAK,CACrCJ,EAAWH,EAASO,GAAG,GACvB7T,EAAKsT,EAASO,GAAG,GACjBH,EAAWJ,EAASO,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAASlN,OAAQwN,MACpB,EAAXL,GAAsBC,GAAgBD,IAAarD,OAAO2D,KAAKnB,EAAoBU,GAAGU,OAAM,SAASrT,GAAO,OAAOiS,EAAoBU,EAAE3S,GAAK6S,EAASM,GAAK,IAChKN,EAASzB,OAAO+B,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbR,EAAStB,OAAO6B,IAAK,GACrB,IAAIK,EAAIlU,SACEC,IAANiU,IAAiBV,EAASU,EAC/B,CACD,CACA,OAAOV,CArBP,CAJCE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIP,EAAS/M,OAAQsN,EAAI,GAAKP,EAASO,EAAI,GAAG,GAAKH,EAAUG,IAAKP,EAASO,GAAKP,EAASO,EAAI,GACrGP,EAASO,GAAK,CAACJ,EAAUzT,EAAI0T,EAwB/B,C,eC5BAb,EAAoBsB,EAAI,SAASlB,GAChC,IAAImB,EAASnB,GAAUA,EAAOoB,WAC7B,WAAa,OAAOpB,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAJ,EAAoBpP,EAAE2Q,EAAQ,CAAEE,EAAGF,IAC5BA,CACR,C,eCNAvB,EAAoBpP,EAAI,SAASuP,EAASuB,GACzC,IAAI,IAAI3T,KAAO2T,EACX1B,EAAoB2B,EAAED,EAAY3T,KAASiS,EAAoB2B,EAAExB,EAASpS,IAC5EyP,OAAOoE,eAAezB,EAASpS,EAAK,CAAE8T,YAAY,EAAMhK,IAAK6J,EAAW3T,IAG3E,C,eCPAiS,EAAoB8B,EAAI,CAAC,EAGzB9B,EAAoBjP,EAAI,SAASgR,GAChC,OAAO5G,QAAQ6G,IAAIxE,OAAO2D,KAAKnB,EAAoB8B,GAAGG,QAAO,SAASC,EAAUnU,GAE/E,OADAiS,EAAoB8B,EAAE/T,GAAKgU,EAASG,GAC7BA,CACR,GAAG,IACJ,C,eCPAlC,EAAoBmC,EAAI,SAASJ,GAEhC,MAAO,OAAS,CAAC,GAAK,WAAW,IAAM,cAAc,IAAM,aAAa,IAAM,OAAO,IAAM,QAAQ,IAAM,OAAO,IAAM,OAAO,IAAM,gBAAgBA,IAAYA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,KACzY,C,eCHA/B,EAAoBoC,SAAW,SAASL,GAEvC,MAAO,QAAU,CAAC,GAAK,WAAW,IAAM,cAAc,IAAM,aAAa,IAAM,OAAO,IAAM,QAAQ,IAAM,OAAO,IAAM,OAAO,IAAM,gBAAgBA,IAAYA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,MACxW,C,eCJA/B,EAAoBqC,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOvV,MAAQ,IAAIwV,SAAS,cAAb,EAChB,CAAE,MAAOxR,GACR,GAAsB,kBAAXyB,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxBwN,EAAoB2B,EAAI,SAASa,EAAKC,GAAQ,OAAOjF,OAAOkF,UAAUC,eAAepC,KAAKiC,EAAKC,EAAO,C,eCAtG,IAAIG,EAAa,CAAC,EACdC,EAAoB,cAExB7C,EAAoB8C,EAAI,SAAS/K,EAAKgL,EAAMhV,EAAKgU,GAChD,GAAGa,EAAW7K,GAAQ6K,EAAW7K,GAAK8G,KAAKkE,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW7V,IAARW,EAEF,IADA,IAAImV,EAAUrS,SAASsS,qBAAqB,UACpCnC,EAAI,EAAGA,EAAIkC,EAAQxP,OAAQsN,IAAK,CACvC,IAAIoC,EAAIF,EAAQlC,GAChB,GAAGoC,EAAEC,aAAa,QAAUtL,GAAOqL,EAAEC,aAAa,iBAAmBR,EAAoB9U,EAAK,CAAEiV,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,EACbD,EAASnS,SAASyS,cAAc,UAEhCN,EAAOO,QAAU,QACjBP,EAAOtE,QAAU,IACbsB,EAAoBwD,IACvBR,EAAOS,aAAa,QAASzD,EAAoBwD,IAElDR,EAAOS,aAAa,eAAgBZ,EAAoB9U,GAExDiV,EAAOU,IAAM3L,GAEd6K,EAAW7K,GAAO,CAACgL,GACnB,IAAIY,EAAmB,SAASC,EAAMC,GAErCb,EAAOc,QAAUd,EAAOe,OAAS,KACjCC,aAAatF,GACb,IAAIuF,EAAUrB,EAAW7K,GAIzB,UAHO6K,EAAW7K,GAClBiL,EAAOkB,YAAclB,EAAOkB,WAAWC,YAAYnB,GACnDiB,GAAWA,EAAQG,SAAQ,SAASjX,GAAM,OAAOA,EAAG0W,EAAQ,IACzDD,EAAM,OAAOA,EAAKC,EACtB,EACInF,EAAUhC,WAAWiH,EAAiBU,KAAK,UAAMjX,EAAW,CAAEoI,KAAM,UAAWvE,OAAQ+R,IAAW,MACtGA,EAAOc,QAAUH,EAAiBU,KAAK,KAAMrB,EAAOc,SACpDd,EAAOe,OAASJ,EAAiBU,KAAK,KAAMrB,EAAOe,QACnDd,GAAcpS,SAASyT,KAAKC,YAAYvB,EApCkB,CAqC3D,C,eCxCAhD,EAAoBqB,EAAI,SAASlB,GACX,qBAAXqE,QAA0BA,OAAOC,aAC1CjH,OAAOoE,eAAezB,EAASqE,OAAOC,YAAa,CAAEpF,MAAO,WAE7D7B,OAAOoE,eAAezB,EAAS,aAAc,CAAEd,OAAO,GACvD,C,eCNAW,EAAoB0E,IAAM,SAAStE,GAGlC,OAFAA,EAAOuE,MAAQ,GACVvE,EAAOwE,WAAUxE,EAAOwE,SAAW,IACjCxE,CACR,C,eCJAJ,EAAoB6E,EAAI,O,eCAxB,GAAwB,qBAAbhU,SAAX,CACA,IAAIiU,EAAmB,SAAS/C,EAASgD,EAAUC,EAAQ5J,EAASC,GACnE,IAAI4J,EAAUpU,SAASyS,cAAc,QAErC2B,EAAQC,IAAM,aACdD,EAAQzP,KAAO,WACXwK,EAAoBwD,KACvByB,EAAQE,MAAQnF,EAAoBwD,IAErC,IAAI4B,EAAiB,SAASvB,GAG7B,GADAoB,EAAQnB,QAAUmB,EAAQlB,OAAS,KAChB,SAAfF,EAAMrO,KACT4F,QACM,CACN,IAAIiK,EAAYxB,GAASA,EAAMrO,KAC3B8P,EAAWzB,GAASA,EAAM5S,QAAU4S,EAAM5S,OAAOsU,MAAQR,EACzDS,EAAM,IAAI1Y,MAAM,qBAAuBiV,EAAU,cAAgBsD,EAAY,KAAOC,EAAW,KACnGE,EAAIxY,KAAO,iBACXwY,EAAI9Y,KAAO,wBACX8Y,EAAIhQ,KAAO6P,EACXG,EAAIC,QAAUH,EACVL,EAAQf,YAAYe,EAAQf,WAAWC,YAAYc,GACvD5J,EAAOmK,EACR,CACD,EAUA,OATAP,EAAQnB,QAAUmB,EAAQlB,OAASqB,EACnCH,EAAQM,KAAOR,EAGXC,EACHA,EAAOd,WAAWwB,aAAaT,EAASD,EAAOW,aAE/C9U,SAASyT,KAAKC,YAAYU,GAEpBA,CACR,EACIW,EAAiB,SAASL,EAAMR,GAEnC,IADA,IAAIc,EAAmBhV,SAASsS,qBAAqB,QAC7CnC,EAAI,EAAGA,EAAI6E,EAAiBnS,OAAQsN,IAAK,CAChD,IAAI8E,EAAMD,EAAiB7E,GACvB+E,EAAWD,EAAIzC,aAAa,cAAgByC,EAAIzC,aAAa,QACjE,GAAe,eAAZyC,EAAIZ,MAAyBa,IAAaR,GAAQQ,IAAahB,GAAW,OAAOe,CACrF,CACA,IAAIE,EAAoBnV,SAASsS,qBAAqB,SACtD,IAAQnC,EAAI,EAAGA,EAAIgF,EAAkBtS,OAAQsN,IAAK,CAC7C8E,EAAME,EAAkBhF,GACxB+E,EAAWD,EAAIzC,aAAa,aAChC,GAAG0C,IAAaR,GAAQQ,IAAahB,EAAU,OAAOe,CACvD,CACD,EACIG,EAAiB,SAASlE,GAC7B,OAAO,IAAI5G,SAAQ,SAASC,EAASC,GACpC,IAAIkK,EAAOvF,EAAoBoC,SAASL,GACpCgD,EAAW/E,EAAoB6E,EAAIU,EACvC,GAAGK,EAAeL,EAAMR,GAAW,OAAO3J,IAC1C0J,EAAiB/C,EAASgD,EAAU,KAAM3J,EAASC,EACpD,GACD,EAEI6K,EAAqB,CACxB,IAAK,GAGNlG,EAAoB8B,EAAEqE,QAAU,SAASpE,EAASG,GACjD,IAAIkE,EAAY,CAAC,GAAK,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,GAC3FF,EAAmBnE,GAAUG,EAASrD,KAAKqH,EAAmBnE,IACzB,IAAhCmE,EAAmBnE,IAAkBqE,EAAUrE,IACtDG,EAASrD,KAAKqH,EAAmBnE,GAAWkE,EAAelE,GAAS9L,MAAK,WACxEiQ,EAAmBnE,GAAW,CAC/B,IAAG,SAAShR,GAEX,aADOmV,EAAmBnE,GACpBhR,CACP,IAEF,CA3E2C,C,eCA3CiP,EAAoBqG,EAAIxV,SAASyV,SAAWC,KAAK/R,SAAS+Q,KAK1D,IAAIiB,EAAkB,CACrB,IAAK,GAGNxG,EAAoB8B,EAAEZ,EAAI,SAASa,EAASG,GAE1C,IAAIuE,EAAqBzG,EAAoB2B,EAAE6E,EAAiBzE,GAAWyE,EAAgBzE,QAAW3U,EACtG,GAA0B,IAAvBqZ,EAGF,GAAGA,EACFvE,EAASrD,KAAK4H,EAAmB,QAC3B,CAGL,IAAIxK,EAAU,IAAId,SAAQ,SAASC,EAASC,GAAUoL,EAAqBD,EAAgBzE,GAAW,CAAC3G,EAASC,EAAS,IACzH6G,EAASrD,KAAK4H,EAAmB,GAAKxK,GAGtC,IAAIlE,EAAMiI,EAAoB6E,EAAI7E,EAAoBmC,EAAEJ,GAEpDzK,EAAQ,IAAIxK,MACZ4Z,EAAe,SAAS7C,GAC3B,GAAG7D,EAAoB2B,EAAE6E,EAAiBzE,KACzC0E,EAAqBD,EAAgBzE,GACX,IAAvB0E,IAA0BD,EAAgBzE,QAAW3U,GACrDqZ,GAAoB,CACtB,IAAIpB,EAAYxB,IAAyB,SAAfA,EAAMrO,KAAkB,UAAYqO,EAAMrO,MAChEmR,EAAU9C,GAASA,EAAM5S,QAAU4S,EAAM5S,OAAOyS,IACpDpM,EAAM7K,QAAU,iBAAmBsV,EAAU,cAAgBsD,EAAY,KAAOsB,EAAU,IAC1FrP,EAAMtK,KAAO,iBACbsK,EAAM9B,KAAO6P,EACb/N,EAAMmO,QAAUkB,EAChBF,EAAmB,GAAGnP,EACvB,CAEF,EACA0I,EAAoB8C,EAAE/K,EAAK2O,EAAc,SAAW3E,EAASA,EAE/D,CAEH,EAUA/B,EAAoBU,EAAEQ,EAAI,SAASa,GAAW,OAAoC,IAA7ByE,EAAgBzE,EAAgB,EAGrF,IAAI6E,EAAuB,SAASC,EAA4Bla,GAC/D,IAKIsT,EAAU8B,EALVnB,EAAWjU,EAAK,GAChBma,EAAcna,EAAK,GACnBoa,EAAUpa,EAAK,GAGIqU,EAAI,EAC3B,GAAGJ,EAASoG,MAAK,SAASjI,GAAM,OAA+B,IAAxByH,EAAgBzH,EAAW,IAAI,CACrE,IAAIkB,KAAY6G,EACZ9G,EAAoB2B,EAAEmF,EAAa7G,KACrCD,EAAoBQ,EAAEP,GAAY6G,EAAY7G,IAGhD,GAAG8G,EAAS,IAAIpG,EAASoG,EAAQ/G,EAClC,CAEA,IADG6G,GAA4BA,EAA2Bla,GACrDqU,EAAIJ,EAASlN,OAAQsN,IACzBe,EAAUnB,EAASI,GAChBhB,EAAoB2B,EAAE6E,EAAiBzE,IAAYyE,EAAgBzE,IACrEyE,EAAgBzE,GAAS,KAE1ByE,EAAgBzE,GAAW,EAE5B,OAAO/B,EAAoBU,EAAEC,EAC9B,EAEIsG,EAAqBV,KAAK,0BAA4BA,KAAK,2BAA6B,GAC5FU,EAAmB7C,QAAQwC,EAAqBvC,KAAK,KAAM,IAC3D4C,EAAmBpI,KAAO+H,EAAqBvC,KAAK,KAAM4C,EAAmBpI,KAAKwF,KAAK4C,G,ICpFvF,IAAIC,EAAsBlH,EAAoBU,OAAEtT,EAAW,CAAC,MAAM,WAAa,OAAO4S,EAAoB,KAAO,IACjHkH,EAAsBlH,EAAoBU,EAAEwG,E","sources":["webpack://signatures/./src/errors/apiError.js","webpack://signatures/./src/errors/authError.js","webpack://signatures/./src/errors/customError.js","webpack://signatures/./src/App.vue","webpack://signatures/./src/components/AppHeaderBar.vue","webpack://signatures/src/components/AppHeaderBar.vue","webpack://signatures/./src/components/AppHeaderBar.vue?d7cb","webpack://signatures/./src/components/AppHeaderBar.vue?c8dc","webpack://signatures/src/App.vue","webpack://signatures/./src/App.vue?b495","webpack://signatures/./src/App.vue?0e40","webpack://signatures/./src/router/routes.js","webpack://signatures/./src/router/index.js","webpack://signatures/./src/plugins/vuetify.js","webpack://signatures/./src/plugins/formattersMixin.js","webpack://signatures/./src/plugins/systemMixin.js","webpack://signatures/./src/main.js","webpack://signatures/./src/services/api.service.js","webpack://signatures/./src/models/microsoftUser.js","webpack://signatures/./src/services/auth.service.js","webpack://signatures/./src/store/modules/microsoftAuth.store.js","webpack://signatures/./src/models/authUser.js","webpack://signatures/./src/store/modules/signaturesApiAuth.store.js","webpack://signatures/./src/store/index.js","webpack://signatures/webpack/bootstrap","webpack://signatures/webpack/runtime/chunk loaded","webpack://signatures/webpack/runtime/compat get default export","webpack://signatures/webpack/runtime/define property getters","webpack://signatures/webpack/runtime/ensure chunk","webpack://signatures/webpack/runtime/get javascript chunk filename","webpack://signatures/webpack/runtime/get mini-css chunk filename","webpack://signatures/webpack/runtime/global","webpack://signatures/webpack/runtime/hasOwnProperty shorthand","webpack://signatures/webpack/runtime/load script","webpack://signatures/webpack/runtime/make namespace object","webpack://signatures/webpack/runtime/node module decorator","webpack://signatures/webpack/runtime/publicPath","webpack://signatures/webpack/runtime/css loading","webpack://signatures/webpack/runtime/jsonp chunk loading","webpack://signatures/webpack/startup"],"sourcesContent":["import customError from \"@/errors/customError\";\r\n\r\n\r\nclass apiError extends customError {\r\n\tconstructor(message, code=0, data={}) {\r\n\t\t// Pass remaining arguments (including vendor specific ones) to parent constructor\r\n\t\tsuper( message, code, data )\r\n\t}\r\n}\r\nexport default apiError;","import customError from \"@/errors/customError\";\r\n\r\n\r\nclass authError extends customError {\r\n\r\n\tconstructor(message, code=0, data={}) {\r\n\t\t// Pass remaining arguments (including vendor specific ones) to parent constructor\r\n\t\tsuper( message, code, data )\r\n\t}\r\n\r\n}\r\nexport default authError;","class customError extends Error {\r\n\tconstructor(message, code=0, data={}) {\r\n\t\t// Pass remaining arguments (including vendor specific ones) to parent constructor\r\n\t\tsuper(message)\r\n\t\tthis.name = this.constructor.name;\r\n\r\n\t\t// Maintains proper stack trace for where our error was thrown (only available on V8)\r\n\t\tif (Error.captureStackTrace) {\r\n\t\t\tError.captureStackTrace(this, customError)\r\n\t\t}\r\n\r\n\t\t// Custom debugging information\r\n\t\tthis.message = message\r\n\t\tthis.code = code\r\n\t\tthis.data = data\r\n\t}\r\n}\r\nexport default customError;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('app-header-bar',{scopedSlots:_vm._u([{key:\"navigation\",fn:function(){return undefined},proxy:true}])}),_c('v-snackbar-queue',{attrs:{\"items\":_vm.$store.getters.snackbars,\"timeout\":_vm.$store.getters.snackbarTimeout,\"center\":\"\",\"close-button-icon\":\"mdi-close\",\"top\":\"\"},on:{\"remove\":function($event){return _vm.$store.dispatch('removeSnackbar', $event)}}}),_c('v-main',[_c('router-view')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app-bar',{attrs:{\"app\":\"\",\"dark\":\"\"}},[_c('v-toolbar-title',{staticClass:\"mr-4\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.$router.push({ name:'root' })}}},[_vm._v(\"Signatures App\")]),(_vm.isSignedIn)?_c('v-btn',{attrs:{\"to\":{name:'root'},\"text\":\"\",\"exact\":\"\"}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Dashboard\")])]):_vm._e(),(_vm.isSignedIn && _vm.$store.state.signaturesApiAuth.roles.includes('User.Read'))?_c('v-btn',{attrs:{\"to\":{name:'user.list'},\"text\":\"\",\"exact\":\"\"}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Users\")])]):_vm._e(),_vm._t(\"navigation\"),_c('v-spacer'),_c('v-divider',{staticClass:\"ml-2 mr-4\",attrs:{\"vertical\":\"\"}}),(_vm.isSignedIn)?_c('div',{staticClass:\"mr-2 text-caption hidden-sm-and-down\"},[_vm._v(\" \"+_vm._s(_vm.$store.state.microsoftAuth.name)+\" \")]):_c('div',{staticClass:\"mr-2 text-caption hidden-sm-and-down\"},[_vm._v(\" Garrett County Government \")]),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}])},[_c('v-list',[(_vm.isSignedIn)?_c('v-subheader',[_vm._v(_vm._s(_vm.$store.state.microsoftAuth.name))]):_vm._e(),(_vm.isSignedIn)?_c('v-list-item',{attrs:{\"to\":{'name':'auth.signOut'}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Sign Out\")])],1),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-logout\")])],1)],1):_vm._e(),(_vm.isSignedIn)?_c('v-list-item',{attrs:{\"href\":\"https://apps.garrettcounty.org/portal\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"App Portal\")])],1),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-cube\")])],1)],1):_vm._e(),(_vm.isSignedIn)?_c('v-divider'):_vm._e(),_c('v-list-item',{staticClass:\"no-hover-active\"},[_c('v-list-item-content',{staticClass:\"text-caption\"},[_vm._v(\" Signatures App: \"+_vm._s(_vm.appVersion)),_c('br'),_vm._v(\" Signatures API: \"+_vm._s(_vm.apiVersion)),_c('br'),_vm._v(\" ©\"+_vm._s(_vm.year)+\" Garrett County Government \")])],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppHeaderBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppHeaderBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppHeaderBar.vue?vue&type=template&id=bc46585e&scoped=true\"\nimport script from \"./AppHeaderBar.vue?vue&type=script&lang=js\"\nexport * from \"./AppHeaderBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc46585e\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1ab72f3e\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=1ab72f3e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nconst routes = [\n\t{\n\t\tpath: '/auth/sign-out',\n\t\tname: 'auth.signOut',\n\t\tcomponent: () => import(/* webpackChunkName: \"auth.signOut\" */ '../views/auth/signOut.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/auth/sign-in',\n\t\tname: 'auth.signIn',\n\t\tcomponent: () => import(/* webpackChunkName: \"auth.signIn\" */ '../views/auth/signIn.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/auth/silent-sign-in',\n\t\tname: 'auth.silentSignIn',\n\t\tcomponent: () => import(/* webpackChunkName: \"auth.signIn\" */ '../views/auth/silentSignIn.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/auth/error',\n\t\tname: 'auth.error',\n\t\tcomponent: () => import(/* webpackChunkName: \"auth.error\" */ '../views/auth/error.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tcomponent: () => import(/* webpackChunkName: \"root\" */ '../views/Home.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: true,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/sign/:documentId',\n\t\tname: 'sign',\n\t\tcomponent: () => import(/* webpackChunkName: \"sign\" */ '../views/sign/sign.vue'),\n\t\tprops: route => ({ documentId:route.params.documentId, token: route.query.token }),\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/terminal/:documentId',\n\t\tname: 'terminal',\n\t\tcomponent: () => import(/* webpackChunkName: \"sign\" */ '../views/sign/terminal.vue'),\n\t\tprops: route => ({ documentId:route.params.documentId, token: route.query.token }),\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: false\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/document/:documentId',\n\t\tname: 'document',\n\t\tcomponent: () => import(/* webpackChunkName: \"document\" */ '../views/document/document.vue'),\n\t\tprops: route => ({ documentId:route.params.documentId }),\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: true,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/user',\n\t\tname: 'user.list',\n\t\tcomponent: () => import(/* webpackChunkName: \"user\" */ '../views/user/user.list.vue'),\n\t\tprops: true,\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: true,\n\t\t\t\treadRoles: [ 'User.Read' ],\n\t\t\t\twriteRoles: [ 'User.Read', 'User.Write' ]\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '/user/:userId',\n\t\tname: 'user',\n\t\tcomponent: () => import(/* webpackChunkName: \"user\" */ '../views/user/user.vue'),\n\t\tprops: route => ({ userId:route.params.userId }),\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: true,\n\t\t\t\treadRoles: [ 'User.Read' ],\n\t\t\t\twriteRoles: [ 'User.Read', 'User.Write' ]\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpath: '*',\n\t\tname: 'error',\n\t\tcomponent: () => import(/* webpackChunkName: \"error\" */ '../views/error/errorPage.vue'),\n\t\tmeta: {\n\t\t\tauth: {\n\t\t\t\trequired: true,\n\t\t\t\treadRoles: [],\n\t\t\t\twriteRoles: []\n\t\t\t}\n\t\t}\n\t}\n]\nexport default routes;\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport store from '@/store/index.js'\nimport routes from \"@/router/routes\";\n\nVue.use(VueRouter)\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nrouter.beforeEach( ( to, from, next ) => {\n\n\t//AUTHENTICATION GUARD\n\tif( to.meta.auth.required && !store.getters.isSignedIn ) {\n\t\tsessionStorage.setItem('pre-auth-request-url', to.fullPath)\n\t\tnext( '/auth/sign-in' );\n\t}\n\telse {\n\t\tnext();\n\t}\n} );\n\nexport default router\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib/framework';\r\n\r\nVue.use(Vuetify);\r\n\r\n// make vuetify dialogs movable\r\n(function () {\r\n\tconst d = {};\r\n\tdocument.addEventListener(\"mousedown\", e => {\r\n\t\tconst closestDialog = e.target.closest(\".v-dialog.v-dialog--active\");\r\n\t\tif (e.button === 0 && closestDialog != null && e.target.classList.contains(\"v-card__title\")) { // element which can be used to move element\r\n\t\t\td.el = closestDialog; // element which should be moved\r\n\t\t\td.mouseStartX = e.clientX;\r\n\t\t\td.mouseStartY = e.clientY;\r\n\t\t\td.elStartX = d.el.getBoundingClientRect().left;\r\n\t\t\td.elStartY = d.el.getBoundingClientRect().top;\r\n\t\t\td.el.style.position = \"fixed\";\r\n\t\t\td.el.style.margin = 0;\r\n\t\t\td.oldTransition = d.el.style.transition;\r\n\t\t\td.el.style.transition = \"none\"\r\n\t\t}\r\n\t});\r\n\tdocument.addEventListener(\"mousemove\", e => {\r\n\t\tif (d.el === undefined) return;\r\n\t\td.el.style.left = Math.min(\r\n\t\t\tMath.max(d.elStartX + e.clientX - d.mouseStartX, 0),\r\n\t\t\twindow.innerWidth - d.el.getBoundingClientRect().width\r\n\t\t) + \"px\";\r\n\t\td.el.style.top = Math.min(\r\n\t\t\tMath.max(d.elStartY + e.clientY - d.mouseStartY, 0),\r\n\t\t\twindow.innerHeight - d.el.getBoundingClientRect().height\r\n\t\t) + \"px\";\r\n\t});\r\n\tdocument.addEventListener(\"mouseup\", () => {\r\n\t\tif (d.el === undefined) return;\r\n\t\td.el.style.transition = d.oldTransition;\r\n\t\td.el = undefined\r\n\t});\r\n\tsetInterval(() => { // prevent out of bounds\r\n\t\tconst dialog = document.querySelector(\".v-dialog.v-dialog--active\");\r\n\t\tif (dialog === null) return;\r\n\t\tdialog.style.left = Math.min(parseInt(dialog.style.left), window.innerWidth - dialog.getBoundingClientRect().width) + \"px\";\r\n\t\tdialog.style.top = Math.min(parseInt(dialog.style.top), window.innerHeight - dialog.getBoundingClientRect().height) + \"px\";\r\n\t}, 100);\r\n})();\r\n//end make vuetify dialogs movable\r\n\r\nexport default new Vuetify({\r\n});\r\n","export default {\r\n\tfilters: {\r\n\r\n\t\tformatDateTime: function( dateTimeString, options = {\r\n\t\t\tmonth: 'long',\r\n\t\t\tday: 'numeric',\r\n\t\t\tyear: 'numeric',\r\n\t\t\thour: 'numeric',\r\n\t\t\tminute: '2-digit'\r\n\t\t} ) {\r\n\t\t\tif(typeof(dateTimeString)!='string') {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(dateTimeString.substr( dateTimeString.length-1, 1 )==='Z') {\r\n\t\t\t\tdateTimeString = dateTimeString.substr( 0, dateTimeString.length-1 )+'-00:00';\r\n\t\t\t}\r\n\r\n\t\t\tlet dtObj = new Date( dateTimeString );\r\n\r\n\t\t\treturn dtObj.toLocaleString( 'default', options );\r\n\t\t},\r\n\r\n\t\tformatDate: function( dateTimeString, options = {\r\n\t\t\tmonth: 'long',\r\n\t\t\tday: 'numeric',\r\n\t\t\tyear: 'numeric'\r\n\t\t} ) {\r\n\t\t\tlet dtObj = new Date( dateTimeString );\r\n\r\n\t\t\treturn dtObj.toLocaleString( 'default', options );\r\n\t\t},\r\n\r\n\t\tformatCurrency: function( val, minimumFractionDigits = 2 ) {\r\n\r\n\t\t\tlet formatter = new Intl.NumberFormat( 'en-US', {\r\n\t\t\t\tstyle: 'currency',\r\n\t\t\t\tcurrency: 'USD',\r\n\t\t\t\tminimumFractionDigits: minimumFractionDigits\r\n\t\t\t} );\r\n\t\t\treturn formatter.format( val );\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n","export default {\r\n\tmethods:{\r\n\t\treload:function() {\r\n\t\t\twindow.location.reload();\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport vuetify from './plugins/vuetify'\r\n\r\nimport VuetifySnackbarQueue from 'vuetify-snackbar-queue'\r\nimport VueSignaturePad from 'vue-signature-pad';\r\n\r\nimport formattersMixin from './plugins/formattersMixin'\r\nimport systemMixin from \"@/plugins/systemMixin\";\r\n\r\nimport './styles/extensions.scss';\r\nimport VueMeta from \"vue-meta\";\r\n\r\nVue.config.productionTip = false\r\n\r\n//application level plugins and mixins\r\nVue.mixin( systemMixin );\r\nVue.mixin( formattersMixin );\r\n\r\n//third party plugins\r\nVue.use(VueMeta)\r\nVue.use( VuetifySnackbarQueue )\r\nVue.use(VueSignaturePad);\r\n\r\nnew Vue( {\r\n\trouter,\r\n\tstore,\r\n\tvuetify,\r\n\tbeforeCreate: function() {\r\n\t\t// Subscribe to store updates\r\n\t\tstore.subscribe( ( mutation, state ) => {\r\n\t\t\tconsole.log(mutation.type);\r\n\t\t\t// Store parts of the state\r\n\t\t\tif( mutation.type.startsWith( 'microsoftAuth' ) ) {\r\n\t\t\t\tlocalStorage.setItem( 'store.microsoftAuth', JSON.stringify( state.microsoftAuth ) );\r\n\t\t\t}\r\n\t\t\tif( mutation.type.startsWith( 'signaturesApi' ) ) {\r\n\t\t\t\tlocalStorage.setItem( 'store.signaturesApi', JSON.stringify( state.signaturesApiAuth ) );\r\n\t\t\t}\r\n\t\t\tif( mutation.type.startsWith( 'setShowAdvanced' ) ) {\r\n\t\t\t\tlocalStorage.setItem( 'store.showAdvanced', state.showAdvanced );\r\n\t\t\t}\r\n\t\t} );\r\n\t\tstore.dispatch( 'initialize' ).then( function() {\r\n\t\t} );\r\n\r\n\t},\r\n\trender: h => h( App )\r\n} ).$mount( '#app' )","import axios from \"axios\";\r\nimport store from '../store/index.js'\r\nimport authError from \"@/errors/authError\";\r\nimport apiError from \"@/errors/apiError\";\r\n\r\n\r\nconst apiService = ( authorization=true ) => {\r\n\r\n\tlet baseUrl = process.env.VUE_APP_SIGNATURES_API_URL;\r\n\tlet appendUrl = process.env.VUE_APP_SIGNATURES_API_URL_PARAMS;\r\n\r\n\r\n\r\n\tconst defaultOptions = {};\r\n\r\n\tconst urlBuild = function( urlPath ) {\r\n\t\tif(urlPath.substr(0,4)==='http') {\r\n\t\t\treturn urlPath;\r\n\t\t}\r\n\r\n\t\tlet cleanUrlPath = urlPath.replace( /^\\/+|\\/+$/g, '' );\r\n\t\tlet append = '';\r\n\t\tif( appendUrl!==null && appendUrl!=='' ) {\r\n\t\t\tappend = '?';\r\n\t\t\tif( cleanUrlPath.indexOf( '?' ) > -1 ) {\r\n\t\t\t\tappend = '&';\r\n\t\t\t}\r\n\t\t\tappend += appendUrl;\r\n\t\t}\r\n\r\n\t\treturn baseUrl + cleanUrlPath + append;\r\n\t};\r\n\r\n\t/**\r\n\t *\r\n\t * @param options\r\n\t * @returns {Promise<{headers: {Authorization: string}}>}\r\n\t * @throws {authError}\r\n\t */\r\n\tconst buildAxiosConfig = async function( options = {} ) {\r\n\t\tlet config = {\r\n\t\t\t...defaultOptions,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\tif(typeof(config.headers)==='undefined'){\r\n\t\t\tconfig.headers = {};\r\n\t\t}\r\n\r\n\t\tif(authorization) {\r\n\t\t\tlet signaturesApiAccessToken = await store.dispatch( 'signaturesApiAuth/getAccessToken' );\r\n\t\t\tconfig.headers[ 'Authorization' ] = 'Bearer ' + signaturesApiAccessToken;\r\n\t\t}\r\n\r\n\t\treturn config;\r\n\t}\r\n\r\n\t/**\r\n\t * Standardize error reporting up the stack to our apiError\r\n\t * @param {Error} e\r\n\t * @throws {apiError}\r\n\t */\r\n\tconst apiErrorCatch = function( e ) {\r\n\t\t//api returned a structured error\r\n\t\tif( e.response && e.response.data && e.response.data.error ) {\r\n\t\t\tthrow new apiError( e.response.data.message, e.response.status, e.response.data.data );\r\n\t\t}\r\n\t\t//axios error - presumably a network error\r\n\t\telse {\r\n\t\t\tthrow new apiError( e.message, 0, e.stack );\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @returns {Promise}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tauthenticate: async function() {\r\n\r\n\t\t\t//get the microsoft token that we need to exchange\r\n\t\t\tlet microsoftAccessToken = await store.dispatch( 'microsoftAuth/getAccessToken' );\r\n\r\n\t\t\t//build the axios config\r\n\t\t\tlet config = {\r\n\t\t\t\t...defaultOptions,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Authorization': 'Bearer ' + microsoftAccessToken\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t//send the authentication request to the api\r\n\t\t\ttry {\r\n\t\t\t\tlet signaturesApiTokenResponse = await axios.get( urlBuild( 'auth/microsoft' ), config );\r\n\t\t\t\treturn signaturesApiTokenResponse.data.accessToken;\r\n\t\t\t}\r\n\t\t\tcatch( e ) {\r\n\t\t\t\t//api returned a structured error\r\n\t\t\t\tif( e.response ) {\r\n\t\t\t\t\tthrow new authError( e.response.data.message, e.response.status, e.response.data.data );\r\n\t\t\t\t}\r\n\t\t\t\t//axios error - presumably a network error\r\n\t\t\t\telse {\r\n\t\t\t\t\tthrow new authError( e.message );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tget: async function( url, options = {} ) {\r\n\t\t\tlet config = await buildAxiosConfig( options );\r\n\r\n\t\t\treturn axios.get( urlBuild( url ), config ).catch( apiErrorCatch );\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} data\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tpost: async function( url, data, options = {} ) {\r\n\t\t\tlet config = await buildAxiosConfig( options );\r\n\r\n\t\t\treturn axios.post( urlBuild( url ), data, config ).catch( apiErrorCatch );\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} data\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tput: async function( url, data, options = {} ) {\r\n\t\t\tlet config = await buildAxiosConfig( options );\r\n\r\n\t\t\treturn axios.put( urlBuild( url ), data, config ).catch( apiErrorCatch );\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} data\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tpatch: async function( url, data, options = {} ) {\r\n\t\t\tlet config = await buildAxiosConfig( options );\r\n\r\n\t\t\treturn axios.patch( urlBuild( url ), data, config ).catch( apiErrorCatch );\r\n\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tdelete: async function( url, options = {} ) {\r\n\t\t\tlet config = await buildAxiosConfig( options );\r\n\r\n\t\t\treturn axios.delete( urlBuild( url ), config ).catch( apiErrorCatch );\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tdownload: async function( url ) {\r\n\t\t\tlet fileAccessToken = '';\r\n\t\t\tif(authorization) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tlet fileTokenApiResponse = await this.get( urlBuild( 'auth/fileToken' ) );\r\n\t\t\t\t\tfileAccessToken = fileTokenApiResponse.data.accessToken;\r\n\t\t\t\t}\r\n\t\t\t\tcatch(e) {\r\n\t\t\t\t\tthrow new authError( 'The system failed to generate a file token. Try again.' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet downloadUrl = urlBuild(url);\r\n\t\t\tif(authorization) {\r\n\t\t\t\tlet append = '?';\r\n\t\t\t\tif( downloadUrl.indexOf( '?' ) > -1 ) {\r\n\t\t\t\t\tappend = '&';\r\n\t\t\t\t}\r\n\t\t\t\tdownloadUrl += append + 'fileAccessToken=' + fileAccessToken;\r\n\t\t\t}\r\n\r\n\t\t\twindow.open( downloadUrl)\r\n\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param {string} url\r\n\t\t * @param {object} options\r\n\t\t * @returns {Promise>}\r\n\t\t * @throws {authError}\r\n\t\t */\r\n\t\tdownloadUrl: async function( url ) {\r\n\t\t\tlet fileAccessToken = '';\r\n\t\t\tif(authorization) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tlet fileTokenApiResponse = await this.get( urlBuild( 'auth/fileToken' ) );\r\n\t\t\t\t\tfileAccessToken = fileTokenApiResponse.data.accessToken;\r\n\t\t\t\t}\r\n\t\t\t\tcatch(e) {\r\n\t\t\t\t\tthrow new authError( 'The system failed to generate a file token. Try again.' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet downloadUrl = urlBuild(url);\r\n\r\n\t\t\tif(authorization) {\r\n\t\t\t\tlet append = '?';\r\n\t\t\t\tif( downloadUrl.indexOf( '?' ) > -1 ) {\r\n\t\t\t\t\tappend = '&';\r\n\t\t\t\t}\r\n\t\t\t\tdownloadUrl += append + 'fileAccessToken=' + fileAccessToken;\r\n\t\t\t}\r\n\r\n\t\t\treturn downloadUrl;\r\n\r\n\t\t},\r\n\r\n\t\tcreateDocument:async function( file, templateId ) {\r\n\t\t\tlet config = await buildAxiosConfig( {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\t//add files to form data\r\n\t\t\tlet formData = new FormData();\r\n\t\t\tformData.append('file', file);\r\n\r\n\t\t\tlet url = 'document';\r\n\r\n\t\t\tif(typeof templateId == 'string') {\r\n\t\t\t\turl += '?templateId='+templateId;\r\n\t\t\t}\r\n\r\n\t\t\treturn axios.post( urlBuild( url ), formData, config ).catch( apiErrorCatch );\r\n\r\n\t\t}\r\n\r\n\t};\r\n};\r\n\r\nexport default apiService;","export default class microsoftUser {\r\n\r\n\taccessToken = '';\r\n\tusername = '';\r\n\tname = '';\r\n\tisSignedIn = false;\r\n\r\n\tconstructor(accessToken='', username='', name='', isSignedIn=false) {\r\n\t\tthis.accessToken = accessToken;\r\n\t\tthis.username = username;\r\n\t\tthis.name = name;\r\n\t\tthis.isSignedIn = isSignedIn;\r\n\t}\r\n\r\n}","import * as msal from \"@azure/msal-browser\";\nimport { PublicClientApplication } from \"@azure/msal-browser\";\nimport microsoftUser from \"@/models/microsoftUser\";\nimport authError from \"@/errors/authError\";\n\n\nlet baseUrl = process.env.VUE_APP_SIGNATURES_APP_URL;\n\nlet loginApiScopes = [\"email\",\n\t\"offline_access\",\n\t\"openid\",\n\t\"profile\",\n\t\"https://signatures.garrettcounty.org/api/All\"];\n\nconst authService = {\n\n\tmsalConfig: {\n\t\tauth: {\n\t\t\tclientId: process.env.VUE_APP_MICROSOFT_CLIENT_ID,\n\t\t\tauthority: process.env.VUE_APP_MICROSOFT_AUTHORITY,\n\t\t\tredirectUri: baseUrl + process.env.VUE_APP_LOGIN_REDIRECT_PATH,\n\t\t\tpostLogoutRedirectUri: baseUrl + process.env.VUE_APP_POST_LOGOUT_PATH\n\t\t},\n\t\tcache: {\n\t\t\tclaimsBasedCachingEnabled: true,\n\t\t\tcacheLocation: \"localStorage\", // This configures where your cache will be stored\n\t\t\tstoreAuthStateInCookie: false // Set this to \"true\" if you are having issues on IE11 or Edge\n\t\t},\n\t\tsystem: {\n\t\t\tloggerOptions: {\n\t\t\t\tloggerCallback: ( level, message, containsPii ) => {\n\t\t\t\t\tif( containsPii ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tswitch( level ) {\n\t\t\t\t\t\tcase msal.LogLevel.Error:\n\t\t\t\t\t\t\tconsole.error( message );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase msal.LogLevel.Info:\n\t\t\t\t\t\t\tconsole.info( message );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase msal.LogLevel.Verbose:\n\t\t\t\t\t\t\tconsole.debug( message );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase msal.LogLevel.Warning:\n\t\t\t\t\t\t\tconsole.warn( message );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tloginRequest: {\n\t\tscopes: loginApiScopes\n\t},\n\n\tapiRequest: {\n\t\tscopes: loginApiScopes\n\t},\n\n\tsilentApiRequest: {\n\t\tscopes: loginApiScopes,\n\t\tredirectUri:baseUrl + process.env.VUE_APP_LOGIN_SILENT_REDIRECT_PATH\n\t},\n\n\n\tmsalInstance: null,\n\n\tisSignedIn: false,\n\n\tusername: '',\n\n\tconstructor: async function() {\n\t\tthis.msalInstance = new PublicClientApplication( this.msalConfig )\n\t\tawait this.msalInstance.initialize();\n\t},\n\n\t/**\n\t * @returns {Promise}\n\t * @throws {authError}\n\t */\n\tpageLoad() {\n\t\tlet vm = this;\n\n\t\tlet user = new microsoftUser();\n\n\t\treturn new Promise( function( resolve, reject ) {\n\t\t\tvm.msalInstance.handleRedirectPromise().then( ( response ) => {\n\t\t\t\tif( response !== null ) {\n\t\t\t\t\tuser = new microsoftUser( response.accessToken, response.account.username, response.account.name, true );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currentAccounts = vm.msalInstance.getAllAccounts();\n\n\t\t\t\t\tif( currentAccounts.length === 0 ) {\n\t\t\t\t\t\t// not logged in\n\t\t\t\t\t}\n\t\t\t\t\telse if( currentAccounts.length > 1 ) {\n\t\t\t\t\t\t// Add your account choosing logic here\n\t\t\t\t\t\tconsole.warn( \"Multiple accounts detected.\" );\n\t\t\t\t\t}\n\t\t\t\t\telse if( currentAccounts.length === 1 ) {\n\t\t\t\t\t\tuser = new microsoftUser( currentAccounts[ 0 ].accessToken, currentAccounts[ 0 ].username, currentAccounts[ 0 ].name, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresolve( user );\n\t\t\t} ).catch( ( e ) => {\n\t\t\t\treject( new authError( 'Microsoft authentication error: ' + e.message ) );\n\t\t\t} );\n\n\t\t} );\n\t},\n\n\tsignIn() {\n\t\tthis.msalInstance.loginRedirect( this.loginRequest ).then( function() {\n\t\t} );\n\t},\n\n\tsignOut( username ) {\n\t\t/**\n\t\t * You can pass a custom request object below. This will override the initial configuration. For more information, visit:\n\t\t * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/request-response-object.md#request\n\t\t */\n\n\t\t\t// Choose which account to logout from by passing a username.\n\t\tconst logoutRequest = {\n\t\t\t\taccount: this.msalInstance.getAccountByUsername( username )\n\t\t\t};\n\n\t\tthis.msalInstance.logout( logoutRequest ).then( function() {\n\n\t\t} );\n\t},\n\n\t/**\n\t *\n\t * @param username\n\t * @returns {Promise.catch} Resolved to string access token\n\t * @throws {authError}\n\t */\n\tgetAccessToken( username ) {\n\t\tlet vm = this;\n\t\tlet promise = new Promise(function(resolve, reject) {\n\t\t\tconst accountFilter = {\n\t\t\t\tusername: username,\n\t\t\t};\n\t\t\tlet account = vm.msalInstance.getAccount(accountFilter);\n\t\t\tvm.silentApiRequest.account = account;\n\t\t\tvm.msalInstance.acquireTokenSilent(vm.silentApiRequest).then(function(response) {\n\t\t\t\tresolve(response.accessToken)\n\t\t\t}).catch(e => {\n\t\t\t\tconsole.warn(\"silent token acquisition fails. acquiring token using redirect\");\n\t\t\t\tif (e instanceof msal.InteractionRequiredAuthError) {\n\t\t\t\t\t// fallback to interaction when silent call fails\n\t\t\t\t\tvm.apiRequest.account = account;\n\t\t\t\t\tvm.msalInstance.acquireTokenRedirect(vm.apiRequest).then(function() {\n\t\t\t\t\t\t//redirects to the login page\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treject( new authError( 'Microsoft authentication error: '+e.message ) );\n\t\t\t\t}\n\t\t\t});\n\n\t\t});\n\n\t\treturn promise;\n\t}\n\n}\n\nauthService.constructor();\n\nexport { authService }\n","import { authService } from \"@/services/auth.service\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\n//state\r\nconst state = () => ({\r\n\taccessToken: '',\r\n\tusername: '',\r\n\tname: '',\r\n\tisSignedIn: false,\r\n\tfresh: true\r\n})\r\n\r\n//getters\r\nconst getters = {\r\n\taccessToken:function(state) {\r\n\t\treturn state.accessToken;\r\n\t}\r\n}\r\n\r\n// actions\r\nconst actions = {\r\n\tforceFreshStateToFalse:function({commit}) {\r\n\t\tcommit('setFresh', false);\r\n\t},\r\n\r\n\tsignIn:function( ) {\r\n\t\tauthService.signIn();\r\n\t},\r\n\r\n\tsignOut: function({ state, commit }) {\r\n\t\tlet username = state.username;\r\n\t\tauthService.signOut( username );\r\n\t\tsetTimeout(()=>commit('setLoggedOut'), 1500 )\r\n\t},\r\n\r\n\tgetAccessToken:async function({state, commit}) {\r\n\t\tlet getNewToken = false;\r\n\r\n\t\ttry {\r\n\t\t\tlet decodedCurrentAccessToken = jwt_decode(state.accessToken);\r\n\t\t\tif (Date.now() >= (decodedCurrentAccessToken.exp * 1000)) {\r\n\t\t\t\tgetNewToken = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch {\r\n\t\t\tgetNewToken = true;\r\n\t\t}\r\n\r\n\t\tif(getNewToken) {\r\n\t\t\tlet accessToken = await authService.getAccessToken( state.username );\r\n\t\t\tcommit('setAccessToken', accessToken);\r\n\t\t\treturn accessToken;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn state.accessToken;\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t *\r\n\t * @param commit\r\n\t * @param dispatch\r\n\t * @returns {Promise}\r\n\t * @throws {authError}\r\n\t */\r\n\tinitialize:async function({commit, dispatch}) {\r\n\t\tawait commit('setModuleStateFromLocalStorage');\r\n\t\tawait authService.pageLoad().then(function(user){\r\n\t\t\tcommit('setUser', user);\r\n\t\t\t//if the user is signed in and no access token was provided in the response (a page reload, verify the token we have saved is still valid or refresh it if not)\r\n\t\t\tif(user.isSignedIn && !user.accessToken) {\r\n\t\t\t\tdispatch('getAccessToken');\r\n\t\t\t}\r\n\t\t\tcommit('setFresh', true);\r\n\t\t\t//otherwise, the router sends the user to /signin and that vue handles triggering an actual log in.\r\n\t\t});\r\n\t}\r\n}\r\n\r\n// actions\r\nconst mutations = {\r\n\r\n\tsetAccessToken:function(state,accessToken) {\r\n\t\tstate.accessToken = accessToken;\r\n\t},\r\n\r\n\tsetUser: function ( state, user ) {\r\n\t\tstate.isSignedIn = user.isSignedIn;\r\n\t\tstate.accessToken = user.accessToken || state.accessToken;\r\n\t\tstate.username = user.username;\r\n\t\tstate.name = user.name;\r\n\t},\r\n\r\n\r\n\tsetFresh: function ( state, fresh ) {\r\n\t\tstate.fresh = fresh;\r\n\t},\r\n\r\n\tsetLoggedOut: function(state) {\r\n\t\tstate.isSignedIn = false;\r\n\t\tstate.accessToken = '';\r\n\t\tstate.username = '';\r\n\t\tstate.name = '';\r\n\t},\r\n\r\n\tsetModuleStateFromLocalStorage:function(state) {\r\n\t\tif ( localStorage.getItem( 'store.microsoftAuth' ) ) {\r\n\t\t\t// Replace the state object with the stored item\r\n\t\t\tlet data = JSON.parse( localStorage.getItem( 'store.microsoftAuth' ) );\r\n\t\t\tif(data!==null) {\r\n\t\t\t\tdata.fresh = false;\r\n\t\t\t\tObject.assign(state, data)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations\r\n}","export default class authUser {\n\n\tuserId = '';\n\tname = '';\n\temail = '';\n\thasTerminal = false;\n\tterminalType = '';\n\tterminalId = '';\n\troles = [];\n\n\n\tconstructor( authUser ) {\n\t\tthis.userId= authUser.userId || '';\n\t\tthis.name = authUser.name || '';\n\t\tthis.email = authUser.email || '';\n\t\tthis.roles = authUser.roles || [];\n\t\tthis.hasTerminal = authUser.hasTerminal || false;\n\t\tthis.terminalType = authUser.terminalType || '';\n\t\tthis.terminalId = authUser.terminalId || '';\n\t}\n\n}\n","import apiService from \"@/services/api.service\";\nimport jwt_decode from \"jwt-decode\";\nimport authUser from \"@/models/authUser\";\nimport authError from \"@/errors/authError\";\n\n//state\nconst state = () => ({\n\taccessToken: '',\n\troles:[],\n\tuser:{},\n\tisSignedIn: false,\n\tfresh: true,\n\tworking:true\n})\n\n//getters\nconst getters = {\n\n}\n\n// actions\nconst actions = {\n\n\t/**\n\t *\n\t * @param commit\n\t * @param dispatch\n\t * @returns {Promise}\n\t * @throws {authError}\n\t */\n\tinitialize:async function({commit, dispatch}) {\n\t\t//commit( 'ui/authenticating', true, { root: true } );\n\t\tawait commit('setWorking', true);\n\t\tawait commit('setModuleStateFromLocalStorage');\n\t\tawait dispatch('getAccessToken');\n\t\tcommit('setFresh', true);\n\t\tawait commit('setWorking', false);\n\t\t//commit( 'ui/authenticating', false, { root: true } );\n\t},\n\n\t/**\n\t *\n\t * @param state\n\t * @param commit\n\t * @returns {Promise}\n\t * @throws {authError}\n\t */\n\tgetAccessToken:async function({state, commit}) {\n\t\tlet getNewToken = false;\n\n\t\ttry {\n\t\t\tlet decodedCurrentAccessToken = jwt_decode( state.accessToken );\n\t\t\tif (Date.now() >= (decodedCurrentAccessToken.exp * 1000)) {\n\t\t\t\tgetNewToken = true;\n\t\t\t}\n\t\t}\n\t\tcatch(e) {\n\t\t\tgetNewToken = true;\n\t\t}\n\n\t\tif(getNewToken) {\n\t\t\tlet api = apiService();\n\t\t\tlet accessToken = await api.authenticate();\n\t\t\tcommit('setDataFromToken', accessToken);\n\t\t\treturn accessToken;\n\t\t}\n\t\telse {\n\t\t\treturn state.accessToken;\n\t\t}\n\t},\n\n}\n\n// mutations\nconst mutations = {\n\n\tsetDataFromToken:function(state,accessToken) {\n\n\t\ttry {\n\t\t\tlet decodedAccessToken = jwt_decode(accessToken);\n\t\t\tstate.accessToken = accessToken;\n\t\t\tstate.roles = decodedAccessToken.scope;\n\t\t\tstate.user = new authUser( decodedAccessToken.data );\n\t\t\tstate.isSignedIn = true;\n\t\t}\n\t\tcatch(e) {\n\t\t\tconsole.log(e);\n\t\t\tthrow new authError('Invalid authentication token provided by Signatures API', 500, e);\n\t\t}\n\t},\n\n\tsetFresh: function ( state, fresh ) {\n\t\tstate.fresh = fresh;\n\t},\n\n\tsetModuleStateFromLocalStorage:function(state) {\n\t\tif ( localStorage.getItem( 'store.signaturesApiAuth' ) ) {\n\t\t\t// Replace the state object with the stored item\n\t\t\tlet data = JSON.parse( localStorage.getItem( 'store.signaturesApiAuth' ) );\n\t\t\tif(data!==null) {\n\t\t\t\tdata.fresh = false;\n\t\t\t\tObject.assign(state, data)\n\t\t\t}\n\t\t}\n\t},\n\tsetWorking:function(state, val) {\n\t\tstate.working = val;\n\t}\n\n}\n\nexport default {\n\tnamespaced: true,\n\tstate,\n\tgetters,\n\tactions,\n\tmutations\n}\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport microsoftAuth from './modules/microsoftAuth.store'\r\nimport signaturesApiAuth from './modules/signaturesApiAuth.store'\r\n\r\n\r\nVue.use( Vuex )\r\n\r\nexport default new Vuex.Store( {\r\n\tgetters: {\r\n\t\tisSignedIn: function( state ) {\r\n\t\t\tif( !state.microsoftAuth.isSignedIn || !state.microsoftAuth.fresh || !state.signaturesApiAuth.isSignedIn || !state.signaturesApiAuth.fresh ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\tsnackbars:function(state) {\r\n\t\t\treturn state.snackbars;\r\n\t\t},\r\n\r\n\t\tsnackbarTimeout:function(state) {\r\n\t\t\tif(typeof(state.snackbars[0])!='undefined' && typeof(state.snackbars[0].timeout)=='number') {\r\n\t\t\t\treturn state.snackbars[0].timeout;\r\n\t\t\t}\r\n\t\t\treturn 4000;\r\n\t\t},\r\n\t},\r\n\tstate: {\r\n\t\tsnackbars:[],\r\n\t\tshowAdvanced:false\r\n\t},\r\n\tmutations: {\r\n\r\n\t\taddSnackbar:function( state, snackbar ) {\r\n\t\t\tstate.snackbars.push( snackbar );\r\n\t\t},\r\n\r\n\t\tremoveSnackbar:function(state, id ) {\r\n\t\t\tlet index = state.snackbars.findIndex(item => item.id === id);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tstate.snackbars.splice(index, 1);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetShowAdvanced:function(state, value) {\r\n\t\t\tstate.showAdvanced = value;\r\n\t\t}\r\n\r\n\t},\r\n\tactions: {\r\n\t\tinitialize: async function ({commit}) {\r\n\t\t\tif ( localStorage.getItem( 'store.showAdvanced' ) ) {\r\n\t\t\t\t// Replace the state object with the stored item\r\n\t\t\t\tlet data = localStorage.getItem( 'store.showAdvanced' );\r\n\t\t\t\tif(data==='true' || data===false || data===true || data===false) {\r\n\t\t\t\t\tcommit('setShowAdvanced', data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tflushStoreCache:async function() {\r\n\t\t\tlocalStorage.removeItem('store.microsoftAuth')\r\n\t\t\tlocalStorage.removeItem('store.signaturesApiAuth')\r\n\t\t},\r\n\t\tsignOut: async function( {dispatch}) {\r\n\t\t\tawait dispatch('flushStoreCache');\r\n\t\t\tawait dispatch('microsoftAuth/signOut')\r\n\t\t},\r\n\r\n\r\n\t\tsendSnackbar:function({commit}, payload ) {\r\n\t\t\tlet snackbar = {\r\n\t\t\t\tid: \"snackbar_\"+Math.random().toString(36)\t.substr(2, 9),\r\n\t\t\t\tcolor: payload.color,\r\n\t\t\t\tmessage: payload.message,\r\n\t\t\t};\r\n\r\n\t\t\tif('timeout' in payload) {\r\n\t\t\t\tsnackbar.timeout = payload.timeout;\r\n\t\t\t}\r\n\r\n\t\t\tcommit('addSnackbar', snackbar);\r\n\r\n\t\t},\r\n\r\n\t\tsendErrorSnackbar:function({commit}, e ) {\r\n\t\t\tlet message = '';\r\n\t\t\tif(e.code!==0) {\r\n\t\t\t\tmessage += e.code+': ';\r\n\t\t\t}\r\n\t\t\tmessage += e.message;\r\n\r\n\t\t\tlet snackbar = {\r\n\t\t\t\tid: \"snackbar_\"+Math.random().toString(36)\t.substr(2, 9),\r\n\t\t\t\tcolor: 'error',\r\n\t\t\t\tmessage: message,\r\n\t\t\t\ttimeout:5000\r\n\t\t\t};\r\n\r\n\t\t\tcommit('addSnackbar', snackbar);\r\n\r\n\t\t},\r\n\r\n\t\tremoveSnackbar({commit} ,id ) {\r\n\t\t\tcommit('removeSnackbar', id);\r\n\t\t},\r\n\r\n\t\tsetShowAdvanced({commit}, value) {\r\n\t\t\tcommit('setShowAdvanced', value);\r\n\t\t}\r\n\t},\r\n\tmodules: {\r\n\t\tmicrosoftAuth: microsoftAuth,\r\n\t\tsignaturesApiAuth: signaturesApiAuth\r\n\t}\r\n} )\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"60\":\"document\",\"243\":\"auth.signIn\",\"345\":\"auth.error\",\"476\":\"sign\",\"779\":\"error\",\"806\":\"user\",\"943\":\"root\",\"974\":\"auth.signOut\"}[chunkId] || chunkId) + \".\" + {\"60\":\"99160668\",\"243\":\"adb2df78\",\"332\":\"0dee56fd\",\"334\":\"63dee096\",\"345\":\"3bfd8851\",\"476\":\"dbeca41f\",\"556\":\"43657d7f\",\"779\":\"a9c58773\",\"806\":\"19668f59\",\"940\":\"6a96db66\",\"943\":\"746c43ef\",\"974\":\"a76a95fe\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"60\":\"document\",\"243\":\"auth.signIn\",\"345\":\"auth.error\",\"476\":\"sign\",\"779\":\"error\",\"806\":\"user\",\"943\":\"root\",\"974\":\"auth.signOut\"}[chunkId] || chunkId) + \".\" + {\"60\":\"5f50bbad\",\"243\":\"1ecf3cab\",\"334\":\"8a7c1f29\",\"345\":\"6cb2ece6\",\"476\":\"41ea34d5\",\"779\":\"a77b1db2\",\"806\":\"d91749da\",\"940\":\"f2541bb1\",\"943\":\"80cb41b4\",\"974\":\"1ecf3cab\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"signatures:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/app/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"60\":1,\"243\":1,\"334\":1,\"345\":1,\"476\":1,\"779\":1,\"806\":1,\"940\":1,\"943\":1,\"974\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksignatures\"] = self[\"webpackChunksignatures\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(9449); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["apiError","customError","constructor","message","code","data","super","authError","Error","this","name","captureStackTrace","scopedSlots","fn","undefined","proxy","_c","attrs","getters","render","staticRenderFns","_vm","staticClass","_v","isSignedIn","key","_g","computed","$store","appVersion","process","apiVersion","year","dt","Date","getFullYear","component","components","AppHeaderBar","metaInfo","title","routes","path","props","meta","auth","required","readRoles","writeRoles","route","documentId","params","token","query","userId","Vue","use","VueRouter","router","mode","base","beforeEach","to","from","next","store","sessionStorage","setItem","fullPath","Vuetify","d","document","addEventListener","e","closestDialog","target","closest","button","classList","contains","el","mouseStartX","clientX","mouseStartY","clientY","elStartX","getBoundingClientRect","left","elStartY","top","style","position","margin","oldTransition","transition","Math","min","max","window","innerWidth","width","innerHeight","height","setInterval","dialog","querySelector","parseInt","filters","formatDateTime","dateTimeString","options","month","day","hour","minute","substr","length","dtObj","toLocaleString","formatDate","formatCurrency","val","minimumFractionDigits","formatter","Intl","NumberFormat","currency","format","methods","reload","location","config","productionTip","mixin","systemMixin","formattersMixin","VueMeta","VuetifySnackbarQueue","VueSignaturePad","vuetify","beforeCreate","subscribe","mutation","state","console","log","type","startsWith","localStorage","JSON","stringify","microsoftAuth","signaturesApiAuth","showAdvanced","dispatch","then","h","App","$mount","apiService","authorization","baseUrl","appendUrl","defaultOptions","urlBuild","urlPath","cleanUrlPath","replace","append","indexOf","buildAxiosConfig","async","headers","signaturesApiAccessToken","apiErrorCatch","response","error","status","stack","authenticate","microsoftAccessToken","signaturesApiTokenResponse","axios","get","accessToken","url","catch","post","put","patch","delete","download","fileAccessToken","fileTokenApiResponse","downloadUrl","open","createDocument","file","templateId","formData","FormData","microsoftUser","username","_defineProperty","loginApiScopes","authService","msalConfig","clientId","authority","redirectUri","postLogoutRedirectUri","cache","claimsBasedCachingEnabled","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","msal","Info","info","Verbose","debug","Warning","warn","loginRequest","scopes","apiRequest","silentApiRequest","msalInstance","PublicClientApplication","initialize","pageLoad","vm","user","Promise","resolve","reject","handleRedirectPromise","account","currentAccounts","getAllAccounts","signIn","loginRedirect","signOut","logoutRequest","getAccountByUsername","logout","getAccessToken","promise","accountFilter","getAccount","acquireTokenSilent","acquireTokenRedirect","fresh","actions","forceFreshStateToFalse","commit","setTimeout","getNewToken","decodedCurrentAccessToken","jwt_decode","now","exp","mutations","setAccessToken","setUser","setFresh","setLoggedOut","setModuleStateFromLocalStorage","getItem","parse","Object","assign","namespaced","authUser","email","roles","hasTerminal","terminalType","terminalId","working","api","setDataFromToken","decodedAccessToken","scope","setWorking","Vuex","snackbars","snackbarTimeout","timeout","addSnackbar","snackbar","push","removeSnackbar","id","index","findIndex","item","splice","setShowAdvanced","value","flushStoreCache","removeItem","sendSnackbar","payload","random","toString","color","sendErrorSnackbar","modules","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","r","n","getter","__esModule","a","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","href","err","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","b","baseURI","self","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}