{"version":3,"file":"js/chunk-vendors-6a6e885a.281a7cd7.js","mappings":"6LAgBWA,EAAgB,CACvBC,UAAW,oBACXC,gBAAiB,QACjBC,YAAa,KACbC,WAAY,OACZC,gBAAiB,EACjBC,iBAAkB,GAGlBC,SAAS,IAAIC,EAAA,IAAgBC,cAM1B,SAASC,EAAcC,GAC1B,IAAIC,EAAM,EACVA,EAAMD,EAAIE,OACV,IAAK,IAAIC,EAAIH,EAAIE,OAAQC,GAAK,EAAGA,GAAK,EAAG,CACrC,IAAIC,EAAWJ,EAAIK,WAAWF,GAC1BC,EAAW,KAAQA,GAAY,KAC/BH,GAAO,EAEFG,EAAW,MAASA,GAAY,QACrCH,GAAO,GAGPG,GAAY,OAAUA,GAAY,QAClCD,GAAK,EAEb,CACA,OAAOF,CACX,CAIO,SAASK,IACZ,IAAIC,EAAW,IAAIC,KACnB,OAAOD,EAASE,SACpB,CAIO,SAASC,EAAUC,GACtB,OAAIC,OAAOF,UACAE,OAAOF,UAAUC,GAErBE,EAAWF,EACtB,CACA,SAASE,EAAWF,GAChB,MAAyB,kBAAVA,GAAsBG,SAASH,IAAUI,KAAKC,MAAML,KAAWA,CAClF,CAIA,IAAIM,EAAQ,CAAC,E,GACoB,WAC7B,SAASC,IACT,CACAA,EAAYC,MAAQ,WAChBF,EAAQ,CAAC,CACb,EACAC,EAAYE,QAAU,SAAUC,GAC5B,OAAOJ,EAAMI,IAAQ,IACzB,EACAH,EAAYI,QAAU,SAAUD,EAAKV,GACjCM,EAAMI,GAAOV,CACjB,EACAO,EAAYK,WAAa,SAAUF,UACxBJ,EAAMI,EACjB,CAEJ,CAhBgC,G,SC1D5BG,EAAS,IAAI,IAAO,gBAKpBC,EAA8B,WAK9B,SAASA,EAAaC,GAClBC,KAAKD,OAASE,OAAOC,OAAO,CAAC,EAAGH,GAChCC,KAAKG,gBAAkBH,KAAKD,OAAOpC,UAAY,UAC/CqC,KAAKI,aACT,CAkFA,OAjFAN,EAAaO,UAAUC,cAAgB,WACnC,MAAO,OACX,EACAR,EAAaO,UAAUD,YAAc,WAE5BrB,EAAUiB,KAAKD,OAAOnC,mBACvBiC,EAAOU,MAAM,yFACbP,KAAKD,OAAOnC,gBAAkBF,EAAcE,iBAE3CmB,EAAUiB,KAAKD,OAAOlC,eACvBgC,EAAOU,MAAM,qFACbP,KAAKD,OAAOlC,YAAcH,EAAcG,aAEvCkB,EAAUiB,KAAKD,OAAOjC,cACvB+B,EAAOU,MAAM,oFACbP,KAAKD,OAAOjC,WAAaJ,EAAcI,YAEtCiB,EAAUiB,KAAKD,OAAOhC,mBACvB8B,EAAOU,MAAM,yFACbP,KAAKD,OAAOhC,gBAAkBL,EAAcK,iBAE5CiC,KAAKD,OAAOlC,YAAcmC,KAAKD,OAAOnC,kBACtCiC,EAAOU,MAAM,uGACbP,KAAKD,OAAOlC,YAAcH,EAAcG,cAExCmC,KAAKD,OAAOhC,gBAAkB,GAAKiC,KAAKD,OAAOhC,gBAAkB,KACjE8B,EAAOU,MAAM,8FACbP,KAAKD,OAAOhC,gBAAkBL,EAAcK,kBAE5CkB,OAAOe,KAAKD,OAAO/B,kBAAoB,GACvCiB,OAAOe,KAAKD,OAAO/B,kBAAoB,KACvC6B,EAAOU,MAAM,+FACbP,KAAKD,OAAO/B,iBAAmBN,EAAcM,kBAGjD,IAAIwC,EAAa,QACbR,KAAKD,OAAOnC,gBAAkB4C,IAC9BX,EAAOU,MAAM,6FACbP,KAAKD,OAAOnC,gBAAkBF,EAAcE,gBAEpD,EAQAkC,EAAaO,UAAUI,cAAgB,SAAUf,EAAKV,EAAO0B,GACzD,IAAIpC,EAAM,CACNoB,IAAKA,EACLiB,KAAM3B,EACN4B,UAAWjC,IACXkC,YAAalC,IACbmC,SAAUJ,EAAQI,SAClBC,QAASL,EAAQK,QACjBC,YAAahC,EACbiC,SAAU,GAKd,OAHA3C,EAAI2C,SAAW7C,EAAc8C,KAAKC,UAAU7C,IAE5CA,EAAI2C,SAAW7C,EAAc8C,KAAKC,UAAU7C,IACrCA,CACX,EAOAwB,EAAaO,UAAUe,UAAY,SAAUrB,GACzC,OAAKA,GAGDA,EAAOpC,WACPkC,EAAOwB,KAAK,qCAEhBrB,KAAKD,OAASE,OAAOC,OAAO,CAAC,EAAGF,KAAKD,OAAQA,EAAQA,EAAOuB,OAC5DtB,KAAKI,cACEJ,KAAKD,QAPDC,KAAKD,MAQpB,EACOD,CACX,CA5FiC,GCP7ByB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvB,OAAO0B,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,GAAI,EACtEN,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOhC,KAAKiC,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpB,UAAkB,OAANqB,EAAazB,OAAOiC,OAAOR,IAAMM,EAAG3B,UAAYqB,EAAErB,UAAW,IAAI2B,EACnF,CACH,CAZ2C,GAgBxC,EAAS,IAAI,IAAO,SAIpBG,EAA0C,SAAUC,GAMpD,SAASD,EAAyBpC,GAC9B,IAAIsC,EAAQrC,KACRsC,EAAcvC,EACZE,OAAOC,OAAO,CAAC,EAAGxC,EAAeqC,GACjCrC,EAMN,OALA2E,EAAQD,EAAOG,KAAKvC,KAAMsC,IAAgBtC,KAC1CqC,EAAMtC,OAAO9B,QAAUqE,EAAYrE,QACnCoE,EAAM5C,QAAU4C,EAAM5C,QAAQ+C,KAAKH,GACnCA,EAAM1C,QAAU0C,EAAM1C,QAAQ6C,KAAKH,GACnCA,EAAMzC,WAAayC,EAAMzC,WAAW4C,KAAKH,GAClCA,CACX,CA+YA,OA/ZAd,EAAUY,EAA0BC,GAuBpCD,EAAyB9B,UAAUoC,wBAA0B,SAAUC,GACnE,IAAIC,EAAU3C,KAAK4C,kBACnB5C,KAAKD,OAAO9B,QAAQ0B,QAAQK,KAAKG,iBAAkBwC,EAAUD,GAAQG,WACzE,EAOAV,EAAyB9B,UAAUyC,wBAA0B,SAAUJ,GACnE,IAAIC,EAAU3C,KAAK4C,kBACnB5C,KAAKD,OAAO9B,QAAQ0B,QAAQK,KAAKG,iBAAkBwC,EAAUD,GAAQG,WACzE,EAUAV,EAAyB9B,UAAU0C,aAAe,SAAUC,EAAMC,GAG9D,OAFAD,EAAKnC,YAAclC,IACnBqB,KAAKD,OAAO9B,QAAQ0B,QAAQsD,EAAa/B,KAAKC,UAAU6B,IACjDA,CACX,EASAb,EAAyB9B,UAAU6C,WAAa,SAAUxD,GACtD,IAAIyD,EAAOnD,KAAKD,OAAO9B,QAAQwB,QAAQC,GACnCsD,EAAO9B,KAAKkC,MAAMD,GACtB,OAAIxE,KAAiBqE,EAAKjC,OAI9B,EAQAoB,EAAyB9B,UAAUgD,YAAc,SAAUJ,EAAaK,GACpE,IAAIC,EAAWD,GAETpC,KAAKkC,MAAMpD,KAAKD,OAAO9B,QAAQwB,QAAQwD,IAAchC,SAC3DjB,KAAKyC,wBAAwBc,GAE7BvD,KAAKD,OAAO9B,QAAQ2B,WAAWqD,EACnC,EASAd,EAAyB9B,UAAUmD,SAAW,SAAUP,EAAaD,GAEjEhD,KAAK8C,wBAAwBE,EAAK/B,UAClC,IACIjB,KAAKD,OAAO9B,QAAQ0B,QAAQsD,EAAa/B,KAAKC,UAAU6B,GAC5D,CACA,MAAOS,GAEHzD,KAAKyC,wBAAwBO,EAAK/B,UAClC,EAAOV,MAAM,sBAAwBkD,EACzC,CACJ,EASAtB,EAAyB9B,UAAUqD,WAAa,SAAUH,GACtD,IAAII,EAAgB3D,KAAK4C,kBAAoBW,EAAWvD,KAAKD,OAAOnC,gBAChEgG,GAAuB,EAAI5D,KAAKD,OAAO/B,kBAAoBgC,KAAKD,OAAOnC,gBAC3E,OAAO+F,EAAgBC,EACjBD,EACAC,CACV,EASAzB,EAAyB9B,UAAUwD,aAAe,SAAUN,GACxD,OAAOA,EAAWvD,KAAK4C,kBAAoB5C,KAAKD,OAAOnC,eAC3D,EASAuE,EAAyB9B,UAAUyD,eAAiB,WAIhD,IAHA,IAAIC,EAAO,GACPC,EAAa,GAERxF,EAAI,EAAGA,EAAIwB,KAAKD,OAAO9B,QAAQM,OAAQC,GAAK,EACjDwF,EAAWC,KAAKjE,KAAKD,OAAO9B,QAAQyB,IAAIlB,IAG5C,IAASA,EAAI,EAAGA,EAAIwF,EAAWzF,OAAQC,GAAK,EAAG,CAC3C,IAAIkB,EAAMsE,EAAWxF,GACsB,IAAvCkB,EAAIwE,QAAQlE,KAAKD,OAAOpC,YACxB+B,IAAQM,KAAKG,kBACTH,KAAKkD,WAAWxD,GAChBM,KAAKqD,YAAY3D,GAGjBqE,EAAKE,KAAKvE,GAGtB,CACA,OAAOqE,CACX,EAUA5B,EAAyB9B,UAAU8D,aAAe,SAAUJ,EAAMK,GAI9D,IAHA,IAAIC,EAAQ,GACRC,EAAeF,EAEV5F,EAAI,EAAGA,EAAIuF,EAAKxF,OAAQC,GAAK,EAAG,CACrC,IAAI+F,EAAMvE,KAAKD,OAAO9B,QAAQwB,QAAQsE,EAAKvF,IAC3C,GAAW,MAAP+F,EAAa,CACb,IAAIvB,EAAO9B,KAAKkC,MAAMmB,GACtBF,EAAMJ,KAAKjB,EACf,CACJ,CAGAqB,EAAMG,MAAK,SAAUC,EAAG/C,GACpB,OAAI+C,EAAE3D,SAAWY,EAAEZ,UACP,EAEH2D,EAAE3D,SAAWY,EAAEZ,SACb,EAGH2D,EAAE5D,YAAca,EAAEb,aACV,EAGD,CAEnB,IACA,IAASrC,EAAI,EAAGA,EAAI6F,EAAM9F,OAAQC,GAAK,EAInC,GAFAwB,KAAKqD,YAAYgB,EAAM7F,GAAGkB,IAAK2E,EAAM7F,GAAGyC,UACxCqD,GAAgBD,EAAM7F,GAAGyC,SACrBqD,GAAgB,EAChB,MAGZ,EAiBAnC,EAAyB9B,UAAUV,QAAU,SAAUD,EAAKV,EAAO0B,GAC/D,EAAOgE,IAAI,oBAAsBhF,EAAM,cAAgBV,EAAQ,kBAAoB0B,GACnF,IAAIuC,EAAcjD,KAAKD,OAAOpC,UAAY+B,EAE1C,GAAIuD,IAAgBjD,KAAKD,OAAOpC,WAC5BsF,IAAgBjD,KAAKG,gBAIzB,GAAqB,qBAAVnB,EAAX,CAIA,IAAI2F,EAAmB,CACnB7D,SAAUJ,QAAgCkE,IAArBlE,EAAQI,SACvBJ,EAAQI,SACRd,KAAKD,OAAOhC,gBAClBgD,QAASL,QAA+BkE,IAApBlE,EAAQK,QACtBL,EAAQK,QACRf,KAAKD,OAAOjC,WAAaa,KAEnC,GAAIgG,EAAiB7D,SAAW,GAAK6D,EAAiB7D,SAAW,EAC7D,EAAOO,KAAK,qFADhB,CAIA,IAAI2B,EAAOhD,KAAKS,cAAcwC,EAAajE,EAAO2F,GAElD,GAAI3B,EAAK/B,SAAWjB,KAAKD,OAAOlC,YAC5B,EAAOwD,KAAK,kBAAoB3B,EAAM,gDAG1C,IAEI,IAAI6E,EAAMvE,KAAKD,OAAO9B,QAAQwB,QAAQwD,GAKtC,GAJIsB,GACAvE,KAAKqD,YAAYJ,EAAa/B,KAAKkC,MAAMmB,GAAKtD,UAG9CjB,KAAK6D,aAAab,EAAK/B,UAAW,CAClC,IAAI4D,EAAY7E,KAAK8D,iBAErB,GAAI9D,KAAK6D,aAAab,EAAK/B,UAAW,CAClC,IAAImD,EAAYpE,KAAK0D,WAAWV,EAAK/B,UACrCjB,KAAKmE,aAAaU,EAAWT,EACjC,CACJ,CAGApE,KAAKwD,SAASP,EAAaD,EAC/B,CACA,MAAO8B,GACH,EAAOzD,KAAK,mBAAqByD,EACrC,CA5BA,CAZA,MAFI,EAAOzD,KAAK,mDAJZ,EAAOA,KAAK,gDA+CpB,EAgBAc,EAAyB9B,UAAUZ,QAAU,SAAUC,EAAKgB,GACxD,EAAOgE,IAAI,oBAAsBhF,EAAM,iBAAmBgB,GAC1D,IAAIpC,EAAM,KACN2E,EAAcjD,KAAKD,OAAOpC,UAAY+B,EAC1C,GAAIuD,IAAgBjD,KAAKD,OAAOpC,WAC5BsF,IAAgBjD,KAAKG,gBAErB,OADA,EAAOkB,KAAK,iDACL,KAEX,IAEI,GADA/C,EAAM0B,KAAKD,OAAO9B,QAAQwB,QAAQwD,GACvB,MAAP3E,EAAa,CACb,IAAI0B,KAAKkD,WAAWD,GAKf,CAED,IAAID,EAAO9B,KAAKkC,MAAM9E,GAEtB,OADA0E,EAAOhD,KAAK+C,aAAaC,EAAMC,GACxBD,EAAKrC,IAChB,CARIX,KAAKqD,YAAYJ,EAAa/B,KAAKkC,MAAM9E,GAAK2C,UAC9C3C,EAAM,IAQd,CACA,GAAIoC,QAAgCkE,IAArBlE,EAAQqE,SAAwB,CAC3C,IAAIR,EAAM7D,EAAQqE,WAIlB,OAHY,OAARR,GACAvE,KAAKL,QAAQD,EAAK6E,EAAK7D,GAEpB6D,CACX,CACA,OAAO,IACX,CACA,MAAOO,GAEH,OADA,EAAOzD,KAAK,mBAAqByD,GAC1B,IACX,CACJ,EAOA3C,EAAyB9B,UAAUT,WAAa,SAAUF,GACtD,EAAOgF,IAAI,uBAAyBhF,GACpC,IAAIuD,EAAcjD,KAAKD,OAAOpC,UAAY+B,EAC1C,GAAIuD,IAAgBjD,KAAKD,OAAOpC,WAC5BsF,IAAgBjD,KAAKG,gBAGzB,IACI,IAAIoE,EAAMvE,KAAKD,OAAO9B,QAAQwB,QAAQwD,GAClCsB,GACAvE,KAAKqD,YAAYJ,EAAa/B,KAAKkC,MAAMmB,GAAKtD,SAEtD,CACA,MAAO6D,GACH,EAAOzD,KAAK,sBAAwByD,EACxC,CACJ,EAMA3C,EAAyB9B,UAAUb,MAAQ,WACvC,EAAOkF,IAAI,eAEX,IADA,IAAIM,EAAe,GACVxG,EAAI,EAAGA,EAAIwB,KAAKD,OAAO9B,QAAQM,OAAQC,GAAK,EAAG,CACpD,IAAIkB,EAAMM,KAAKD,OAAO9B,QAAQyB,IAAIlB,GACS,IAAvCkB,EAAIwE,QAAQlE,KAAKD,OAAOpC,YACxBqH,EAAaf,KAAKvE,EAE1B,CACA,IACI,IAASlB,EAAI,EAAGA,EAAIwG,EAAazG,OAAQC,GAAK,EAC1CwB,KAAKD,OAAO9B,QAAQ2B,WAAWoF,EAAaxG,GAEpD,CACA,MAAOsG,GACH,EAAOzD,KAAK,iBAAmByD,EACnC,CACJ,EAMA3C,EAAyB9B,UAAU4E,WAAa,WAE5C,IADA,IAAIlB,EAAO,GACFvF,EAAI,EAAGA,EAAIwB,KAAKD,OAAO9B,QAAQM,OAAQC,GAAK,EAAG,CACpD,IAAIkB,EAAMM,KAAKD,OAAO9B,QAAQyB,IAAIlB,GACS,IAAvCkB,EAAIwE,QAAQlE,KAAKD,OAAOpC,YACxB+B,IAAQM,KAAKG,iBACb4D,EAAKE,KAAKvE,EAAIwF,UAAUlF,KAAKD,OAAOpC,UAAUY,QAEtD,CACA,OAAOwF,CACX,EAMA5B,EAAyB9B,UAAUuC,gBAAkB,WACjD,IAAItE,EAAM0B,KAAKD,OAAO9B,QAAQwB,QAAQO,KAAKG,iBAK3C,OAJK7B,IACD0B,KAAKD,OAAO9B,QAAQ0B,QAAQK,KAAKG,gBAAiB,KAClD7B,EAAM,KAEHW,OAAOX,EAClB,EAOA6D,EAAyB9B,UAAU8E,eAAiB,SAAUpF,GAK1D,OAJKA,EAAOpC,WAAaoC,EAAOpC,YAAcD,EAAcC,YACxD,EAAO4C,MAAM,uDACbR,EAAOpC,UAAYgB,EAAYkE,YAE5B,IAAIV,EAAyBpC,EACxC,EACOoC,CACX,CAja6C,CAia3CrC,GAESsF,EAAsB,IAAIjD,EC/arC,IACAkD,EAAA,GAAQC,SAASF,E,sECrBbG,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYf,EAA3BtG,EAAIkH,EAAEnD,KAAKiD,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAIrH,EAAEuH,QAAQC,KAAMF,EAAG7B,KAAK4B,EAAE7G,MACxE,CACA,MAAOuB,GAASuE,EAAI,CAAEvE,MAAOA,EAAS,CACtC,QACI,IACQsF,IAAMA,EAAEG,OAASN,EAAIlH,EAAE,YAAYkH,EAAEnD,KAAK/D,EAClD,CACA,QAAU,GAAIsG,EAAG,MAAMA,EAAEvE,KAAO,CACpC,CACA,OAAOuF,CACX,EAEIjG,EAAS,IAAI,IAAY,WACzBoG,EAA8B,WAC9B,SAASA,IAELjG,KAAKkG,YAAc,GACnBlG,KAAKmG,QAAU,CAAC,EAEhBnG,KAAKoG,SAAW,CAAC,EAGjBpG,KAAKqG,KAAO,KACZrG,KAAKsG,UAAY,KACjBtG,KAAKuG,IAAM,KACXvG,KAAKwG,YAAc,KACnBxG,KAAKyG,QAAU,KACfzG,KAAK0G,KAAO,KACZ1G,KAAKsB,MAAQ,KACbtB,KAAK2G,OAAS,KACd3G,KAAK4G,aAAe,KACpB5G,KAAK6G,iBAAmB,KACxB7G,KAAK8G,GAAK,KACV9G,KAAK+G,GAAK,KACV/G,KAAKgH,YAAc,KACnBhH,KAAKiH,UAAY,KACjBjH,KAAKkH,IAAM,KACXlH,KAAKmH,OAAS,IACdnH,KAAKoH,cAAgB,IACzB,CAuDA,OAtDAnB,EAAa5F,UAAUiF,SAAW,SAAU+B,GACxCxH,EAAOyH,MAAM,kCAAmCD,GAChDrH,KAAKkG,YAAYjC,KAAKoD,GACY,oBAAvBA,EAAK/G,eACZN,KAAKoG,SAASiB,EAAK/G,iBAAmB+G,EACtCrH,KAAKqH,EAAK/G,iBAAmB+G,GAG7BxH,EAAOyH,MAAM,wCAAyCD,GAQ1DA,EAAKjG,UAAUpB,KAAKmG,QACxB,EACAF,EAAa5F,UAAUe,UAAY,SAAUrB,GACzC,IAAIsC,EAAQrC,KACZ,OAAKD,GAELC,KAAKmG,QAAUlG,OAAOC,OAAOF,KAAKmG,QAASpG,GAC3CF,EAAOyH,MAAM,iBAAkBtH,KAAKmG,SAIpClG,OAAOsH,QAAQvH,KAAKoG,UAAUoB,SAAQ,SAAUC,GAC5C,IAAIC,EAAKnC,EAAOkC,EAAI,GAAkBJ,GAAPK,EAAG,GAAWA,EAAG,IAEhDzH,OAAO8D,KAAKsD,GAAMG,SAAQ,SAAUG,GAE5BtF,EAAM+D,SAASuB,KACfN,EAAKM,GAAYtF,EAAM+D,SAASuB,GAExC,GACJ,IACA3H,KAAKkG,YAAY0B,KAAI,SAAUP,GAC3BA,EAAKjG,UAAUiB,EAAM8D,QACzB,IACOnG,KAAKmG,SAnBDnG,KAAKmG,OAoBpB,EACAF,EAAa5F,UAAUwH,aAAe,SAAUC,GACxCA,GACAA,EAAU,gBAC0B,oBAA7BA,EAAU,gBACjB9H,KAAKkG,YAAY0B,KAAI,SAAUP,GACvBA,EAAK,iBAC2B,oBAAzBA,EAAK,iBACZA,EAAKQ,aAAaC,EAE1B,GAER,EACO7B,CACX,CAlFiC,GAoFtBZ,EAAU,IAAIY,C,mGCtGrB8B,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,SAASC,EAAMpJ,GAAS,OAAOA,aAAiBkJ,EAAIlJ,EAAQ,IAAIkJ,GAAE,SAAUG,GAAWA,EAAQrJ,EAAQ,GAAI,CAC3G,OAAO,IAAKkJ,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAUxJ,GAAS,IAAMyJ,EAAKN,EAAUpC,KAAK/G,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC1F,SAAS4D,EAAS1J,GAAS,IAAMyJ,EAAKN,EAAU,SAASnJ,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC7F,SAAS2D,EAAKE,GAAUA,EAAO3C,KAAOqC,EAAQM,EAAO3J,OAASoJ,EAAMO,EAAO3J,OAAO4J,KAAKJ,EAAWE,EAAW,CAC7GD,GAAMN,EAAYA,EAAUU,MAAMb,EAASC,GAAc,KAAKlC,OAClE,GACJ,EACI+C,EAA4C,SAAUd,EAASe,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpD,KAAM0D,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9D,SAA0BwD,EAAExD,OAAOC,UAAY,WAAa,OAAO5F,IAAM,GAAImJ,EACvJ,SAASM,EAAKhE,GAAK,OAAO,SAAUiE,GAAK,OAAOjB,EAAK,CAAChD,EAAGiE,GAAK,CAAG,CACjE,SAASjB,EAAKkB,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,MAAOR,MACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARS,EAAG,GAASV,EAAE,UAAYU,EAAG,GAAKV,EAAE,YAAcC,EAAID,EAAE,YAAcC,EAAE3G,KAAK0G,GAAI,GAAKA,EAAElD,SAAWmD,EAAIA,EAAE3G,KAAK0G,EAAGU,EAAG,KAAK3D,KAAM,OAAOkD,EAE3J,OADID,EAAI,EAAGC,IAAGS,EAAK,CAAS,EAARA,EAAG,GAAQT,EAAElK,QACzB2K,EAAG,IACP,KAAK,EAAG,KAAK,EAAGT,EAAIS,EAAI,MACxB,KAAK,EAAc,OAAXP,EAAEC,QAAgB,CAAErK,MAAO2K,EAAG,GAAI3D,MAAM,GAChD,KAAK,EAAGoD,EAAEC,QAASJ,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKP,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,GAAMX,EAAIE,EAAEG,OAAML,EAAIA,EAAE3K,OAAS,GAAK2K,EAAEA,EAAE3K,OAAS,MAAkB,IAAVoL,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEP,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVO,EAAG,MAAcT,GAAMS,EAAG,GAAKT,EAAE,IAAMS,EAAG,GAAKT,EAAE,IAAM,CAAEE,EAAEC,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYP,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIS,EAAI,KAAO,CACpE,GAAIT,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIvF,KAAK0F,GAAK,KAAO,CAC9DT,EAAE,IAAIE,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBF,EAAKZ,EAAKxG,KAAKyF,EAASoB,EAC5B,CAAE,MAAOtE,GAAK6E,EAAK,CAAC,EAAG7E,GAAImE,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARS,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3K,MAAO2K,EAAG,GAAKA,EAAG,QAAK,EAAQ3D,MAAM,EAC9E,CACJ,EAgBInG,EAAS,IAAI,IAAO,sBACpBiK,EAAc,IAAIxB,SAAQ,SAAUyB,EAAKC,GACzC,KAAK,UAAgBC,UAEjB,OADApK,EAAOyH,MAAM,yCACNyC,IAEX,IAAIG,EAAKC,OAAO,SAAWA,OAAO,QAAQC,MAAQD,OAAO,QAAQC,MAAQ,KACzE,GAAIF,EAEA,OADArK,EAAOyH,MAAM,6BACNyC,IAGPM,YAAW,WACP,OAAON,GACX,GAAG,IAEX,IACIO,EAA6B,WAC7B,SAASA,IACLtK,KAAKuK,aAAc,EACnBvK,KAAKwK,mBAAqBxK,KAAKwK,mBAAmBhI,KAAKxC,MACvDA,KAAKyK,wBAA0BzK,KAAKyK,wBAAwBjI,KAAKxC,KACrE,CAgEA,OA/DAsK,EAAYjK,UAAUmK,mBAAqB,WACvC,OAAOzC,EAAU/H,UAAM,OAAQ,GAAQ,WACnC,OAAO8I,EAAY9I,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACD,OAAMrJ,KAAKuK,YAAoB,CAAC,EAAa,IAC7C1K,EAAOyH,MAAM,0CACN,CAAC,EAAawC,IACzB,KAAK,EACDrC,EAAG6B,OACHtJ,KAAKuK,aAAc,EACnB1K,EAAOyH,MAAM,kBACbG,EAAG4B,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcrJ,KAAKyK,2BAE3C,GACJ,GACJ,EACAH,EAAYjK,UAAUoK,wBAA0B,WAC5C,IAAIP,EAAK,KAGT,OAFI,UAAgBD,YAChBC,EAAKC,OAAO,SAAWA,OAAO,QAAQC,MAAQD,OAAO,QAAQC,MAAQ,MACpEF,EAIE,IAAI5B,SAAQ,SAAUyB,EAAKC,GAC9BE,EAAGQ,kBACE9B,MAAK,SAAU+B,GACXA,IACD9K,EAAOyH,MAAM,yBACb0C,EAAI,IAAI,KAAkB,2BAE9B,IAAIY,EAAaD,EAAWE,YAAYC,MAEpCF,EAAWG,cACXlL,EAAOyH,MAAM,sCACbsD,EACKI,qBACApC,MAAK,SAAUqC,GAChB,IAAIC,EAAWD,EAAaC,SAAUC,EAAaF,EAAaE,WAChEpB,EAAI,CAAEqB,MAAOF,EAAUC,WAAYA,GACvC,IACKE,OAAM,SAAUC,GACbA,GAAqB,kBAAdA,EAAI/K,MAEXyJ,EAAI,gDAGJA,EAAI,IAAI,KAAkB,yCAElC,KAGAA,EAAI,IAAI,KAAkB,qCAElC,IACKqB,OAAM,SAAUC,GACjBzL,EAAOyH,MAAM,iCAAkCgE,GAC/CtB,EAAI,IAAI,KAAkB,kCAC9B,GACJ,KAtCInK,EAAOyH,MAAM,2BACNgB,QAAQC,OAAO,2BAsC9B,EACO+B,CACX,CAtEgC,GCpE5B,EAAwC,SAAUtC,EAASC,EAAYC,EAAGC,GAC1E,SAASC,EAAMpJ,GAAS,OAAOA,aAAiBkJ,EAAIlJ,EAAQ,IAAIkJ,GAAE,SAAUG,GAAWA,EAAQrJ,EAAQ,GAAI,CAC3G,OAAO,IAAKkJ,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAUxJ,GAAS,IAAMyJ,EAAKN,EAAUpC,KAAK/G,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC1F,SAAS4D,EAAS1J,GAAS,IAAMyJ,EAAKN,EAAU,SAASnJ,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC7F,SAAS2D,EAAKE,GAAUA,EAAO3C,KAAOqC,EAAQM,EAAO3J,OAASoJ,EAAMO,EAAO3J,OAAO4J,KAAKJ,EAAWE,EAAW,CAC7GD,GAAMN,EAAYA,EAAUU,MAAMb,EAASC,GAAc,KAAKlC,OAClE,GACJ,EACI,EAA4C,SAAUiC,EAASe,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpD,KAAM0D,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9D,SAA0BwD,EAAExD,OAAOC,UAAY,WAAa,OAAO5F,IAAM,GAAImJ,EACvJ,SAASM,EAAKhE,GAAK,OAAO,SAAUiE,GAAK,OAAOjB,EAAK,CAAChD,EAAGiE,GAAK,CAAG,CACjE,SAASjB,EAAKkB,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,MAAOR,MACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARS,EAAG,GAASV,EAAE,UAAYU,EAAG,GAAKV,EAAE,YAAcC,EAAID,EAAE,YAAcC,EAAE3G,KAAK0G,GAAI,GAAKA,EAAElD,SAAWmD,EAAIA,EAAE3G,KAAK0G,EAAGU,EAAG,KAAK3D,KAAM,OAAOkD,EAE3J,OADID,EAAI,EAAGC,IAAGS,EAAK,CAAS,EAARA,EAAG,GAAQT,EAAElK,QACzB2K,EAAG,IACP,KAAK,EAAG,KAAK,EAAGT,EAAIS,EAAI,MACxB,KAAK,EAAc,OAAXP,EAAEC,QAAgB,CAAErK,MAAO2K,EAAG,GAAI3D,MAAM,GAChD,KAAK,EAAGoD,EAAEC,QAASJ,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKP,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,GAAMX,EAAIE,EAAEG,OAAML,EAAIA,EAAE3K,OAAS,GAAK2K,EAAEA,EAAE3K,OAAS,MAAkB,IAAVoL,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEP,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVO,EAAG,MAAcT,GAAMS,EAAG,GAAKT,EAAE,IAAMS,EAAG,GAAKT,EAAE,IAAM,CAAEE,EAAEC,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYP,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIS,EAAI,KAAO,CACpE,GAAIT,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIvF,KAAK0F,GAAK,KAAO,CAC9DT,EAAE,IAAIE,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBF,EAAKZ,EAAKxG,KAAKyF,EAASoB,EAC5B,CAAE,MAAOtE,GAAK6E,EAAK,CAAC,EAAG7E,GAAImE,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARS,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3K,MAAO2K,EAAG,GAAKA,EAAG,QAAK,EAAQ3D,MAAM,EAC9E,CACJ,EAgBI,EAAS,IAAI,IAAO,sBACpB,EAAc,IAAIsC,SAAQ,SAAUyB,EAAKC,GACzC,KAAK,UAAgBC,UAEjB,OADA,EAAO3C,MAAM,yCACNyC,IAEX,IAAIwB,EAAKpB,OAAO,MAChB,GAAIoB,EAEA,OADA,EAAOjE,MAAM,yBACNyC,IAGPM,YAAW,WACP,OAAON,GACX,GAAG,IAEX,IACIyB,EAA+B,WAC/B,SAASA,IACLxL,KAAKuK,aAAc,EACnBvK,KAAKyL,qBAAuBzL,KAAKyL,qBAAqBjJ,KAAKxC,MAC3DA,KAAK0L,0BAA4B1L,KAAK0L,0BAA0BlJ,KAAKxC,KACzE,CAuDA,OAtDAwL,EAAcnL,UAAUoL,qBAAuB,WAC3C,OAAO,EAAUzL,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACD,OAAMrJ,KAAKuK,YAAoB,CAAC,EAAa,IAC7C,EAAOjD,MAAM,4CACN,CAAC,EAAa,IACzB,KAAK,EACDG,EAAG6B,OACHtJ,KAAKuK,aAAc,EACnB,EAAOjD,MAAM,kBACbG,EAAG4B,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcrJ,KAAK0L,6BAE3C,GACJ,GACJ,EACAF,EAAcnL,UAAUqL,0BAA4B,WAChD,IAAIH,EAAK,KAGT,IAFI,UAAgBtB,YAChBsB,EAAKpB,OAAO,QACXoB,EAAI,CACL,IAAII,EAAe,sBAEnB,OADA,EAAOrE,MAAMqE,GACNrD,QAAQC,OAAO,IAAI,KAAkBoD,GAChD,CACA,OAAO,IAAIrD,SAAQ,SAAUyB,EAAKC,GAC9BuB,EAAGK,gBAAe,SAAUC,GACxB,GAAKA,GAAeA,EAAWZ,aAO1B,CACD,IAAIa,EAAWD,EAAWZ,aACtBc,EAAcD,EAASC,YAAaC,EAAYF,EAASE,UACzDC,EAAO,IAAIpN,KACXsM,EAAyB,IAAZa,EAAmBC,EAAKnN,UACzC,IAAKiN,EAAa,CACVJ,EAAe,4BACnB,EAAOrE,MAAMqE,GACb3B,EAAI,IAAI,KAAkB2B,GAC9B,CACA5B,EAAI,CACAqB,MAAOW,EACPZ,WAAYA,GAEpB,KArB6C,CACzC,IAAIQ,EAAe,0DACnB,EAAOrE,MAAMqE,GAGb3B,EAAI,IAAI,KAAkB2B,GAC9B,CAgBJ,GAAG,CAAEO,MAAO,wBAChB,GACJ,EACOV,CACX,CA7DkC,GCtDvB,EAAc,IAAIlB,EAClB,EAAgB,IAAIkB,E,sECb3BW,EAAsC,WAStC,OARAA,EAAWlM,OAAOC,QAAU,SAASgJ,GACjC,IAAK,IAAIkD,EAAG5N,EAAI,EAAGiH,EAAI4G,UAAU9N,OAAQC,EAAIiH,EAAGjH,IAE5C,IAAK,IAAIsD,KADTsK,EAAIC,UAAU7N,GACA4N,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,KACzDoH,EAAEpH,GAAKsK,EAAEtK,IAEjB,OAAOoH,CACX,EACOiD,EAAStD,MAAM7I,KAAMqM,UAChC,EAQO,SAASC,EAA4BvM,GACxC,IAAIwM,EAAS,IAAIC,EAAA,EAAsB,CACnCC,OAAQ1M,EAAO0M,OACfC,iBAAiB,YAQrB,OANAH,EAAOI,gBAAgBC,KAAI,SAAU7G,EAAMqD,GAAK,OAAO,SAAUyD,GAC7D,OAAO9G,EAAK+G,EAAeD,GAC/B,CAAG,GAAG,CACFpE,KAAM,QACNsE,KAAM,2BAEHR,CACX,CACO,SAASO,EAAeD,GAC3B,OAAOV,EAASA,EAAS,CAAC,EAAGU,GAAO,CAAEG,QAASb,EAASA,EAAS,CAAC,EAAGU,EAAKG,SAAU,CAAEC,QAASd,EAASA,EAAS,CAAC,EAAGU,EAAKG,QAAQC,SAAU,CAAE,gBAAiB,gBACnK,CCnCA,IAAI,EAAsC,WAStC,OARA,EAAWhN,OAAOC,QAAU,SAASgJ,GACjC,IAAK,IAAIkD,EAAG5N,EAAI,EAAGiH,EAAI4G,UAAU9N,OAAQC,EAAIiH,EAAGjH,IAE5C,IAAK,IAAIsD,KADTsK,EAAIC,UAAU7N,GACA4N,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,KACzDoH,EAAEpH,GAAKsK,EAAEtK,IAEjB,OAAOoH,CACX,EACO,EAASL,MAAM7I,KAAMqM,UAChC,EACI,EAAwC,SAAUrE,EAASC,EAAYC,EAAGC,GAC1E,SAASC,EAAMpJ,GAAS,OAAOA,aAAiBkJ,EAAIlJ,EAAQ,IAAIkJ,GAAE,SAAUG,GAAWA,EAAQrJ,EAAQ,GAAI,CAC3G,OAAO,IAAKkJ,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAUxJ,GAAS,IAAMyJ,EAAKN,EAAUpC,KAAK/G,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC1F,SAAS4D,EAAS1J,GAAS,IAAMyJ,EAAKN,EAAU,SAASnJ,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC7F,SAAS2D,EAAKE,GAAUA,EAAO3C,KAAOqC,EAAQM,EAAO3J,OAASoJ,EAAMO,EAAO3J,OAAO4J,KAAKJ,EAAWE,EAAW,CAC7GD,GAAMN,EAAYA,EAAUU,MAAMb,EAASC,GAAc,KAAKlC,OAClE,GACJ,EACI,EAA4C,SAAUiC,EAASe,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpD,KAAM0D,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9D,SAA0BwD,EAAExD,OAAOC,UAAY,WAAa,OAAO5F,IAAM,GAAImJ,EACvJ,SAASM,EAAKhE,GAAK,OAAO,SAAUiE,GAAK,OAAOjB,EAAK,CAAChD,EAAGiE,GAAK,CAAG,CACjE,SAASjB,EAAKkB,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,MAAOR,MACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARS,EAAG,GAASV,EAAE,UAAYU,EAAG,GAAKV,EAAE,YAAcC,EAAID,EAAE,YAAcC,EAAE3G,KAAK0G,GAAI,GAAKA,EAAElD,SAAWmD,EAAIA,EAAE3G,KAAK0G,EAAGU,EAAG,KAAK3D,KAAM,OAAOkD,EAE3J,OADID,EAAI,EAAGC,IAAGS,EAAK,CAAS,EAARA,EAAG,GAAQT,EAAElK,QACzB2K,EAAG,IACP,KAAK,EAAG,KAAK,EAAGT,EAAIS,EAAI,MACxB,KAAK,EAAc,OAAXP,EAAEC,QAAgB,CAAErK,MAAO2K,EAAG,GAAI3D,MAAM,GAChD,KAAK,EAAGoD,EAAEC,QAASJ,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKP,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,GAAMX,EAAIE,EAAEG,OAAML,EAAIA,EAAE3K,OAAS,GAAK2K,EAAEA,EAAE3K,OAAS,MAAkB,IAAVoL,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEP,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVO,EAAG,MAAcT,GAAMS,EAAG,GAAKT,EAAE,IAAMS,EAAG,GAAKT,EAAE,IAAM,CAAEE,EAAEC,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYP,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIS,EAAI,KAAO,CACpE,GAAIT,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIvF,KAAK0F,GAAK,KAAO,CAC9DT,EAAE,IAAIE,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBF,EAAKZ,EAAKxG,KAAKyF,EAASoB,EAC5B,CAAE,MAAOtE,GAAK6E,EAAK,CAAC,EAAG7E,GAAImE,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARS,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3K,MAAO2K,EAAG,GAAKA,EAAG,QAAK,EAAQ3D,MAAM,EAC9E,CACJ,EAUI,EAAS,IAAI,IAAO,eACpBkH,EAAkB,IAClBC,EAA8B,qBAC9BC,EAAkC,WAClC,SAASA,EAAiBrN,GACtBC,KAAKqN,oBAAsB,KAC3BrN,KAAKsN,iBAAmB,CAAC,EAEzBtN,KAAKqG,UAAOzB,EACZ5E,KAAKoB,UAAUrB,GACfC,KAAKsN,iBAAiB,UAAY,EAAY9C,mBAC9CxK,KAAKsN,iBAAiB,YAAc,EAAc7B,oBACtD,CAujBA,OAtjBA2B,EAAiB/M,UAAUC,cAAgB,WACvC,MAAO,aACX,EACA8M,EAAiB/M,UAAUkN,cAAgB,WACvC,OAAOvN,KAAKwN,mBAChB,EACAJ,EAAiB/M,UAAUe,UAAY,SAAUrB,GAC7C,IAAKA,EACD,OAAOC,KAAKmG,SAAW,CAAC,EAC5BnG,KAAKmG,QAAUlG,OAAOC,OAAO,CAAC,EAAGF,KAAKmG,QAASpG,GAC/C,IAAI0N,EAAkBzN,KAAKmG,QAAQsH,gBAcnC,OAXIA,IACAzN,KAAKsN,iBAAmB,EAAS,EAAS,CAAC,EAAGtN,KAAKsN,kBAAmBG,IAE1EzN,KAAK0N,SAAW1N,KAAKmG,QAAQlI,QACxB+B,KAAK0N,WACN1N,KAAK0N,UAAW,IAAIxP,EAAA,IAAgBC,cAExC6B,KAAK2N,aAAerF,QAAQD,UACS,oBAA1BrI,KAAK0N,SAAS,UACrB1N,KAAK2N,aAAe3N,KAAK0N,SAAS,WAE/B1N,KAAKmG,OAChB,EACAiH,EAAiB/M,UAAUyK,IAAM,WAE7B,OADA,EAAOxD,MAAM,uBACNtH,KAAK4N,oBAChB,EAEAR,EAAiB/M,UAAUwN,gCAAkC,SAAUC,GACnE,MAAO,GAAKX,EAA8BW,CAC9C,EACAV,EAAiB/M,UAAUuN,mBAAqB,WAS5C,OARA,EAAOtG,MAAM,0BACRtH,KAAKqN,qBAAwBrN,KAAKqN,oBAAoBU,YAKvD,EAAOzG,MAAM,6BAJb,EAAOA,MAAM,4BACbtH,KAAKqN,qBAAsB,QAAoBrN,KAAKgO,eAKjDhO,KAAKqN,mBAChB,EACAD,EAAiB/M,UAAU2N,WAAa,WACpC,OAAO,EAAUhO,UAAM,OAAQ,GAAQ,WACnC,IAAIiO,EAAMxG,EAAIpB,EAAM6H,EAAQC,EAASC,EAAgBC,EAAgBC,EACrE,OAAO,EAAYtO,MAAM,SAAU0H,GAC/B,OAAQA,EAAG2B,OACP,KAAK,EAGD,GAFA,EAAO/B,MAAM,kDACb2G,EAAOjO,KAAKuO,aACRN,IAASjO,KAAKkD,WAAW+K,KAAUjO,KAAKwO,aAExC,OADA,EAAOlH,MAAM,4DACN,CAAC,EAAcgB,QAAQD,QAAQ4F,IAI1C,GAFA,EAAO3G,MAAM,4DACbG,EAAKzH,KAAKqG,KAAMA,OAAc,IAAPoB,EAAgBpC,EAAA,GAAQgB,KAAOoB,GACjDpB,GAA+C,oBAAhCA,EAAKoI,uBACrB,MAAO,CAAC,EAAcnG,QAAQC,OAAO,yCAEzC,GAAOvI,KAAKkD,WAAW+K,KAASjO,KAAKwO,aAAe,MAAO,CAAC,EAAa,GACzE,EAAOlH,MAAM,+CACbI,EAAG2B,MAAQ,EACf,KAAK,EAED,OADA3B,EAAG6B,KAAKtF,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAaoC,EAAKqI,uBAC9B,KAAK,EAED,OADAR,EAASxG,EAAG4B,OACL,CAAC,EAAajD,EAAKsI,kBAC9B,KAAK,EAQD,OAPAR,EAAUzG,EAAG4B,OACb8E,EAAiBD,EAAQS,aACzBP,EAAiB,IAAI/F,SAAQ,SAAUyB,EAAKC,GACxCkE,EAAOW,eAAeT,GAAgB,SAAU9C,EAAK3K,GACjD,OAAO2K,EAAMtB,EAAIsB,GAAOvB,EAAIpJ,EAChC,GACJ,IACO,CAAC,EAAa0N,GACzB,KAAK,EAED,OADA3G,EAAG4B,OACI,CAAC,EAAa,GACzB,KAAK,EAID,OAHAgF,EAAQ5G,EAAG4B,OAEX,EAAOhC,MAAM,6CAA8CgH,GACpD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAcjI,EAAKoI,0BAE3C,GACJ,GACJ,EACArB,EAAiB/M,UAAUyO,sBAAwB,SAAUC,GACzD,EAAOzH,MAAM,iCACb,IAAI0H,EAAWD,EAAcC,SAAUC,EAAOF,EAAcE,KAAM7D,EAAQ2D,EAAc3D,MAAO8D,EAAcH,EAAcG,YACvH/D,EAAa4D,EAAc5D,WAE/BA,EAC2C,OAAvC,IAAItM,KAAKsM,GAAYgE,cACF,IAAbhE,EACAA,EACV,IAAIiE,EAAOpP,KAEX,OADA,EAAOsH,MAAM,2CACT6D,GAAa,IAAItM,MAAOC,WAExB,EAAOwI,MAAM,qBACNtH,KAAKqP,8BAA8B,CACtCL,SAAUA,EACV5D,MAAOA,EACP6D,KAAMA,EACNC,YAAaA,EACb/D,WAAYA,KAKZiE,EAAK9B,iBAAiB0B,IACqB,oBAApCI,EAAK9B,iBAAiB0B,IAC7B,EAAO1H,MAAM,wDACNtH,KAAKsP,0BAA0B,CAClCC,eAAgBH,EAAK9B,iBAAiB0B,GACtCA,SAAUA,EACVC,KAAMA,MAIV,EAAO3H,MAAM,mCAAoC0H,GACjDhP,KAAKR,QACE8I,QAAQC,OAAO,mCAGlC,EACA6E,EAAiB/M,UAAUiP,0BAA4B,SAAU7H,GAC7D,IAAIpF,EAAQrC,KACRuP,EAAiB9H,EAAG8H,eAAgBP,EAAWvH,EAAGuH,SAAUC,EAAOxH,EAAGwH,KACtEO,EAAe,IAGnB,OAAO,QAAyBD,EAAgB,GAAIC,GAC/C5G,MAAK,SAAUjI,GAEhB,OADA,EAAO2G,MAAM,sCAAuC3G,GAC7C0B,EAAMgN,8BAA8B,CACvCL,SAAUA,EACV5D,MAAOzK,EAAKyK,MACZ6D,KAAMA,EACNC,YAAavO,EAAKuO,YAClB/D,WAAYxK,EAAKwK,YAEzB,IACKE,OAAM,SAAUvG,GACjB,IAAI2K,EAA8B,kBAAN3K,GACmC,IAA3DA,EAAE4K,cAAcC,YAAY,gBAAiB7K,EAAEvG,QAKnD,OAJKkR,GACDpN,EAAM7C,QAEV,EAAO8H,MAAM,iCAAkCxC,GACxCwD,QAAQC,OAAO,uCAAyCzD,EACnE,GACJ,EACAsI,EAAiB/M,UAAU6C,WAAa,SAAU0M,GAC9C,IAAKA,EAED,OADA,EAAOtI,MAAM,wCACN,EAEX,EAAOA,MAAM,iCAAkCsI,GAC/C,IAAIC,EAAKhR,KAAKiR,MAIVC,EAAaH,EAAYG,WAC7B,OAAOA,EAAWjR,WAAa+Q,CACnC,EACAzC,EAAiB/M,UAAUmO,WAAa,WACpC,OAAOxO,KAAKgQ,yBAA2BnR,KAAKiR,KAChD,EACA1C,EAAiB/M,UAAU4P,wBAA0B,WACjD,OAAO,EAAUjQ,UAAM,OAAQ,GAAQ,WACnC,IAAIyH,EAAIqG,EAAgBrB,EAAQyD,EAAiBC,EAAYzI,EAAI0I,EAAeR,EAAaS,EAAuBC,EAChHjO,EAAQrC,KACZ,OAAO,EAAYA,MAAM,SAAUuQ,GAC/B,OAAQA,EAAGlH,OACP,KAAK,EAGD,OAFA,EAAO/B,MAAM,iCACbG,EAAKzH,KAAKmG,QAAS2H,EAAiBrG,EAAGqG,eAAgBrB,EAAShF,EAAGgF,OAAQyD,EAAkBzI,EAAGyI,gBAC5FA,EACO,CAAC,EAAc5H,QAAQC,OAAO,+DAEpCuF,EAIArB,GAIL/E,EAAK1H,KACE,CAAC,EAAaA,KAAKwQ,yBAJtB,EAAOlJ,MAAM,wDACN,CAAC,EAAcgB,QAAQC,OAAO,2DALrC,EAAOjB,MAAM,gEACN,CAAC,EAAcgB,QAAQC,OAAO,kEAQ7C,KAAK,EAuCD,OAtCA4H,EAAczI,EAAG+I,YAAcF,EAAGjH,OAClC8G,EAAgB9D,EAA4B,CACxCG,OAAQA,IAEZmD,OAAchL,EACVuL,GACAE,EAAwB,CACpBF,WAAYA,EACZ5D,OAAQ6D,GAEZR,GAAc,EAAAc,EAAA,GAAoBL,EAApB,KAGdC,EAAsB,WAAc,OAAO,EAAUjO,OAAO,OAAQ,GAAQ,WACxE,IAAIsO,EAAYN,EAAuBO,EACvC,OAAO,EAAY5Q,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EAAG,MAAO,CAAC,EAAa+G,EAAcS,KAAK,IAAIC,EAAA,EAAa,CACzDC,eAAgBjD,MAExB,KAAK,EAQD,OAPA6C,EAAclJ,EAAG6B,OAAQqH,WACzB3Q,KAAKyQ,YAAcE,EACnBN,EAAwB,CACpB9D,OAAQ6D,EACRD,WAAYQ,GAEhBC,GAAiC,EAAAF,EAAA,GAAoBL,GAC9C,CAAC,EAAcO,KAElC,GACJ,GAAI,EACJhB,EAAcU,IAAsBjF,OAAM,SAAUC,GAAO,OAAO,EAAUjJ,OAAO,OAAQ,GAAQ,WAC/F,OAAO,EAAYrC,MAAM,SAAUyH,GAC/B,MAAM6D,CACV,GACJ,GAAI,KAED,CAAC,EAActL,KAAKgR,iBAAiBpB,EAAa,SAAS,EAAO,MAChEhH,MAAK,SAAUmB,GAChB,OAAOA,CACX,IACKsB,OAAM,SAAUvG,GAAK,OAAO,EAAUzC,OAAO,OAAQ,GAAQ,WAC9D,IAAIiO,EACAjO,EAAQrC,KACZ,OAAO,EAAYA,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACD,MAAiB,8BAAXvE,EAAEiI,MACJjI,EAAEmM,UAAY,aAAed,EAAa,eAAwB,CAAC,EAAa,IACpF,EAAO7I,MAAM,oCACN,CAAC,EAAatH,KAAKkR,2BAC9B,KAAK,EA0BD,OAzBAzJ,EAAG6B,OACHgH,EAAsB,WAAc,OAAO,EAAUjO,OAAO,OAAQ,GAAQ,WACxE,IAAIsO,EAAYN,EAAuBO,EACvC,OAAO,EAAY5Q,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EAAG,MAAO,CAAC,EAAa+G,EAAcS,KAAK,IAAIC,EAAA,EAAa,CACzDC,eAAgBjD,MAExB,KAAK,EAQD,OAPA6C,EAAclJ,EAAG6B,OAAQqH,WACzB3Q,KAAKyQ,YAAcE,EACnBN,EAAwB,CACpB9D,OAAQ6D,EACRD,WAAYQ,GAEhBC,GAAiC,EAAAF,EAAA,GAAoBL,GAC9C,CAAC,EAAcO,KAElC,GACJ,GAAI,EACJhB,EAAcU,IAAsBjF,OAAM,SAAUC,GAAO,OAAO,EAAUjJ,OAAO,OAAQ,GAAQ,WAC/F,OAAO,EAAYrC,MAAM,SAAUyH,GAC/B,MAAM6D,CACV,GACJ,GAAI,IACG,CAAC,EAActL,KAAKgR,iBAAiBpB,EAAa,SAAS,EAAO,OAC7E,KAAK,EAAG,MAAO,CAAC,EAAc9K,GAEtC,GACJ,GAAI,KAEpB,GACJ,GACJ,EACAsI,EAAiB/M,UAAUgP,8BAAgC,SAAU8B,GACjE,IAAInC,EAAWmC,EAAOnC,SAAU5D,EAAQ+F,EAAO/F,MAAO8D,EAAciC,EAAOjC,YACvEkC,EAAU,CACVC,OAAQ,sBACRC,SAAU,qBACVC,OAAQ,iBACRC,UAAW,kCAGXC,EAASL,EAAQpC,IAAaA,EAClC,IAAKyC,EACD,OAAOnJ,QAAQC,OAAO,yCAE1B,IAAImJ,EAAS,CAAC,EACdA,EAAOD,GAAUrG,EACjB,IAAI3D,EAAKzH,KAAKmG,QAAS2H,EAAiBrG,EAAGqG,eAAgBrB,EAAShF,EAAGgF,OACvE,IAAKqB,EAED,OADA,EAAOxG,MAAM,+CACNgB,QAAQC,OAAO,+CAE1B,IAAKkE,EAED,OADA,EAAOnF,MAAM,wDACNgB,QAAQC,OAAO,wDAE1B,IAAI6H,EAAgB9D,EAA4B,CAC5CG,OAAQA,IAERmD,OAAchL,EAClB,GAAIsK,EAAa,CACb,IAAImB,EAAwB,CACxBF,WAAYjB,EACZwC,OAAQA,EACRnF,OAAQ6D,GAEZR,GAAc,EAAAc,EAAA,GAAoBL,EAApB,EAClB,KACK,CACGA,EAAwB,CACxBqB,OAAQA,EACR5D,eAAgBA,EAChBvB,OAAQ6D,GAEZR,GAAc,EAAA+B,EAAA,GAAwBtB,EAAxB,EAClB,CACA,OAAOrQ,KAAKgR,iBAAiBpB,EAAa,aAAa,EAAMuB,EACjE,EACA/D,EAAiB/M,UAAUuR,2BAA6B,SAAUzD,GAC9D,IAAI9L,EAAQrC,KACZ,EAAOsH,MAAM,gCACb,IAAIuK,EAAU1D,EAAQ2D,aAAaC,cAC/BtK,EAAKzH,KAAKmG,QAASsG,EAAShF,EAAGgF,OAAQuF,EAAavK,EAAGuK,WAAYlE,EAAiBrG,EAAGqG,eAC3F,IAAKA,EAED,OADA,EAAOxG,MAAM,+CACNgB,QAAQC,OAAO,+CAE1B,IAAKkE,EAED,OADA,EAAOnF,MAAM,wDACNgB,QAAQC,OAAO,wDAE1B,IAAI7I,EAAM,eAAiB+M,EAAS,kBAAoBuF,EACpDN,EAAS,CAAC,EACdA,EAAOhS,GAAOmS,EACd,IAAIzB,EAAgB9D,EAA4B,CAC5CG,OAAQA,IAQR6D,EAAsB,WAAc,OAAO,EAAUjO,OAAO,OAAQ,GAAQ,WAC5E,IAAI4P,EAAiBC,EAAgCvB,EAAYlJ,EAAIC,EAAIyK,EAAaC,EAAYC,EAAWC,EAAcC,EAC3H,OAAO,EAAYvS,MAAM,SAAUuQ,GAC/B,OAAQA,EAAGlH,OACP,KAAK,EAAG,MAAO,CAAC,EAAarJ,KAAKwQ,uBAClC,KAAK,EAED,OADAyB,EAAkB1B,EAAGjH,OACf2I,EAAwB,CAAC,EAAa,GACrC,CAAC,EAAa7B,EAAcS,KAAK,IAAIC,EAAA,EAAa,CACjDC,eAAgBjD,EAChB0E,OAAQd,MAEpB,KAAK,EACDf,EAAcJ,EAAGjH,OAAQqH,WACzBuB,EAAiCvB,EACjCJ,EAAGlH,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa+G,EAAcS,KAAK,IAAI4B,EAAA,EAAiC,CAC7E9B,WAAYsB,GAAmBC,EAC/BM,OAAQd,MAEhB,KAAK,EAGD,OAFAjK,EAAK8I,EAAGjH,OAAQ5B,EAAKD,EAAGjB,YAAa2L,EAAczK,EAAGyK,YAAaC,EAAa1K,EAAG0K,WAAYC,EAAY3K,EAAG2K,UAAWC,EAAe5K,EAAG4K,aAAcC,EAAoB9K,EAAGkJ,WAChL3Q,KAAKyQ,YAAc8B,EACdN,GAGL,EAAO3K,MAAM,sBAAwB2K,EAAkB,+CACnDA,IAAoBM,GACpB,EAAOjL,MAAM,sBAAwB2K,EAAkB,oCAGpD,CAAC,EAAajS,KAAKkR,2BARG,CAAC,EAAa,GAS/C,KAAK,EAEDX,EAAGjH,OACHiH,EAAGlH,MAAQ,EACf,KAAK,EAEL,MAAO,CAAC,EAAc,CACdqJ,YAAaP,EACbQ,gBAAiBN,EACjBO,aAAcN,EACdvC,WAAYqC,EACZjC,WAAYoC,IAG5B,GACJ,GAAI,EACA3C,EAAcU,IAAsBjF,OAAM,SAAUC,GAAO,OAAO,EAAUjJ,OAAO,OAAQ,GAAQ,WACnG,OAAO,EAAYrC,MAAM,SAAUyH,GAC/B,MAAM6D,CACV,GACJ,GAAI,IACJ,OAAOtL,KAAKgR,iBAAiBpB,EAAa,YAAY,EAAM,KAChE,EACAxC,EAAiB/M,UAAU2Q,iBAAmB,SAAUpB,EAAaiD,EAAQC,EAAeC,GACxF,IAAI1Q,EAAQrC,KACRoP,EAAOpP,KACX,OAAO,IAAIsI,SAAQ,SAAUyB,EAAKC,GAC9B4F,EACKhH,MAAK,SAAUgH,GAAe,OAAO,EAAUvN,OAAO,OAAQ,GAAQ,WACvE,IAAI4M,EAAMD,EAAU5D,EAAOD,EAAY+D,EACvC,OAAO,EAAYlP,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EASD,GARA,EAAO/B,MAAM,gCAAiCsI,GAC1C5P,KAAKyQ,cAAgBb,EAAYO,aACjCP,EAAY,cAAgB5P,KAAKyQ,aAErCrB,EAAKb,aAAeqB,EACpBR,EAAKb,aAAauE,cAAgBA,EAClC1D,EAAK5B,oBAAsBqF,EAC3BzD,EAAKY,yBAA0B,IAAInR,MAAOC,UAAYoO,EACvC,cAAX2F,EAAwB,CACxB5D,EAAOhP,OAAOC,OAAO,CAAE8S,GAAIhT,KAAKuO,aAAa4B,YAAc4C,EAAK9D,MAChED,EAAW+D,EAAK/D,SAAU5D,EAAQ2H,EAAK3H,MAAOD,EAAa4H,EAAK5H,WAAY+D,EAAc6D,EAAK7D,YAC/F,IACIlP,KAAK0N,SAAS/N,QAAQ,4BAA6BuB,KAAKC,UAAU,CAC9D6N,SAAUA,EACV5D,MAAOA,EACP6D,KAAMA,EACN9D,WAAYA,EACZ+D,YAAaA,IAErB,CACA,MAAOpK,GACH,EAAOwC,MAAM,iDAAkDxC,EACnE,CACJ,CACA,MAAiB,UAAX+N,EAA4B,CAAC,EAAa,GACzC,CAAC,EAAa7S,KAAKiT,oBAAoBrD,EAAYO,aAC9D,KAAK,EACD1I,EAAG6B,OACH7B,EAAG4B,MAAQ,EACf,KAAK,EAED,OADAU,EAAIqF,EAAKb,cACF,CAAC,GAEpB,GACJ,GAAI,IACClD,OAAM,SAAUC,GACjB,GAAIA,EAIA,OAHA,EAAOhE,MAAM,6BAA8BsI,GAC3C,EAAOtI,MAAM,4BAA6BgE,QAC1CtB,EAAIsB,EAGZ,GACJ,GACJ,EACA8B,EAAiB/M,UAAU6S,IAAM,SAAU/B,EAAQ0B,GAC/C,MAAe,YAAXA,EACO7S,KAAK4R,2BAA2BT,GAEvB,eAAX0B,EACE7S,KAAKqP,8BAA8B8B,GAE1B,UAAX0B,EACE7S,KAAKiQ,2BAGZ,EAAO3I,MAAM,+CACNgB,QAAQC,OAAO,kBAE9B,EACA6E,EAAiB/M,UAAUb,MAAQ,WAC/B,OAAO,EAAUQ,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAUyH,GAK/B,OAJAzH,KAAKuO,aAAe,KACpBvO,KAAKwN,oBAAsB,KAC3B,EAAOlG,MAAM,mDACbtH,KAAK0N,SAAS9N,WAAW,6BAClB,CAAC,EACZ,GACJ,GACJ,EAEAwN,EAAiB/M,UAAUmQ,oBAAsB,WAC7C,OAAO,EAAUxQ,UAAM,OAAQ,GAAQ,WACnC,IAAI8N,EAAgBqF,EACpB,OAAO,EAAYnT,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACDyE,EAAiB9N,KAAKmG,QAAQ2H,eAC9BrG,EAAG4B,MAAQ,EACf,KAAK,EAED,OADA5B,EAAG8B,KAAKtF,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAajE,KAAK2N,cAC9B,KAAK,EAED,OADAlG,EAAG6B,OACI,CAAC,EAActJ,KAAK0N,SAASjO,QAAQO,KAAK6N,gCAAgCC,KACrF,KAAK,EAGD,OAFAqF,EAAM1L,EAAG6B,OACT,EAAOhC,MAAM,4CAA6C6L,GACnD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACA/F,EAAiB/M,UAAU4S,oBAAsB,SAAU9C,GACvD,OAAO,EAAUnQ,UAAM,OAAQ,GAAQ,WACnC,IAAI8N,EAAgBsF,EACpB,OAAO,EAAYpT,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACDyE,EAAiB9N,KAAKmG,QAAQ2H,eAC9BrG,EAAG4B,MAAQ,EACf,KAAK,EAED,OADA5B,EAAG8B,KAAKtF,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAajE,KAAK2N,cAC9B,KAAK,EAGD,OAFAlG,EAAG6B,OACHtJ,KAAK0N,SAAS/N,QAAQK,KAAK6N,gCAAgCC,GAAiBqC,GACrE,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAiD,EAAM3L,EAAG6B,OACT,EAAOhC,MAAM,mCAAoC8L,GAC1C,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACAhG,EAAiB/M,UAAU6Q,uBAAyB,WAChD,OAAO,EAAUlR,UAAM,OAAQ,GAAQ,WACnC,IAAI8N,EACJ,OAAO,EAAY9N,MAAM,SAAUyH,GAI/B,OAHAqG,EAAiB9N,KAAKmG,QAAQ2H,eAC9B,EAAOxG,MAAM,YAActH,KAAK6N,gCAAgCC,GAAkB,iBAClF9N,KAAK0N,SAAS9N,WAAWI,KAAK6N,gCAAgCC,IACvD,CAAC,EACZ,GACJ,GACJ,EAMAV,EAAiB/M,UAAUgT,MAAQ,SAAUzD,GACzC,MAAO,CACH8C,YAAa9C,EAAY8C,YACzBE,aAAchD,EAAYgD,aAC1BD,gBAAiB/C,EAAY+C,gBAC7BxC,WAAYP,EAAYO,WACxB2C,cAAelD,EAAYkD,cAEnC,EACO1F,CACX,CAjkBqC,GAmkB1B5G,EAAc,IAAI4G,EAAiB,MAC9C/H,EAAA,GAAQC,SAASkB,E,sECnnBb2F,EAAsC,WAStC,OARAA,EAAWlM,OAAOC,QAAU,SAASgJ,GACjC,IAAK,IAAIkD,EAAG5N,EAAI,EAAGiH,EAAI4G,UAAU9N,OAAQC,EAAIiH,EAAGjH,IAE5C,IAAK,IAAIsD,KADTsK,EAAIC,UAAU7N,GACA4N,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,KACzDoH,EAAEpH,GAAKsK,EAAEtK,IAEjB,OAAOoH,CACX,EACOiD,EAAStD,MAAM7I,KAAMqM,UAChC,EACI9G,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYf,EAA3BtG,EAAIkH,EAAEnD,KAAKiD,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAIrH,EAAEuH,QAAQC,KAAMF,EAAG7B,KAAK4B,EAAE7G,MACxE,CACA,MAAOuB,GAASuE,EAAI,CAAEvE,MAAOA,EAAS,CACtC,QACI,IACQsF,IAAMA,EAAEG,OAASN,EAAIlH,EAAE,YAAYkH,EAAEnD,KAAK/D,EAClD,CACA,QAAU,GAAIsG,EAAG,MAAMA,EAAEvE,KAAO,CACpC,CACA,OAAOuF,CACX,EACIwN,EAAsC,WACtC,IAAK,IAAIxN,EAAK,GAAItH,EAAI,EAAGA,EAAI6N,UAAU9N,OAAQC,IAAKsH,EAAKA,EAAGyN,OAAOhO,EAAO8G,UAAU7N,KACpF,OAAOsH,CACX,EAEIjG,EAAS,IAAI,IAAO,OACpB2T,EAAoC,qBAAX7N,QACH,oBAAfA,OAAO8N,IACZ9N,OAAO8N,IAAI,mBACX,oBACN,SAASC,EAAiB3O,GACtB,YAAiCH,IAA1BG,EAAS4O,YACpB,CACA,IAAIC,EAA0B,WAC1B,SAASA,EAAS7G,GACd/M,KAAK6T,UAAY,GACjB7T,KAAK8T,SAAW,GAChB9T,KAAK+T,kBAAoB,CACrB,OACA,OACA,MACA,YACA,eACA,SACA,UACA,KACA,MAEJ/T,KAAK+M,KAAOA,CAChB,CAsHA,OApHA6G,EAASvT,UAAU2T,OAAS,SAAUC,EAASC,GAC3C,GAAID,aAAmBE,OAAQ,CAC3B,IAAIC,EAAYpU,KAAK8T,SAASO,MAAK,SAAU5M,GACzC,IAAI6M,EAAU7M,EAAG6M,QACjB,OAAOA,EAAQzB,SAAWoB,EAAQpB,MACtC,IACA,IAAKuB,EAED,YADAvU,EAAOwB,KAAK,oBAAsB4S,GAGtCjU,KAAK8T,SAAWR,EAAStT,KAAK8T,SAASS,QAAO,SAAUC,GAAK,OAAOA,IAAMJ,CAAW,IACzF,KACK,CACD,IAAIK,EAASzU,KAAK6T,UAAUI,GAC5B,IAAKQ,EAED,YADA5U,EAAOwB,KAAK,oBAAsB4S,GAGtCjU,KAAK6T,UAAUI,GAAWX,EAASmB,EAAOF,QAAO,SAAU9M,GACvD,IAAI1C,EAAW0C,EAAG1C,SAClB,OAAOA,IAAamP,CACxB,IACJ,CACJ,EACAN,EAASvT,UAAUqU,SAAW,SAAUT,EAASU,EAAS9B,EAAQ+B,GAE9D,QADe,IAAX/B,IAAqBA,EAAS,IAC9B7S,KAAK+T,kBAAkB7P,QAAQ+P,IAAY,EAAG,CAC9C,IAAIY,EAAYD,IAAcpB,EACzBqB,GACDhV,EAAOwB,KAAK,YAAc4S,EAAU,uEAE5C,CACA,IAAIa,EAAU,CACVb,QAASA,EACTU,QAASxI,EAAS,CAAC,EAAGwI,GACtB9B,OAAQA,EACRkC,YAAa,IAEjB,IACI/U,KAAKgV,aAAaF,EACtB,CACA,MAAOhQ,GACHjF,EAAOU,MAAMuE,EACjB,CACJ,EACA8O,EAASvT,UAAU4U,OAAS,SAAUhB,EAASlP,EAAUmQ,GACrD,IAEIC,EAFA9S,EAAQrC,KAIZ,QAHqB,IAAjBkV,IAA2BA,EAAe,UAG1CxB,EAAiB3O,GACjBlF,EAAOwB,KAAK,kEACZ8T,EAAKpQ,EAAS4O,aAAanR,KAAKuC,OAE/B,IAAwB,oBAAbA,EACZ,MAAM,IAAIqQ,MAAM,+BAGhBD,EAAKpQ,CACT,CACA,GAAIkP,aAAmBE,OACnBnU,KAAK8T,SAAS7P,KAAK,CACfqQ,QAASL,EACTlP,SAAUoQ,QAGb,CACD,IAAIV,EAASzU,KAAK6T,UAAUI,GACvBQ,IACDA,EAAS,GACTzU,KAAK6T,UAAUI,GAAWQ,GAE9BA,EAAOxQ,KAAK,CACR8I,KAAMmI,EACNnQ,SAAUoQ,GAElB,CACA,OAAO,WACH9S,EAAM2R,OAAOC,EAASkB,EAC1B,CACJ,EACAvB,EAASvT,UAAU2U,aAAe,SAAUF,GACxC,IAAIb,EAAUa,EAAQb,QAASU,EAAUG,EAAQH,QAC7CF,EAASzU,KAAK6T,UAAUI,GAY5B,GAXIQ,GACAA,EAAOjN,SAAQ,SAAU0M,GACrBrU,EAAOyH,MAAM,kBAAoB2M,EAAU,SAAUU,GACrD,IACIT,EAASnP,SAAS+P,EACtB,CACA,MAAOhQ,GACHjF,EAAOU,MAAMuE,EACjB,CACJ,IAEA9E,KAAK8T,SAASvV,OAAS,EAAG,CAC1B,IAAKoW,EAAQ1D,QAET,YADApR,EAAOwB,KAAK,yDAGhB,IAAIgU,EAAeV,EAAQ1D,QAC3BjR,KAAK8T,SAAStM,SAAQ,SAAU8M,GAC5B,IAAIgB,EAAQD,EAAaC,MAAMhB,EAAQA,SACvC,GAAIgB,EAAO,CACP,IAAI7N,EAAKlC,EAAO+P,GAAQC,EAAS9N,EAAG+N,MAAM,GACtCC,EAAqBtJ,EAASA,EAAS,CAAC,EAAG2I,GAAU,CAAEC,YAAaQ,IACxE,IACIjB,EAAQvP,SAAS0Q,EACrB,CACA,MAAO3Q,GACHjF,EAAOU,MAAMuE,EACjB,CACJ,CACJ,GACJ,CACJ,EACO8O,CACX,CAvI6B,GA4IlB8B,EAAM,IAAI9B,EAAS,c,wGCpL9B,IAAI+B,EAAW,CACX,CAAE3U,KAAM,aAAc4U,IAAK,OAC3B,CAAE5U,KAAM,YAAa4U,IAAK,QAC1B,CAAE5U,KAAM,kBAAmB4U,IAAK,MAChC,CAAE5U,KAAM,WAAY4U,IAAK,OACzB,CAAE5U,KAAM,WAAY4U,IAAK,OACzB,CAAE5U,KAAM,YAAa4U,IAAK,OAC1B,CAAE5U,KAAM,YAAa4U,IAAK,QAC1B,CAAE5U,KAAM,gBAAiB4U,IAAK,OAC9B,CAAE5U,KAAM,gBAAiB4U,IAAK,QAC9B,CAAE5U,KAAM,aAAc4U,IAAK,QAC3B,CAAE5U,KAAM,YAAa4U,IAAK,OAC1B,CAAE5U,KAAM,YAAa4U,IAAK,OAC1B,CAAE5U,KAAM,eAAgB4U,IAAK,OAC7B,CAAE5U,KAAM,eAAgB4U,IAAK,OAC7B,CAAE5U,KAAM,aAAc4U,IAAK,OAC3B,CAAE5U,KAAM,aAAc4U,IAAK,QAC3B,CAAE5U,KAAM,aAAc4U,IAAK,QAC3B,CAAE5U,KAAM,aAAc4U,IAAK,OAC3B,CAAE5U,KAAM,aAAc4U,IAAK,SAC3B,CAAE5U,KAAM,YAAa4U,IAAK,OAC1B,CAAE5U,KAAM,gBAAiB4U,IAAK,OAC9B,CAAE5U,KAAM,aAAc4U,IAAK,OAC3B,CAAE5U,KAAM,aAAc4U,IAAK,QAC3B,CAAE5U,KAAM,aAAc4U,IAAK,QAC3B,CAAE5U,KAAM,mBAAoB4U,IAAK,QACjC,CAAE5U,KAAM,kBAAmB4U,IAAK,OAChC,CAAE5U,KAAM,mBAAoB4U,IAAK,MACjC,CAAE5U,KAAM,kBAAmB4U,IAAK,OAChC,CAAE5U,KAAM,+BAAgC4U,IAAK,OAC7C,CAAE5U,KAAM,oBAAqB4U,IAAK,OAClC,CAAE5U,KAAM,qBAAsB4U,IAAK,MACnC,CAAE5U,KAAM,sBAAuB4U,IAAK,OACpC,CAAE5U,KAAM,kBAAmB4U,IAAK,OAChC,CAAE5U,KAAM,2BAA4B4U,IAAK,OACzC,CAAE5U,KAAM,qBAAsB4U,IAAK,OACnC,CAAE5U,KAAM,2BAA4B4U,IAAK,OACzC,CAAE5U,KAAM,2BAA4B4U,IAAK,QACzC,CAAE5U,KAAM,iBAAkB4U,IAAK,QAExBC,EAAU,SAAUC,GAE3B,YADY,IAARA,IAAkBA,EAAM,CAAC,GACM,IAA5B7V,OAAO8D,KAAK+R,GAAKvX,MAC5B,EACWwX,EAAc,SAAUC,EAAMC,EAAOC,GAC5C,IAAKF,IAASA,EAAKxR,KACf,OAAO,EAEX,IAAI2R,EAAOD,GAAe,SAARA,GAAkB,EAAI,EAkBxC,OAjBAF,EAAKxR,MAAK,SAAUC,EAAG/C,GACnB,IAAI0U,EAAQ3R,EAAEwR,GACVI,EAAQ3U,EAAEuU,GACd,MAAqB,qBAAVI,EACiB,qBAAVD,EAAwB,EAAI,EAAID,EAE7B,qBAAVC,GAGPA,EAAQC,GAFA,EAAIF,EAKZC,EAAQC,EACD,EAAIF,EAER,CACX,KACO,CACX,EACWG,EAAuB,SAAUR,EAAKS,GAC7C,IAAIjY,EAAM2B,OAAOC,OAAO,CAAC,EAAG4V,GAW5B,OAVIS,IACoB,kBAATA,SACAjY,EAAIiY,GAGXA,EAAK/O,SAAQ,SAAUgP,UACZlY,EAAIkY,EACf,KAGDlY,CACX,EACWmY,EAAwB,SAAUC,EAAUC,QACpC,IAAXA,IAAqBA,EAAS,4BAClC,IAAI5J,EAAO2J,EAAShH,cAChBkH,EAAWjB,EAASpB,QAAO,SAAUsC,GAAQ,OAAO9J,EAAK+J,SAAS,IAAMD,EAAKjB,IAAM,IACvF,OAAOgB,EAASrY,OAAS,EAAIqY,EAAS,GAAG5V,KAAO2V,CACpD,EACWI,EAAa,SAAUC,GAC9B,IAAIhW,EAAOgW,EAAYtH,cACvB,QAAI1O,EAAKiW,WAAW,WAGZ,qBAAuBjW,GAC3B,oBAAsBA,GACtB,mBAAqBA,EAC7B,EACWkW,EAAuB,WAG9B,IAFA,IAAIvO,EAAS,GACTwO,EAAQ,iEACH3Y,EAAI,GAAIA,EAAI,EAAGA,GAAK,EACzBmK,GAAUwO,EAAM/X,KAAKC,MAAMD,KAAKgY,SAAWD,EAAM5Y,SAErD,OAAOoK,CACX,EACW0O,EAAsB,SAAUC,GACvC,GAAIA,EAAQC,WACR,OAAOD,EACX,IAAIvJ,GAAY,EACZyJ,GAAa,EACbC,GAAe,EACf9O,EAAS2O,EAAQ1O,MAAK,SAAUjI,GAGhC,OAFA8W,GAAe,EACf1J,GAAY,EACLpN,CACX,IAAG,SAAUmE,GAGT,MAFA0S,GAAa,EACbzJ,GAAY,EACNjJ,CACV,IAIA,OAHA6D,EAAO8O,aAAe,WAAc,OAAOA,CAAc,EACzD9O,EAAOoF,UAAY,WAAc,OAAOA,CAAW,EACnDpF,EAAO6O,WAAa,WAAc,OAAOA,CAAY,EAC9C7O,CACX,EACW+O,EAAc,WACrB,GAAoB,qBAATC,KACP,OAAO,EAEX,IAAIC,EAAcD,KAClB,MAAgD,qBAAlCC,EAAYC,mBACtBF,gBAAgBC,EAAYC,iBACpC,EACWC,EAAgB,WACvB,IAAI7N,EAA8B,qBAAXE,QAAqD,qBAApBA,OAAO4N,SAC3DC,EAA4B,qBAAZC,SACI,MAApBA,QAAQC,UACiB,MAAzBD,QAAQC,SAASC,KACrB,MAAO,CACHlO,UAAWA,EACX+N,OAAQA,EAEhB,EAOWI,EAAyB,SAAUtC,EAAKuC,EAAoBC,GAGnE,QAF2B,IAAvBD,IAAiCA,EAAqB,SAC7B,IAAzBC,IAAmCA,EAAuB,KACzDC,EAAezC,GAChB,OAAOA,EACX,IAAIxX,EAAM,CAAC,EACX,IAAK,IAAIoB,KAAOoW,EACZ,GAAIA,EAAI/T,eAAerC,GAAM,CACzB,IAAI8Y,EAAgBH,EAAmBI,SAAS/Y,GAC1CA,EACAA,EAAI,GAAGgQ,cAAgBhQ,EAAI8V,MAAM,GACvClX,EAAIka,GAAiBF,EAAqBG,SAAS/Y,GAC7CoW,EAAIpW,GACJ0Y,EAAuBtC,EAAIpW,GAAM2Y,EAAoBC,EAC/D,CAEJ,OAAOha,CACX,EAOWoa,EAAyB,SAAU5C,EAAKuC,EAAoBC,GAGnE,QAF2B,IAAvBD,IAAiCA,EAAqB,SAC7B,IAAzBC,IAAmCA,EAAuB,KACzDC,EAAezC,GAChB,OAAOA,EACX,IAAIxX,EAAM,CAAC,EACX,IAAK,IAAIoB,KAAOoW,EACZ,GAAIA,EAAI/T,eAAerC,GAAM,CACzB,IAAIiZ,EAAiBN,EAAmBI,SAAS/Y,GAC3CA,EACAA,EAAI,GAAGkZ,cAAgBlZ,EAAI8V,MAAM,GACvClX,EAAIqa,GAAkBL,EAAqBG,SAAS/Y,GAC9CoW,EAAIpW,GACJgZ,EAAuB5C,EAAIpW,GAAM2Y,EAAoBC,EAC/D,CAEJ,OAAOha,CACX,EAMWia,EAAiB,SAAUzC,GAClC,OAAQA,aAAe7V,UACjB6V,aAAejU,UACfiU,aAAe+C,aACf/C,aAAe7W,WACf6W,aAAegD,WACfhD,aAAeiD,QACzB,GAIwB,WACpB,SAASC,IACT,CACAA,EAAGnD,QAAUA,EACbmD,EAAGjD,YAAcA,EACjBiD,EAAG1C,qBAAuBA,EAC1B0C,EAAGvC,sBAAwBA,EAC3BuC,EAAGjC,WAAaA,EAChBiC,EAAG9B,qBAAuBA,EAC1B8B,EAAG3B,oBAAsBA,EACzB2B,EAAGtB,YAAcA,EACjBsB,EAAGlB,cAAgBA,EACnBkB,EAAGZ,uBAAyBA,EAC5BY,EAAGN,uBAAyBA,EAC5BM,EAAGT,eAAiBA,CAExB,EAhBuB,E,uDC9MvB,ICsCWU,EDnCPC,EAA0B,UCJ1BC,EAAsC,SAAS3T,GAC/C,IAAI4G,EAAsB,oBAAXzG,QAAyBA,OAAOC,SAAUF,EAAI0G,GAAK5G,EAAE4G,GAAI5N,EAAI,EAC5E,GAAIkH,EAAG,OAAOA,EAAEnD,KAAKiD,GACrB,GAAIA,GAAyB,kBAAbA,EAAEjH,OAAqB,MAAO,CAC1CwH,KAAM,WAEF,OADIP,GAAKhH,GAAKgH,EAAEjH,SAAQiH,OAAI,GACrB,CAAExG,MAAOwG,GAAKA,EAAEhH,KAAMwH,MAAOR,EACxC,GAEJ,MAAM,IAAIoE,UAAUwC,EAAI,0BAA4B,kCACxD,EACI7G,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYf,EAA3BtG,EAAIkH,EAAEnD,KAAKiD,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAIrH,EAAEuH,QAAQC,KAAMF,EAAG7B,KAAK4B,EAAE7G,MACxE,CACA,MAAOuB,GAASuE,EAAI,CAAEvE,MAAOA,EAAS,CACtC,QACI,IACQsF,IAAMA,EAAEG,OAASN,EAAIlH,EAAE,YAAYkH,EAAEnD,KAAK/D,EAClD,CACA,QAAU,GAAIsG,EAAG,MAAMA,EAAEvE,KAAO,CACpC,CACA,OAAOuF,CACX,EACIwN,EAAsC,WACtC,IAAK,IAAIxN,EAAK,GAAItH,EAAI,EAAGA,EAAI6N,UAAU9N,OAAQC,IAAKsH,EAAKA,EAAGyN,OAAOhO,EAAO8G,UAAU7N,KACpF,OAAOsH,CACX,EAEIsT,EAAa,CACbC,QAAS,EACTC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,IAGX,SAAWR,GACPA,EAAS,SAAW,QACpBA,EAAS,SAAW,QACpBA,EAAS,QAAU,OACnBA,EAAS,QAAU,OACnBA,EAAS,WAAa,SACzB,EAND,CAMGA,IAAaA,EAAW,CAAC,IAK5B,IAAIS,EAA+B,WAK/B,SAASA,EAAc3M,EAAM4M,QACX,IAAVA,IAAoBA,EAAQV,EAASO,MACzCxZ,KAAK+M,KAAOA,EACZ/M,KAAK2Z,MAAQA,EACb3Z,KAAK4Z,YAAc,EACvB,CA8KA,OA7KAF,EAAcrZ,UAAUwZ,SAAW,SAAUpU,GACzC,OAAOA,EAAI,GAAK,IAAMA,EAAI,GAAKA,CACnC,EACAiU,EAAcrZ,UAAUyZ,IAAM,WAC1B,IAAIC,EAAK,IAAIlb,KACb,MAAQ,CAACmB,KAAK6Z,SAASE,EAAGC,cAAeha,KAAK6Z,SAASE,EAAGE,eAAeC,KAAK,KAC1E,IACAH,EAAGI,iBACX,EACAT,EAAcrZ,UAAUe,UAAY,SAAUrB,GAC1C,OAAKA,GAELC,KAAKmG,QAAUpG,EACRC,KAAKmG,SAFDnG,KAAKmG,OAGpB,EAQAuT,EAAcrZ,UAAU+Z,KAAO,SAAUpZ,GAGrC,IAFA,IAAImS,EAAK1L,EACL4S,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,EAAK,GAAKjO,UAAUiO,GAE5B,IAAIC,EAAoBva,KAAK2Z,MACzBD,EAAcc,YACdD,EAAoBb,EAAcc,WAEhB,qBAAXrQ,QAA0BA,OAAOqQ,YACxCD,EAAoBpQ,OAAOqQ,WAE/B,IAAIC,EAAerB,EAAWmB,GAC1BG,EAAatB,EAAWpY,GAC5B,GAAM0Z,GAAcD,EAApB,CAIA,IAAI/V,EAAMiW,QAAQjW,IAAIlC,KAAKmY,SACvB3Z,IAASiY,EAASQ,OAASkB,QAAQpa,QACnCmE,EAAMiW,QAAQpa,MAAMiC,KAAKmY,UAEzB3Z,IAASiY,EAASO,MAAQmB,QAAQtZ,OAClCqD,EAAMiW,QAAQtZ,KAAKmB,KAAKmY,UAE5B,IAAIC,EAAS,IAAM5Z,EAAO,KAAOhB,KAAK8Z,MAAQ,IAAM9Z,KAAK+M,KACrDkE,EAAU,GACd,GAAmB,IAAfoJ,EAAI9b,QAAkC,kBAAX8b,EAAI,GAC/BpJ,EAAU2J,EAAS,MAAQP,EAAI,GAC/B3V,EAAIuM,QAEH,GAAmB,IAAfoJ,EAAI9b,OACT0S,EAAU2J,EAAS,IAAMP,EAAI,GAC7B3V,EAAIkW,EAAQP,EAAI,SAEf,GAAsB,kBAAXA,EAAI,GAAiB,CACjC,IAAIvE,EAAMuE,EAAI7E,MAAM,GACD,IAAfM,EAAIvX,SACJuX,EAAMA,EAAI,IAEd7E,EAAU2J,EAAS,MAAQP,EAAI,GAAK,IAAMvE,EAC1CpR,EAAIkW,EAAS,MAAQP,EAAI,GAAIvE,EACjC,MAEI7E,EAAU2J,EAAS,IAAMP,EACzB3V,EAAIkW,EAAQP,GAEhB,IACI,IAAK,IAAI3S,EAAKyR,EAASnZ,KAAK4Z,aAAcrJ,EAAK7I,EAAG3B,QAASwK,EAAGvK,KAAMuK,EAAK7I,EAAG3B,OAAQ,CAChF,IAAI8U,EAAStK,EAAGvR,MACZ8b,EAAW,CAAE7J,QAASA,EAASrQ,UAAW/B,KAAKiR,OACnD+K,EAAOE,SAAS,CAACD,GACrB,CACJ,CACA,MAAOE,GAAS7H,EAAM,CAAE5S,MAAOya,EAAS,CACxC,QACI,IACQzK,IAAOA,EAAGvK,OAASyB,EAAKC,EAAGuT,SAASxT,EAAGlF,KAAKmF,EACpD,CACA,QAAU,GAAIyL,EAAK,MAAMA,EAAI5S,KAAO,CACxC,CA3CA,CA4CJ,EAOAmZ,EAAcrZ,UAAUqE,IAAM,WAE1B,IADA,IAAI2V,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASM,MAAOc,GACpD,EAOAX,EAAcrZ,UAAU0S,KAAO,WAE3B,IADA,IAAIsH,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASM,MAAOc,GACpD,EAOAX,EAAcrZ,UAAUgB,KAAO,WAE3B,IADA,IAAIgZ,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASO,MAAOa,GACpD,EAOAX,EAAcrZ,UAAUE,MAAQ,WAE5B,IADA,IAAI8Z,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASQ,OAAQY,GACrD,EAOAX,EAAcrZ,UAAUiH,MAAQ,WAE5B,IADA,IAAI+S,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASK,OAAQe,GACrD,EAOAX,EAAcrZ,UAAU6a,QAAU,WAE9B,IADA,IAAIb,EAAM,GACDC,EAAK,EAAGA,EAAKjO,UAAU9N,OAAQ+b,IACpCD,EAAIC,GAAMjO,UAAUiO,GAExBta,KAAKoa,KAAKvR,MAAM7I,KAAMsT,EAAS,CAAC2F,EAASI,SAAUgB,GACvD,EACAX,EAAcrZ,UAAUwH,aAAe,SAAUC,GACzCA,GAAaA,EAAUqT,oBAAsBjC,IAC7ClZ,KAAK4Z,YAAY3V,KAAK6D,GACtBA,EAAU1G,UAAUpB,KAAKmG,SAEjC,EACAuT,EAAcrZ,UAAU+a,eAAiB,WACrC,OAAOpb,KAAK4Z,WAChB,EACAF,EAAcc,UAAY,KACnBd,CACX,CAzLkC,E,sEC/D9BvN,EAAsC,WAStC,OARAA,EAAWlM,OAAOC,QAAU,SAASgJ,GACjC,IAAK,IAAIkD,EAAG5N,EAAI,EAAGiH,EAAI4G,UAAU9N,OAAQC,EAAIiH,EAAGjH,IAE5C,IAAK,IAAIsD,KADTsK,EAAIC,UAAU7N,GACA4N,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,KACzDoH,EAAEpH,GAAKsK,EAAEtK,IAEjB,OAAOoH,CACX,EACOiD,EAAStD,MAAM7I,KAAMqM,UAChC,EAEIxM,EAAS,IAAI,IAAO,UACbwb,EAAuB,SAAUtb,GACxC,IAwBIub,EAxBAC,EAAgB,CAAC,EAErB,GAAIxb,EAAO,+BAAgC,CACvC,IAAIuG,EAAY,CACZkV,YAAa,CACTC,MAAO1b,EAAO,+BACd0M,OAAQ1M,EAAO,qCAGvBwb,EAAcjV,UAAYA,CAC9B,CA6CA,OA3CIvG,EAAO,iCAAmCA,EAAO,wBACjDwb,EAAclV,KAAO,CACjB2L,WAAYjS,EAAO,qBACnB2b,oBAAqB3b,EAAO,gCAC5B0M,OAAQ1M,EAAO,sBACf+N,eAAgB/N,EAAO,gCACvB4b,mBAAoB5b,EAAO,sBAC3BmQ,gBAAqD,WAApCnQ,EAAO,yBACxB6b,yBAA0B7b,EAAO,4CAA8C,SAMnFub,EADAvb,EAAO,4BACS,CACZ8b,MAAO,CACHC,OAAQ/b,EAAO,4BACf0M,OAAQ1M,EAAO,mCACfgc,2CAA4Chc,EAAO,wEAK3CA,EAASA,EAAO0G,SAAW1G,EAAS,CAAC,EAGrDA,EAAO,aACPwb,EAAcS,QAAU7P,EAASA,EAAS,CAAC,EAAGpM,EAAO,YAAa,CAAE0M,OAAQ1M,EAAO,yBAGnFA,EAAO,SACPwb,EAAcrU,IAAMjH,OAAOC,OAAO,CAAC,EAAGH,EAAOkc,KACzClc,EAAOkc,IAAI,6BACXV,EAAcrU,IAAM,CAChBgV,sBAAuBnc,EAAOkc,IAAI,8BAI9CV,EAAcjV,UAAYrG,OAAOC,OAAO,CAAC,EAAGqb,EAAcjV,UAAWvG,EAAOuG,WAC5EiV,EAAclV,KAAOpG,OAAOC,OAAO,CAAC,EAAGqb,EAAclV,KAAMtG,EAAOsG,MAClEkV,EAAc9U,QAAUxG,OAAOC,OAAO,CAAC,EAAGob,GAC1CC,EAAcS,QAAU/b,OAAOC,OAAO,CAAC,EAAGqb,EAAcS,QAASjc,EAAOic,SACxEnc,EAAOyH,MAAM,eAAgBvH,EAAQ,mBAAoBwb,GAClDA,CACX,EAIIY,EAAwB,WACxB,SAASA,IACT,CAEA,OADAA,EAAOC,qBAAuBf,EACvBc,CACX,CAL2B,E,gFCzEpB,IAAIE,EAAU,SCYjBC,EAAkB,eAAiBD,EAC5BE,EAAW,CAClBC,UAAWF,EAAkB,MAC7BG,QAAS,GACTC,UAAW,KACXC,eAAe,GAEnB,GAAyB,qBAAdD,WAA6BA,UAAUD,QAG9C,OAFAF,EAASE,QAAUC,UAAUD,SAAW,GACxCF,EAASG,UAAYA,WAAa,KAC1BA,UAAUD,SACd,IAAK,cACDF,EAASC,UAAYF,EAAkB,gBACvCC,EAASI,eAAgB,EACzB,MACJ,QACIJ,EAASC,UAAYF,EAAkB,MACvCC,EAASI,eAAgB,EACzB,MAGL,IAAIC,EAAsB,SAAUC,GACvC,MAAO,GAAKN,EAASC,WAAaK,GAAoB,GAC1D,C,2GCxBI1Q,EAAsC,WAStC,OARAA,EAAWlM,OAAOC,QAAU,SAASgJ,GACjC,IAAK,IAAIkD,EAAG5N,EAAI,EAAGiH,EAAI4G,UAAU9N,OAAQC,EAAIiH,EAAGjH,IAE5C,IAAK,IAAIsD,KADTsK,EAAIC,UAAU7N,GACA4N,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,KACzDoH,EAAEpH,GAAKsK,EAAEtK,IAEjB,OAAOoH,CACX,EACOiD,EAAStD,MAAM7I,KAAMqM,UAChC,EACIyQ,EAAkC,SAAU1Q,EAAGtH,GAC/C,IAAIoE,EAAI,CAAC,EACT,IAAK,IAAIpH,KAAKsK,EAAOnM,OAAOI,UAAU0B,eAAeQ,KAAK6J,EAAGtK,IAAMgD,EAAEZ,QAAQpC,GAAK,IAC9EoH,EAAEpH,GAAKsK,EAAEtK,IACb,GAAS,MAALsK,GAAqD,oBAAjCnM,OAAO8c,sBACtB,KAAIve,EAAI,EAAb,IAAgBsD,EAAI7B,OAAO8c,sBAAsB3Q,GAAI5N,EAAIsD,EAAEvD,OAAQC,IAC3DsG,EAAEZ,QAAQpC,EAAEtD,IAAM,GAAKyB,OAAOI,UAAU2c,qBAAqBza,KAAK6J,EAAGtK,EAAEtD,MACvE0K,EAAEpH,EAAEtD,IAAM4N,EAAEtK,EAAEtD,IAF4B,CAItD,OAAO0K,CACX,EAMIrJ,EAAS,IAAI,IAAO,UACpBod,EAAoB,mBACpBC,EAAmB,mBACnBC,EAAU,SAAUzd,EAAK0d,GACzB,IAAIC,EAAO,IAAI,SAAS3d,GAExB,OADA2d,EAAKC,OAAOF,GACLC,EAAKE,YAChB,EACIF,EAAO,SAAUD,GACjB,IAAII,EAAMJ,GAAO,GACbC,EAAO,IAAI,SAEf,OADAA,EAAKC,OAAOE,IACL,OAAMH,EAAKE,aACtB,EAKIE,EAAiB,SAAUC,GAC3B,OAAOA,EAAUC,QAAQ,YAAY,SAAUC,GAC3C,MAAO,IAAMA,EAAElf,WAAW,GAAGmE,SAAS,IAAI+V,aAC9C,GACJ,EAMIiF,EAAkB,SAAUC,GAC5B,OAAKA,GAA0B,IAAjBA,EAAMvf,OAGbuf,EACFC,MAAM,KACNnW,KAAI,SAAU9C,GACf,IAAIkZ,EAAUlZ,EAAEiZ,MAAM,KACtB,GAAuB,IAAnBC,EAAQzf,OACR,OAAOuG,EAGP,IAAImZ,EAAgBR,EAAeO,EAAQ,IAC3C,OAAOA,EAAQ,GAAK,IAAMC,CAElC,IACKzZ,MAAK,SAAUC,EAAG/C,GACnB,IAAIwc,EAAQzZ,EAAEsZ,MAAM,KAAK,GACrBI,EAAQzc,EAAEqc,MAAM,KAAK,GACzB,OAAIG,IAAUC,EACH1Z,EAAI/C,GAAK,EAAI,EAGbwc,EAAQC,GAAS,EAAI,CAEpC,IACKjE,KAAK,KAxBC,EAyBf,EAYIkE,EAAoB,SAAUnR,GAC9B,OAAKA,GAA2C,IAAhChN,OAAO8D,KAAKkJ,GAAS1O,OAG7B0B,OAAO8D,KAAKkJ,GACfrF,KAAI,SAAUlI,GACf,MAAO,CACHA,IAAKA,EAAIgQ,cACT1Q,MAAOiO,EAAQvN,GAAOuN,EAAQvN,GAAK2e,OAAOV,QAAQ,OAAQ,KAAO,GAEzE,IACKnZ,MAAK,SAAUC,EAAG/C,GACnB,OAAO+C,EAAE/E,IAAMgC,EAAEhC,KAAO,EAAI,CAChC,IACKkI,KAAI,SAAU5E,GACf,OAAOA,EAAKtD,IAAM,IAAMsD,EAAKhE,KACjC,IACKkb,KAAK,MAAQ,KAfP,EAgBf,EAKIoE,EAAiB,SAAUrR,GAC3B,OAAOhN,OAAO8D,KAAKkJ,GACdrF,KAAI,SAAUlI,GACf,OAAOA,EAAIgQ,aACf,IACKlL,OACA0V,KAAK,IACd,EAiBIqE,EAAoB,SAAUvR,GAC9B,IAAIwR,GAAW,QAAMxR,EAAQyR,KAC7B,MAAO,CACHzR,EAAQ0R,QAAU,IAClBC,mBAAmBH,EAASI,UAAUjB,QAAQ,QAAS,KACvDE,EAAgBW,EAASV,OACzBM,EAAkBpR,EAAQC,SAC1BqR,EAAetR,EAAQC,SACvBoQ,EAAKrQ,EAAQrM,OACfuZ,KAAK,KACX,EACI2E,EAAqB,SAAU7R,GAC/B,IAAIwR,GAAW,QAAMxR,EAAQyR,KAAMK,EAAON,EAASM,KAC/CC,EAAUD,EAAKxJ,MAAM,4CACrB0J,GAAUD,GAAW,IAAIvJ,MAAM,EAAG,GAKtC,MAJkB,OAAdwJ,EAAO,KAEPA,EAASA,EAAOC,WAEb,CACHC,QAASlS,EAAQkS,SAAWF,EAAO,GACnCvS,OAAQO,EAAQP,QAAUuS,EAAO,GAEzC,EACIG,EAAmB,SAAUC,EAAO3S,EAAQyS,GAC5C,MAAO,CAACE,EAAO3S,EAAQyS,EAAS,gBAAgBhF,KAAK,IACzD,EAeImF,EAAiB,SAAUC,EAAWf,EAAmBgB,EAAQrT,GACjE,MAAO,CAACoT,EAAWC,EAAQrT,EAAOmR,EAAKkB,IAAoBrE,KAAK,KACpE,EAeIsF,EAAkB,SAAUC,EAAYL,EAAOM,GAC/C7f,EAAOyH,MAAMoY,GACb,IAAIC,EAAI,OAASF,EAAYG,EAASzC,EAAQwC,EAAGP,GAAQS,EAAW1C,EAAQyC,EAAQF,EAAajT,QAASqT,EAAY3C,EAAQ0C,EAAUH,EAAaR,SAAUa,EAAY5C,EAAQ2C,EAAW,gBAC9L,OAAOC,CACX,EACIC,EAAgB,SAAUC,EAAaC,GACvC,OAAO,OAAM/C,EAAQ8C,EAAaC,GACtC,EAOIC,EAA2B,SAAUb,EAAWc,EAAYlU,EAAOoS,EAAgB+B,GACnF,MAAO,CACHf,iBAAkCc,EAAa,IAAMlU,EACrD,iBAAmBoS,EACnB,aAAe+B,GACjBnG,KAAK,KACX,EACIoG,EAAwB,WACxB,SAASA,IACT,CA4GA,OAvEAA,EAAOC,KAAO,SAAUvT,EAASwT,EAAad,GAG1C,QAFqB,IAAjBA,IAA2BA,EAAe,MAC9C1S,EAAQC,QAAUD,EAAQC,SAAW,CAAC,EAClCD,EAAQjE,OAASiE,EAAQrM,KACzB,MAAM,IAAIyU,MAAM,kGAGpB,IAAI2E,EAAK,IAAU0G,yBAA0BlB,EAASxF,EAAG2G,cAAc/C,QAAQ,iBAAkB,IAAKyB,EAAQG,EAAOoB,OAAO,EAAG,GAC3HnC,GAAW,QAAMxR,EAAQyR,KAC7BzR,EAAQC,QAAQ,QAAUuR,EAASM,KACnC9R,EAAQC,QAAQ,cAAgBsS,EAC5BiB,EAAYI,gBACZ5T,EAAQC,QAAQ,wBAA0BuT,EAAYI,eAG1D,IAAIC,EAActC,EAAkBvR,GACpCnN,EAAOyH,MAAMuZ,GAEb,IAAIC,EAAcpB,GAAgBb,EAAmB7R,GAAUd,EAAQiT,EAAiBC,EAAO0B,EAAYrU,OAAQqU,EAAY5B,SAAUgB,EAAcb,EAAepC,EAAmB4D,EAAatB,EAAQrT,GAE1M+T,EAAcT,EAAgBgB,EAAYf,WAAYL,EAAO0B,GAAcT,EAAYL,EAAcC,EAAaC,GAElHa,EAAuBZ,EAAyBlD,EAAmBuD,EAAYJ,WAAYlU,EAAOoS,EAAetR,EAAQC,SAAUoT,GAEvI,OADArT,EAAQC,QAAQ,iBAAmB8T,EAC5B/T,CACX,EACAsT,EAAOU,QAAU,SAAUC,EAAcC,EAAYJ,EAAa/Q,GAC9D,IAAIoR,EAAoC,kBAAjBF,EAA4BA,EAAaxC,IAAMwC,EAClEvC,EAAiC,kBAAjBuC,EAA4BA,EAAavC,OAAS,MAClE3V,EAA+B,kBAAjBkY,EAA4BA,EAAalY,UAAOnE,EAC9DkL,EAAM,IAAU2Q,yBACfC,cACA/C,QAAQ,iBAAkB,IAC3ByD,EAAQtR,EAAI6Q,OAAO,EAAG,GAEtBlZ,GAAK,QAAM0Z,GAAW,GAAM,GAA2BE,GAAX5Z,EAAG6Z,OAAoBxE,EAAOrV,EAAI,CAAC,YAC/EqX,EAAOuC,EAAUvC,KACjByC,EAAgB,CAAEzC,KAAMA,GACxBpX,EAAKoZ,GAAejC,EAAmB,CAAEJ,KAAK,QAAO4C,KAAe5U,EAAS/E,EAAG+E,OAAQyS,EAAUxX,EAAGwX,QACrGsC,EAAkBrC,EAAiBiC,EAAO3U,EAAQyS,GAGlDuC,EAAuBP,EAAWN,eAAiB1B,IAAYhC,EAC/DwE,EAAcvV,EAASA,EAASA,EAAS,CAAE,kBAAmB8Q,EAAmB,mBAAoB,CAACiE,EAAWd,WAAYoB,GAAiBtH,KAAK,KAAM,aAAcpK,EAAI6Q,OAAO,EAAG,KAAQc,EAC3L,CAAE,uBAAwB,GAAKP,EAAWN,eAC1C,CAAC,GAAM7Q,EAAa,CAAE,gBAAiB,GAAKA,GAAe,CAAC,GAAK,CAAE,sBAAuB9P,OAAO8D,KAAKwd,GAAerH,KAAK,OAC5HyH,EAAmBpD,EAAkB,CACrCG,OAAQA,EACRD,KAAK,QAAOtS,EAASA,EAAS,CAAC,EAAGkV,GAAY,CAAEvD,MAAO3R,EAASA,EAAS,CAAC,EAAGkV,EAAUvD,OAAQ4D,MAC/FzU,QAASsU,EACT5gB,KAAMoI,IAEN6Y,EAAevC,EAAepC,EAAmB0E,EAAkB7R,EAAK0R,GACxEvB,EAAcT,EAAgB0B,EAAWzB,WAAY2B,EAAO,CAC5D3U,OAAQA,EACRyS,QAASA,IAETmB,EAAYL,EAAcC,EAAa2B,GACvCC,EAAwB1V,EAAS,CAAE,kBAAmBkU,GAAca,EAAWN,eAAiB,CAChG,uBAAwBM,EAAWN,gBAEnCjY,GAAS,QAAO,CAChBmZ,SAAUT,EAAUS,SACpBC,SAAS,EACTC,SAAUX,EAAUW,SACpBC,KAAMZ,EAAUY,KAChBrD,SAAUyC,EAAUzC,SACpBd,MAAO3R,EAASA,EAASA,EAAS,CAAC,EAAGkV,EAAUvD,OAAQ4D,GAAcG,KAE1E,OAAOlZ,CACX,EACO2X,CACX,CA/G2B,E,wDC5N3B,IAAI4B,EAAa,CAAC,EAEdC,EAA+B,WAC/B,SAASA,IACT,CAsCA,OA/BAA,EAAcxiB,QAAU,SAAUD,EAAKV,GAEnC,OADAkjB,EAAWxiB,GAAOV,EACXkjB,EAAWxiB,EACtB,EAOAyiB,EAAc1iB,QAAU,SAAUC,GAC9B,OAAOO,OAAOI,UAAU0B,eAAeQ,KAAK2f,EAAYxiB,GAClDwiB,EAAWxiB,QACXkF,CACV,EAMAud,EAAcviB,WAAa,SAAUF,GACjC,cAAcwiB,EAAWxiB,EAC7B,EAKAyiB,EAAc3iB,MAAQ,WAElB,OADA0iB,EAAa,CAAC,EACPA,CACX,EACOC,CACX,CAzCkC,GA2C9BjkB,EAA+B,WAK/B,SAASA,IACL,IACI8B,KAAKoiB,cAAgBjY,OAAOkY,aAC5BriB,KAAKoiB,cAAcziB,QAAQ,sBAAuB,GAClDK,KAAKoiB,cAAcxiB,WAAW,sBAClC,CACA,MAAO0iB,GACHtiB,KAAKoiB,cAAgBD,CACzB,CACJ,CAQA,OAHAjkB,EAAcmC,UAAUlC,WAAa,WACjC,OAAO6B,KAAKoiB,aAChB,EACOlkB,CACX,CAvBkC,E,8ECvD9B+L,GAAY,UAAgBA,UAC5BsY,EAAkC,WAClC,SAASA,EAAiBC,QACN,IAAZA,IAAsBA,EAAU,CAAC,GACrCxiB,KAAKyiB,QAAU,IAAI,IACnBziB,KAAKV,MAAQ2K,EAAYE,OAAOkY,aAAepiB,OAAOiC,OAAO,MAC7DlC,KAAKyiB,QAAUD,EAAQE,IACjB,IAAI,IAAQF,EAAQE,IAAIzV,QAAQ0V,QAChC,IAAI,IACV1iB,OAAOC,OAAOF,KAAKV,MAAOU,KAAKyiB,QAAQG,SAC3C,CA8EA,OA7EA3iB,OAAO4iB,eAAeN,EAAiBliB,UAAW,SAAU,CACxDyK,IAAK,WACD,OAAO7K,OAAOsH,QAAQvH,KAAKV,OAAOf,MACtC,EACAukB,YAAY,EACZC,cAAc,IAElBR,EAAiBliB,UAAUb,MAAQ,WAC/B,IAAI6C,EAAQrC,KACZ6B,MAAMmhB,KAAK,IAAInhB,MAAM7B,KAAKzB,SACrBqJ,KAAI,SAAUwB,EAAG5K,GAAK,OAAO6D,EAAM3C,IAAIlB,EAAI,IAC3CgJ,SAAQ,SAAU9H,GAAO,OAAO2C,EAAMzC,WAAWF,EAAM,GAChE,EACA6iB,EAAiBliB,UAAUZ,QAAU,SAAUC,GAC3C,OAAOM,KAAKijB,aAAavjB,EAC7B,EACA6iB,EAAiBliB,UAAU4iB,aAAe,SAAUvjB,GAChD,OAAOO,OAAOI,UAAU0B,eAAeQ,KAAKvC,KAAKV,MAAOI,GAClDM,KAAKV,MAAMI,GACX,IACV,EACA6iB,EAAiBliB,UAAU6iB,iBAAmB,SAAUxjB,GACpD,OAAOM,KAAKyiB,QAAQ3X,IAAIpL,EAC5B,EACA6iB,EAAiBliB,UAAUX,IAAM,SAAUyjB,GACvC,OAAOljB,OAAO8D,KAAK/D,KAAKV,OAAO6jB,EACnC,EACAZ,EAAiBliB,UAAUT,WAAa,SAAUF,GAC9CM,KAAKojB,gBAAgB1jB,GACrBM,KAAKqjB,oBAAoB3jB,EAC7B,EACA6iB,EAAiBliB,UAAU+iB,gBAAkB,SAAU1jB,UAC5CM,KAAKV,MAAMI,EACtB,EACA6iB,EAAiBliB,UAAUgjB,oBAAsB,SAAU3jB,GACvDM,KAAKyiB,QAAQzO,OAAOtU,EAAK,CACrB4jB,KAAM,KAEd,EACAf,EAAiBliB,UAAUV,QAAU,SAAUD,EAAKV,GAChDgB,KAAKujB,aAAa7jB,EAAKV,GAIvB,IAAIwkB,EAAY9jB,EAAIqe,MAAM,KAAKlU,MAC/B,OAAQ2Z,GAEJ,IAAK,eAEL,IAAK,cAGL,IAAK,eAEL,IAAK,UACDvZ,EACMjK,KAAKyjB,iBAAiB/jB,EAAKV,GAC3BgB,KAAKujB,aAAa7jB,EAAKV,GAOzC,EACAujB,EAAiBliB,UAAUkjB,aAAe,SAAU7jB,EAAKV,GACrDgB,KAAKV,MAAMI,GAAOV,CACtB,EACAujB,EAAiBliB,UAAUojB,iBAAmB,SAAU/jB,EAAKV,GACzDgB,KAAKyiB,QAAQvP,IAAIxT,EAAKV,EAAO,CACzBskB,KAAM,IAENI,UAAU,EAEVC,OAAqC,cAA7BxZ,OAAOyZ,SAAS5B,UAEhC,EACOO,CACX,CAxFqC,E,sDCGrC,IAAIhd,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYf,EAA3BtG,EAAIkH,EAAEnD,KAAKiD,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAIrH,EAAEuH,QAAQC,KAAMF,EAAG7B,KAAK4B,EAAE7G,MACxE,CACA,MAAOuB,GAASuE,EAAI,CAAEvE,MAAOA,EAAS,CACtC,QACI,IACQsF,IAAMA,EAAEG,OAASN,EAAIlH,EAAE,YAAYkH,EAAEnD,KAAK/D,EAClD,CACA,QAAU,GAAIsG,EAAG,MAAMA,EAAEvE,KAAO,CACpC,CACA,OAAOuF,CACX,EAEI+d,EAAqB,IACdC,EAAY,CAInBC,YAAa,EACbtD,uBAAwB,WACpB,OAAIqD,EAAUC,YACH,IAAIllB,MAAK,IAAIA,MAAOC,UAAYglB,EAAUC,aAG1C,IAAIllB,IAEnB,EAIAmlB,eAAgB,WACZ,OAAOF,EAAUC,WACrB,EACAE,wBAAyB,SAAUhY,GAE/B,YADa,IAATA,IAAmBA,EAAO6X,EAAUrD,0BACjCxU,EAAKyU,cAAc/C,QAAQ,iBAAkB,GACxD,EACAuG,wBAAyB,SAAUC,GAC/B,IAAI1c,EAAKlC,EAAO4e,EAAO7O,MAAM,kDAAmD,GAAI8O,EAAO3c,EAAG,GAAI4c,EAAQ5c,EAAG,GAAI6c,EAAM7c,EAAG,GAAI8c,EAAO9c,EAAG,GAAI+c,EAAS/c,EAAG,GAAIgd,EAAShd,EAAG,GACxK,OAAO,IAAI5I,KAAKA,KAAK6lB,IAAIzlB,OAAOmlB,GAAOnlB,OAAOolB,GAAS,EAAGplB,OAAOqlB,GAAMrlB,OAAOslB,GAAOtlB,OAAOulB,GAASvlB,OAAOwlB,IAChH,EACAE,cAAe,SAAUC,GAErB,OAAQxlB,KAAKylB,IAAID,EAAW9lB,UAAYglB,EAAUrD,yBAAyB3hB,YAAc+kB,CAC7F,EACAiB,iBAAkB,SAAUvkB,GACxB,IAAKA,EAAMuL,WAAavL,EAAMuL,SAASmB,QACnC,OAAO,EAEX,IAAIA,EAAU1M,EAAMuL,SAASmB,QAC7B,OAAO8L,QAAQ,CAAC,sBAAuB,6BAA6BN,SAASxL,EAAQ,uBAChFA,EAAQhB,MAAQgB,EAAQpO,MACjC,EAIAkmB,eAAgB,SAAUC,GACtBlB,EAAUC,YAAciB,CAC5B,E,+CCpEA7L,EAAsC,SAAS3T,GAC/C,IAAI4G,EAAsB,oBAAXzG,QAAyBA,OAAOC,SAAUF,EAAI0G,GAAK5G,EAAE4G,GAAI5N,EAAI,EAC5E,GAAIkH,EAAG,OAAOA,EAAEnD,KAAKiD,GACrB,GAAIA,GAAyB,kBAAbA,EAAEjH,OAAqB,MAAO,CAC1CwH,KAAM,WAEF,OADIP,GAAKhH,GAAKgH,EAAEjH,SAAQiH,OAAI,GACrB,CAAExG,MAAOwG,GAAKA,EAAEhH,KAAMwH,MAAOR,EACxC,GAEJ,MAAM,IAAIoE,UAAUwC,EAAI,0BAA4B,kCACxD,EAGI6Y,EAAuC,WACvC,SAASA,IACT,CA6CA,OA5CAA,EAAsB5kB,UAAU6kB,eAAiB,SAAUC,GACvD,IAAI,UAAgBnN,OAChB,OAAO,IAAWgL,KAAK,CAAC,CAAEoC,QAAQ,KAEtC,IAAIC,GAAY,UAAgB1N,KAAOxN,OACvC,OAAO,IAAI,KAAW,SAAUmb,GAC5BA,EAASvf,KAAK,CAAEqf,OAAQC,EAAU3I,UAAU6I,SAC5C,IAAIC,EAAe,WAAc,OAAOF,EAASvf,KAAK,CAAEqf,QAAQ,GAAS,EACrEK,EAAgB,WAAc,OAAOH,EAASvf,KAAK,CAAEqf,QAAQ,GAAU,EAI3E,OAHAC,EAAUK,iBAAiB,SAAUF,GACrCH,EAAUK,iBAAiB,UAAWD,GACtCR,EAAsBU,WAAW1hB,KAAKqhB,GAC/B,WACHD,EAAUO,oBAAoB,SAAUJ,GACxCH,EAAUO,oBAAoB,UAAWH,GACzCR,EAAsBU,WAAaV,EAAsBU,WAAWpR,QAAO,SAAUsR,GAAa,OAAOA,IAAcP,CAAU,GACrI,CACJ,GACJ,EAEAL,EAAsBa,kBAAoB,SAAUC,GAChD,IAAI5S,EAAK1L,EACLue,EAAU,SAAUV,GACpB,GAAIA,EAASW,OAET,OADAhB,EAAsBU,WAAaV,EAAsBU,WAAWpR,QAAO,SAAUsR,GAAa,OAAOA,IAAcP,CAAU,IAC1H,WAEXA,EAASvf,KAAKggB,EAClB,EACA,IACI,IAAK,IAAIre,EAAKyR,EAAS8L,EAAsBU,YAAapV,EAAK7I,EAAG3B,QAASwK,EAAGvK,KAAMuK,EAAK7I,EAAG3B,OAAQ,CAChG,IAAIuf,EAAW/U,EAAGvR,MAClBgnB,EAAQV,EACZ,CACJ,CACA,MAAOtK,GAAS7H,EAAM,CAAE5S,MAAOya,EAAS,CACxC,QACI,IACQzK,IAAOA,EAAGvK,OAASyB,EAAKC,EAAGuT,SAASxT,EAAGlF,KAAKmF,EACpD,CACA,QAAU,GAAIyL,EAAK,MAAMA,EAAI5S,KAAO,CACxC,CACJ,EACA0kB,EAAsBU,WAAa,GAC5BV,CACX,CAhD0C,GAiD1C,K,6FC9DI1jB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvB,OAAO0B,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,GAAI,EACtEN,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOhC,KAAKiC,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpB,UAAkB,OAANqB,EAAazB,OAAOiC,OAAOR,IAAMM,EAAG3B,UAAYqB,EAAErB,UAAW,IAAI2B,EACnF,CACH,CAZ2C,GAaxC+F,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,SAASC,EAAMpJ,GAAS,OAAOA,aAAiBkJ,EAAIlJ,EAAQ,IAAIkJ,GAAE,SAAUG,GAAWA,EAAQrJ,EAAQ,GAAI,CAC3G,OAAO,IAAKkJ,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAUxJ,GAAS,IAAMyJ,EAAKN,EAAUpC,KAAK/G,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC1F,SAAS4D,EAAS1J,GAAS,IAAMyJ,EAAKN,EAAU,SAASnJ,GAAS,CAAE,MAAO8F,GAAKyD,EAAOzD,EAAI,CAAE,CAC7F,SAAS2D,EAAKE,GAAUA,EAAO3C,KAAOqC,EAAQM,EAAO3J,OAASoJ,EAAMO,EAAO3J,OAAO4J,KAAKJ,EAAWE,EAAW,CAC7GD,GAAMN,EAAYA,EAAUU,MAAMb,EAASC,GAAc,KAAKlC,OAClE,GACJ,EACI+C,EAA4C,SAAUd,EAASe,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpD,KAAM0D,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9D,SAA0BwD,EAAExD,OAAOC,UAAY,WAAa,OAAO5F,IAAM,GAAImJ,EACvJ,SAASM,EAAKhE,GAAK,OAAO,SAAUiE,GAAK,OAAOjB,EAAK,CAAChD,EAAGiE,GAAK,CAAG,CACjE,SAASjB,EAAKkB,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,MAAOR,MACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARS,EAAG,GAASV,EAAE,UAAYU,EAAG,GAAKV,EAAE,YAAcC,EAAID,EAAE,YAAcC,EAAE3G,KAAK0G,GAAI,GAAKA,EAAElD,SAAWmD,EAAIA,EAAE3G,KAAK0G,EAAGU,EAAG,KAAK3D,KAAM,OAAOkD,EAE3J,OADID,EAAI,EAAGC,IAAGS,EAAK,CAAS,EAARA,EAAG,GAAQT,EAAElK,QACzB2K,EAAG,IACP,KAAK,EAAG,KAAK,EAAGT,EAAIS,EAAI,MACxB,KAAK,EAAc,OAAXP,EAAEC,QAAgB,CAAErK,MAAO2K,EAAG,GAAI3D,MAAM,GAChD,KAAK,EAAGoD,EAAEC,QAASJ,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKP,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,GAAMX,EAAIE,EAAEG,OAAML,EAAIA,EAAE3K,OAAS,GAAK2K,EAAEA,EAAE3K,OAAS,MAAkB,IAAVoL,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEP,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVO,EAAG,MAAcT,GAAMS,EAAG,GAAKT,EAAE,IAAMS,EAAG,GAAKT,EAAE,IAAM,CAAEE,EAAEC,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYP,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIS,EAAI,KAAO,CACpE,GAAIT,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIvF,KAAK0F,GAAK,KAAO,CAC9DT,EAAE,IAAIE,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBF,EAAKZ,EAAKxG,KAAKyF,EAASoB,EAC5B,CAAE,MAAOtE,GAAK6E,EAAK,CAAC,EAAG7E,GAAImE,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARS,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3K,MAAO2K,EAAG,GAAKA,EAAG,QAAK,EAAQ3D,MAAM,EAC9E,CACJ,EACIT,EAAkC,SAAUC,EAAGC,GAC/C,IAAIC,EAAsB,oBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYf,EAA3BtG,EAAIkH,EAAEnD,KAAKiD,GAAOM,EAAK,GAC3B,IACI,YAAc,IAANL,GAAgBA,KAAM,MAAQI,EAAIrH,EAAEuH,QAAQC,KAAMF,EAAG7B,KAAK4B,EAAE7G,MACxE,CACA,MAAOuB,GAASuE,EAAI,CAAEvE,MAAOA,EAAS,CACtC,QACI,IACQsF,IAAMA,EAAEG,OAASN,EAAIlH,EAAE,YAAYkH,EAAEnD,KAAK/D,EAClD,CACA,QAAU,GAAIsG,EAAG,MAAMA,EAAEvE,KAAO,CACpC,CACA,OAAOuF,CACX,EACIwN,EAAsC,WACtC,IAAK,IAAIxN,EAAK,GAAItH,EAAI,EAAGA,EAAI6N,UAAU9N,OAAQC,IAAKsH,EAAKA,EAAGyN,OAAOhO,EAAO8G,UAAU7N,KACpF,OAAOsH,CACX,EAEIjG,EAAS,IAAI,IAAO,QACpBqmB,EAAmC,SAAU9jB,GAE7C,SAAS8jB,EAAkBjV,GACvB,IAAI5O,EAAQD,EAAOG,KAAKvC,KAAMiR,IAAYjR,KAE1C,OADAqC,EAAM8jB,cAAe,EACd9jB,CACX,CACA,OANAd,EAAU2kB,EAAmB9jB,GAMtB8jB,CACX,CARsC,CAQpC9Q,OAEEgR,EAAsB,SAAUtQ,GAChC,IAAIpW,EAAM,eACV,OAAOoW,GAAOA,EAAIpW,EACtB,EAKO,SAAS2mB,EAAMC,EAAiBzZ,EAAM0Z,EAASC,GAClD,OAAOze,EAAU/H,UAAM,OAAQ,GAAQ,WACnC,IAAIqC,EAAQrC,KACZ,OAAO8I,EAAY9I,MAAM,SAAUyH,GAC/B,GAA+B,oBAApB6e,EACP,MAAMlR,MAAM,sCAEhB,MAAO,CAAC,EAAc,IAAI9M,SAAQ,SAAUD,EAASE,GAAU,OAAOR,EAAU1F,OAAO,OAAQ,GAAQ,WAC/F,IAAIokB,EAASC,EAAYC,EAASC,EAAQC,EAAWb,EAASc,EAC9D,OAAOhe,EAAY9I,MAAM,SAAUyH,GAC/B,OAAQA,EAAG4B,OACP,KAAK,EACDod,EAAU,EACVC,GAAa,EACbE,EAAS,WAAc,EACvBJ,GACIA,EAAY5d,MAAK,WAEb8d,GAAa,EAEbK,aAAaJ,GACbC,GACJ,IACJZ,EAAU,WACN,IAAIve,EAAIC,EAAI4G,EAAO0Y,EACnB,OAAOle,EAAY9I,MAAM,SAAUuQ,GAC/B,OAAQA,EAAGlH,OACP,KAAK,EACDod,IACA5mB,EAAOyH,MAAMgf,EAAgBvZ,KAAO,aAAe0Z,EAAU,oBAAsBvlB,KAAKC,UAAU0L,IAClG0D,EAAGlH,MAAQ,EACf,KAAK,EAID,OAHAkH,EAAGhH,KAAKtF,KAAK,CAAC,EAAG,EAAG,CAAE,IACtBwD,EAAK,CAAC,EACNC,EAAKW,EACE,CAAC,EAAaie,EAAgBzd,WAAM,EAAQyK,EAASzG,KAChE,KAAK,EAAG,MAAO,CAAC,GAAepF,EAAGzI,MAAQ0I,EAAGmB,WAAM,EAAQ,CAAC0H,EAAGjH,SAAU7B,IACzE,KAAK,EAID,OAHA6G,EAAQiC,EAAGjH,OACXud,EAAYvY,EACZzO,EAAOyH,MAAM,YAAcgf,EAAgBvZ,KAAMuB,GAC7C8X,EAAoB9X,IACpBzO,EAAOyH,MAAMgf,EAAgBvZ,KAAO,uBAAwBuB,GACrD,CAAC,EAAc,CAAEtP,MAAOuJ,EAAO+F,OAE1C0Y,EAAYT,EAAQE,EAAS5Z,EAAMyB,GACnCzO,EAAOyH,MAAMgf,EAAgBvZ,KAAO,gBAAkBia,EAAY,QAC9C,IAAdA,GAAuBN,EACtB,CAAC,EAAc,CAAE1nB,MAAOuJ,EAAO+F,KADW,CAAC,EAAa,IAEnE,KAAK,EAAG,MAAO,CAAC,EAAa,IAAIhG,SAAQ,SAAUzC,GAC3C+gB,EAAS/gB,EACT8gB,EAAUtc,WAAWuc,EAAQI,EACjC,KACJ,KAAK,EACDzW,EAAGjH,OACHiH,EAAGlH,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,EACA5B,EAAG4B,MAAQ,EACf,KAAK,EACD,OAAMqd,EAAmB,CAAC,EAAa,GAChC,CAAC,EAAcV,KAC1B,KAAK,EAED,OADAc,EAAUrf,EAAG6B,OACU,kBAAZwd,EACA,CAAC,EAAcA,EAAQ9nB,OAC3B,CAAC,EAAa,GACzB,KAAK,EAGD,OADAuJ,EAAOse,GACA,CAAC,GAEpB,GACJ,GAAI,IACZ,GACJ,GACJ,CACA,IAAIrX,EAAe,IAKZ,SAASyX,EAAgBC,QACT,IAAfA,IAAyBA,EAAa1X,GAC1C,IAAI2X,EAAe,IACfC,EAAgB,IACpB,OAAO,SAAUX,GACb,IAAIY,EAAQjoB,KAAKkoB,IAAI,EAAGb,GAAWU,EAAeC,EAAgBhoB,KAAKgY,SACvE,QAAOiQ,EAAQH,IAAqBG,CACxC,CACJ,CAKO,IAAIE,EAA2B,SAAUjB,EAAiBzZ,EAAMqa,EAAYV,GAE/E,YADmB,IAAfU,IAAyBA,EAAa1X,GACnC6W,EAAMC,EAAiBzZ,EAAMoa,EAAgBC,GAAaV,EACrE,C,uBC9LO,SAASgB,EAAcnpB,GAC1B,OAAOA,EACF0f,MAAM,IACNnW,KAAI,SAAU6f,GACf,OAAOA,EACF/oB,WAAW,GACXmE,SAAS,IACT6kB,SAAS,EAAG,IACrB,IACKxN,KAAK,GACd,CACO,SAASyN,EAAcC,GAC1B,OAAOA,EACFtS,MAAM,SACN1N,KAAI,SAAU6f,GAAQ,OAAO3O,OAAO+O,aAAaC,SAASL,EAAM,IAAM,IACtEvN,KAAK,GACd,C,8JCAA,IAAI6N,EAA8B,qBAAXpiB,QAAgD,oBAAfA,OAAO8N,IAIpDuU,EAAuCD,EAC5CpiB,OAAO8N,IAAI,wCACX,yCACKwU,EAAgDF,EACrDpiB,OAAO8N,IAAI,iDACX,kDACKyU,EAAoB,kB,gFCb3BroB,EAAS,IAAI,IAAO,QAIpB,EAAsB,WAMtB,SAAS6G,EAAKhG,GAIVV,KAAKmoB,SAAW,KAIhBnoB,KAAKooB,MAAQ,KAIbpoB,KAAKqoB,MAAQ,CAAC,EACdroB,KAAKmoB,SAAWloB,OAAOC,OAAO,CAAC,EAAGQ,GAClCV,KAAKooB,MAAQpoB,KAAKmoB,SAASG,UACtBtoB,KAAKooB,OACY,qBAAXje,QACPA,QACAA,OAAOuS,YACP1c,KAAKooB,MAAQje,OAAOuS,UAAU4L,UAElCzoB,EAAOyH,MAAMtH,KAAKooB,MACtB,CA4EA,OAtEA1hB,EAAKrG,UAAUkoB,YAAc,SAAUC,GACnCxoB,KAAKooB,MAAQI,CACjB,EAOA9hB,EAAKrG,UAAUyK,IAAM,SAAUpL,EAAKiX,GAEhC,QADe,IAAXA,IAAqBA,OAAS/R,IAC7B5E,KAAKooB,MACN,MAAyB,qBAAXzR,EAAyBA,EAASjX,EAEpD,IAAI8oB,EAAOxoB,KAAKooB,MACZ7jB,EAAMvE,KAAKyoB,cAAc/oB,EAAK8oB,GAClC,OAAIjkB,IAGAikB,EAAKtkB,QAAQ,KAAO,IACpBK,EAAMvE,KAAKyoB,cAAc/oB,EAAK8oB,EAAKzK,MAAM,KAAK,KAE9CxZ,IAGqB,qBAAXoS,EAAyBA,EAASjX,GACpD,EAQAgH,EAAKrG,UAAUooB,cAAgB,SAAU/oB,EAAK4oB,EAAU3R,GAEpD,QADe,IAAXA,IAAqBA,EAAS,OAC7B2R,EACD,OAAO3R,EAEX,IAAI+R,EAAY1oB,KAAKqoB,MAAMC,GAC3B,OAAKI,EAGEA,EAAUhpB,GAFNiX,CAGf,EAOAjQ,EAAKrG,UAAUsoB,2BAA6B,SAAUL,EAAUM,GAC5D,IAAIF,EAAY1oB,KAAKqoB,MAAMC,GACtBI,IACDA,EAAY1oB,KAAKqoB,MAAMC,GAAY,CAAC,GAExCroB,OAAOC,OAAOwoB,EAAWE,EAC7B,EAOAliB,EAAKrG,UAAUwoB,gBAAkB,SAAUD,GACvC,IAAIvmB,EAAQrC,KACZC,OAAO8D,KAAK6kB,GAAchhB,KAAI,SAAUlI,GACpC2C,EAAMsmB,2BAA2BjpB,EAAKkpB,EAAalpB,GACvD,GACJ,EACOgH,CACX,CAzGyB,G,UCFrB,EAAS,IAAI,IAAO,QACpBP,EAAU,KACV2iB,EAAQ,KAIRpiB,EAAsB,WACtB,SAASA,IACT,CAgFA,OAzEAA,EAAKtF,UAAY,SAAUrB,GAEvB,OADA,EAAOuH,MAAM,kBACRvH,GAGLoG,EAAUlG,OAAOC,OAAO,CAAC,EAAGiG,EAASpG,EAAO2G,MAAQ3G,GACpD2G,EAAKvB,iBACEgB,GAJIA,CAKf,EACAO,EAAKpG,cAAgB,WACjB,MAAO,MACX,EAMAoG,EAAKvB,eAAiB,WAClB,EAAOmC,MAAM,wBACTwhB,IAGJA,EAAQ,IAAI,EAAU3iB,GAC1B,EAMAO,EAAK6hB,YAAc,SAAUC,GAEzB,OADA9hB,EAAKtG,cACE0oB,EAAMP,YAAYC,EAC7B,EAOA9hB,EAAKoE,IAAM,SAAUpL,EAAKiX,GACtB,OAAKjQ,EAAKtG,cAGH0oB,EAAMhe,IAAIpL,EAAKiX,GAFO,qBAAXA,EAAyBjX,EAAMiX,CAGrD,EAQAjQ,EAAKiiB,2BAA6B,SAAUL,EAAUM,GAElD,OADAliB,EAAKtG,cACE0oB,EAAMH,2BAA2BL,EAAUM,EACtD,EAQAliB,EAAKmiB,gBAAkB,SAAUD,GAE7B,OADAliB,EAAKtG,cACE0oB,EAAMD,gBAAgBD,EACjC,EACAliB,EAAKtG,YAAc,WAIf,OAHK0oB,IACDA,EAAQ,IAAI,EAAU3iB,KAEnB,CACX,EACOO,CACX,CAnFyB,GAqFzB,KAAQpB,SAASoB,G,QAIjB,IC9EWqiB,EAAY,CACnBvM,UAAWD,EAAA,GAASC,U,+FCNpBwM,EAAoC,WACpC,SAASA,IAELhpB,KAAKipB,QAAU,IAAI,IAAO,gBAC9B,CA8JA,OA7JAhpB,OAAO4iB,eAAemG,EAAmB3oB,UAAW,gBAAiB,CAIjEyK,IAAK,WACD,OAAO9K,KAAKkpB,cAChB,EACApG,YAAY,EACZC,cAAc,IAclBiG,EAAmB3oB,UAAUiF,SAAW,SAAU6jB,EAAUjd,GACxD,IAAI7J,EAAQrC,KAKZ,YAJiB,IAAbmpB,IAAuBA,EAAW,2BACxB,IAAVjd,IAAoBA,EAAQ,KAChClM,KAAKipB,QAAQ3hB,MAAM,eAAiB6hB,GACpCnpB,KAAKipB,QAAQ3hB,MAAM,yCAA2C4E,GACvD,IAAI5D,SAAQ,SAAUD,EAASE,GAClC,IAAImU,aAAa,kBAAmBA,WA0BhC,OAAOnU,EAAO,IAAI6M,MAAM,iCAzBxBsH,UAAU0M,cACL9jB,SAAS6jB,EAAU,CACpBjd,MAAOA,IAENtD,MAAK,SAAUygB,GAahB,OAZIA,EAAaC,WACbjnB,EAAM6mB,eAAiBG,EAAaC,WAE/BD,EAAaE,QAClBlnB,EAAM6mB,eAAiBG,EAAaE,QAE/BF,EAAaG,SAClBnnB,EAAM6mB,eAAiBG,EAAaG,QAExCnnB,EAAMonB,cAAgBJ,EACtBhnB,EAAMqnB,kBACNrnB,EAAM4mB,QAAQ3hB,MAAM,wCAA0C+hB,GACvDhhB,EAAQghB,EACnB,IACKhe,OAAM,SAAU9K,GAEjB,OADA8B,EAAM4mB,QAAQ3hB,MAAM,sCAAwC/G,GACrDgI,EAAOhI,EAClB,GAKR,GACJ,EAYAyoB,EAAmB3oB,UAAUspB,WAAa,SAAUC,GAChD,IAAIvnB,EAAQrC,KACZ,IAAKA,KAAKypB,cACN,MAAM,IAAIrU,MAAM,iCAEpB,OADApV,KAAK6pB,WAAaD,EACX,IAAIthB,SAAQ,SAAUD,EAASE,GAClC,KAAI,UAAgB0B,UA0BhB,OAAO1B,EAAO,IAAI6M,MAAM,iCAzBxB/S,EAAMonB,cAAcK,YAAYC,kBAAkBnhB,MAAK,SAAUohB,GAC7D,IAAIA,EAOA,OADA3nB,EAAM4mB,QAAQ3hB,MAAM,kCACbjF,EAAMonB,cAAcK,YACtBG,UAAU,CACXC,iBAAiB,EACjBC,qBAAsB9nB,EAAM+nB,oBAAoBR,KAE/ChhB,MAAK,SAAUohB,GAChB3nB,EAAMgoB,cAAgBL,EACtB3nB,EAAM4mB,QAAQ3hB,MAAM,oBAAsBpG,KAAKC,UAAU6oB,IACzD3hB,EAAQ2hB,EACZ,IACK3e,OAAM,SAAU9K,GACjB8B,EAAM4mB,QAAQ1oB,MAAMA,EACxB,IAlBA8B,EAAMgoB,cAAgBL,EACtB3nB,EAAM4mB,QAAQ3hB,MAAM,+BAAiCpG,KAAKC,UAAU6oB,IACpE3hB,EAAQ2hB,EAkBhB,GAKR,GACJ,EAKAhB,EAAmB3oB,UAAU+pB,oBAAsB,SAAUE,GAOzD,IANA,IAAIC,EAAU,IAAIC,QAAQ,EAAKF,EAAa/rB,OAAS,GAAM,GACvDksB,GAAUH,EAAeC,GACxB5M,QAAQ,MAAO,KACfA,QAAQ,KAAM,KACf+M,EAAUvgB,OAAOwgB,KAAKF,GACtBG,EAAc,IAAIC,WAAWH,EAAQnsB,QAChCC,EAAI,EAAGA,EAAIksB,EAAQnsB,SAAUC,EAClCosB,EAAYpsB,GAAKksB,EAAQhsB,WAAWF,GAExC,OAAOosB,CACX,EASA5B,EAAmB3oB,UAAUwQ,KAAO,SAAUI,GACtCjR,KAAKkpB,gBACLlpB,KAAKkpB,eAAe4B,YAA+B,kBAAZ7Z,EAAuB/P,KAAKC,UAAU8P,GAAWA,EAEhG,EAKA+X,EAAmB3oB,UAAUqpB,gBAAkB,WAC3C,IAAIrnB,EAAQrC,KACZA,KAAKkpB,eAAexD,iBAAiB,eAAe,SAAUqF,GAC1D,IAAIC,EAAe3oB,EAAM6mB,eAAe+B,MACxC5oB,EAAM4mB,QAAQ3hB,MAAM,8BAAgC0jB,GAChD3lB,EAAA,GAAQiB,WAAiD,oBAA7BjB,EAAA,GAAQiB,UAAU4kB,QAC9C7lB,EAAA,GAAQiB,UAAU4kB,OAAO,CACrBne,KAAM,gBACNoe,WAAY,CACRF,MAAOD,IAIvB,IACAhrB,KAAKkpB,eAAexD,iBAAiB,WAAW,SAAUqF,GACtD1oB,EAAM4mB,QAAQ3hB,MAAM,gCAAkCyjB,EAC1D,GACJ,EACO/B,CACX,CAnKuC,G,oCCTvC3jB,EAAA,GAAQgB,KAAOA,EAAA,EACfhB,EAAA,GAAQ/D,MAAQ,KAChB+D,EAAA,GAAQ+B,cAAgB,EAmBxB,MAAe/B,EAAO,E","sources":["webpack://smapac/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://smapac/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://smapac/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://smapac/./node_modules/@aws-amplify/cache/lib-esm/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/CognitoIdentityClient.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Parser.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/constants.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/I18n/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/index.js","webpack://smapac/./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js","webpack://smapac/./node_modules/aws-amplify/lib-esm/index.js"],"sourcesContent":["/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { StorageHelper } from '@aws-amplify/core';\n/**\n * Default cache config\n */\nexport var defaultConfig = {\n keyPrefix: 'aws-amplify-cache',\n capacityInBytes: 1048576,\n itemMaxSize: 210000,\n defaultTTL: 259200000,\n defaultPriority: 5,\n warningThreshold: 0.8,\n // the storage helper will check if localStorage exists,\n // if not, will use a in-memory object instead\n storage: new StorageHelper().getStorage(),\n};\n/**\n * return the byte size of the string\n * @param str\n */\nexport function getByteLength(str) {\n var ret = 0;\n ret = str.length;\n for (var i = str.length; i >= 0; i -= 1) {\n var charCode = str.charCodeAt(i);\n if (charCode > 0x7f && charCode <= 0x7ff) {\n ret += 1;\n }\n else if (charCode > 0x7ff && charCode <= 0xffff) {\n ret += 2;\n }\n // trail surrogate\n if (charCode >= 0xdc00 && charCode <= 0xdfff) {\n i -= 1;\n }\n }\n return ret;\n}\n/**\n * get current time\n */\nexport function getCurrTime() {\n var currTime = new Date();\n return currTime.getTime();\n}\n/**\n * check if passed value is an integer\n */\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n return _isInteger(value);\n}\nfunction _isInteger(value) {\n return (typeof value === 'number' && isFinite(value) && Math.floor(value) === value);\n}\n/**\n * provide an object as the in-memory cache\n */\nvar store = {};\nvar CacheObject = /** @class */ (function () {\n function CacheObject() {\n }\n CacheObject.clear = function () {\n store = {};\n };\n CacheObject.getItem = function (key) {\n return store[key] || null;\n };\n CacheObject.setItem = function (key, value) {\n store[key] = value;\n };\n CacheObject.removeItem = function (key) {\n delete store[key];\n };\n return CacheObject;\n}());\nexport { CacheObject };\n//# sourceMappingURL=CacheUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { getCurrTime, getByteLength, defaultConfig, isInteger } from './Utils';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('StorageCache');\n/**\n * Initialization of the cache\n *\n */\nvar StorageCache = /** @class */ (function () {\n /**\n * Initialize the cache\n * @param config - the configuration of the cache\n */\n function StorageCache(config) {\n this.config = Object.assign({}, config);\n this.cacheCurSizeKey = this.config.keyPrefix + 'CurSize';\n this.checkConfig();\n }\n StorageCache.prototype.getModuleName = function () {\n return 'Cache';\n };\n StorageCache.prototype.checkConfig = function () {\n // check configuration\n if (!isInteger(this.config.capacityInBytes)) {\n logger.error('Invalid parameter: capacityInBytes. It should be an Integer. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n if (!isInteger(this.config.itemMaxSize)) {\n logger.error('Invalid parameter: itemMaxSize. It should be an Integer. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (!isInteger(this.config.defaultTTL)) {\n logger.error('Invalid parameter: defaultTTL. It should be an Integer. Setting back to default.');\n this.config.defaultTTL = defaultConfig.defaultTTL;\n }\n if (!isInteger(this.config.defaultPriority)) {\n logger.error('Invalid parameter: defaultPriority. It should be an Integer. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (this.config.itemMaxSize > this.config.capacityInBytes) {\n logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {\n logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (Number(this.config.warningThreshold) > 1 ||\n Number(this.config.warningThreshold) < 0) {\n logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.');\n this.config.warningThreshold = defaultConfig.warningThreshold;\n }\n // set 5MB limit\n var cacheLimit = 5 * 1024 * 1024;\n if (this.config.capacityInBytes > cacheLimit) {\n logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n };\n /**\n * produce a JSON object with meta-data and data value\n * @param value - the value of the item\n * @param options - optional, the specified meta-data\n *\n * @return - the item which has the meta-data and the value\n */\n StorageCache.prototype.fillCacheItem = function (key, value, options) {\n var ret = {\n key: key,\n data: value,\n timestamp: getCurrTime(),\n visitedTime: getCurrTime(),\n priority: options.priority,\n expires: options.expires,\n type: typeof value,\n byteSize: 0,\n };\n ret.byteSize = getByteLength(JSON.stringify(ret));\n // for accurate size\n ret.byteSize = getByteLength(JSON.stringify(ret));\n return ret;\n };\n /**\n * set cache with customized configuration\n * @param config - customized configuration\n *\n * @return - the current configuration\n */\n StorageCache.prototype.configure = function (config) {\n if (!config) {\n return this.config;\n }\n if (config.keyPrefix) {\n logger.warn(\"Don't try to configure keyPrefix!\");\n }\n this.config = Object.assign({}, this.config, config, config.Cache);\n this.checkConfig();\n return this.config;\n };\n return StorageCache;\n}());\nexport { StorageCache };\n/**\n * @deprecated use named import\n */\nexport default StorageCache;\n//# sourceMappingURL=StorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { defaultConfig, getCurrTime } from './Utils';\nimport { StorageCache } from './StorageCache';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Cache');\n/**\n * Customized storage based on the SessionStorage or LocalStorage with LRU implemented\n */\nvar BrowserStorageCacheClass = /** @class */ (function (_super) {\n __extends(BrowserStorageCacheClass, _super);\n /**\n * initialize the cache\n * @param config - the configuration of the cache\n */\n function BrowserStorageCacheClass(config) {\n var _this = this;\n var cacheConfig = config\n ? Object.assign({}, defaultConfig, config)\n : defaultConfig;\n _this = _super.call(this, cacheConfig) || this;\n _this.config.storage = cacheConfig.storage;\n _this.getItem = _this.getItem.bind(_this);\n _this.setItem = _this.setItem.bind(_this);\n _this.removeItem = _this.removeItem.bind(_this);\n return _this;\n }\n /**\n * decrease current size of the cache\n *\n * @private\n * @param amount - the amount of the cache size which needs to be decreased\n */\n BrowserStorageCacheClass.prototype._decreaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize - amount).toString());\n };\n /**\n * increase current size of the cache\n *\n * @private\n * @param amount - the amount of the cache szie which need to be increased\n */\n BrowserStorageCacheClass.prototype._increaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize + amount).toString());\n };\n /**\n * update the visited time if item has been visited\n *\n * @private\n * @param item - the item which need to be refreshed\n * @param prefixedKey - the key of the item\n *\n * @return the refreshed item\n */\n BrowserStorageCacheClass.prototype._refreshItem = function (item, prefixedKey) {\n item.visitedTime = getCurrTime();\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n return item;\n };\n /**\n * check wether item is expired\n *\n * @private\n * @param key - the key of the item\n *\n * @return true if the item is expired.\n */\n BrowserStorageCacheClass.prototype._isExpired = function (key) {\n var text = this.config.storage.getItem(key);\n var item = JSON.parse(text);\n if (getCurrTime() >= item.expires) {\n return true;\n }\n return false;\n };\n /**\n * delete item from cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param size - optional, the byte size of the item\n */\n BrowserStorageCacheClass.prototype._removeItem = function (prefixedKey, size) {\n var itemSize = size\n ? size\n : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize;\n this._decreaseCurSizeInBytes(itemSize);\n // remove the cache item\n this.config.storage.removeItem(prefixedKey);\n };\n /**\n * put item into cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param itemData - the value of the item\n * @param itemSizeInBytes - the byte size of the item\n */\n BrowserStorageCacheClass.prototype._setItem = function (prefixedKey, item) {\n // update the cache size\n this._increaseCurSizeInBytes(item.byteSize);\n try {\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n }\n catch (setItemErr) {\n // if failed, we need to rollback the cache size\n this._decreaseCurSizeInBytes(item.byteSize);\n logger.error(\"Failed to set item \" + setItemErr);\n }\n };\n /**\n * total space needed when poping out items\n *\n * @private\n * @param itemSize\n *\n * @return total space needed\n */\n BrowserStorageCacheClass.prototype._sizeToPop = function (itemSize) {\n var spaceItemNeed = this.getCacheCurSize() + itemSize - this.config.capacityInBytes;\n var cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes;\n return spaceItemNeed > cacheThresholdSpace\n ? spaceItemNeed\n : cacheThresholdSpace;\n };\n /**\n * see whether cache is full\n *\n * @private\n * @param itemSize\n *\n * @return true if cache is full\n */\n BrowserStorageCacheClass.prototype._isCacheFull = function (itemSize) {\n return itemSize + this.getCacheCurSize() > this.config.capacityInBytes;\n };\n /**\n * scan the storage and find out all the keys owned by this cache\n * also clean the expired keys while scanning\n *\n * @private\n *\n * @return array of keys\n */\n BrowserStorageCacheClass.prototype._findValidKeys = function () {\n var keys = [];\n var keyInCache = [];\n // get all keys in Storage\n for (var i = 0; i < this.config.storage.length; i += 1) {\n keyInCache.push(this.config.storage.key(i));\n }\n // find those items which belong to our cache and also clean those expired items\n for (var i = 0; i < keyInCache.length; i += 1) {\n var key = keyInCache[i];\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n if (this._isExpired(key)) {\n this._removeItem(key);\n }\n else {\n keys.push(key);\n }\n }\n }\n return keys;\n };\n /**\n * get all the items we have, sort them by their priority,\n * if priority is same, sort them by their last visited time\n * pop out items from the low priority (5 is the lowest)\n *\n * @private\n * @param keys - all the keys in this cache\n * @param sizeToPop - the total size of the items which needed to be poped out\n */\n BrowserStorageCacheClass.prototype._popOutItems = function (keys, sizeToPop) {\n var items = [];\n var remainedSize = sizeToPop;\n // get the items from Storage\n for (var i = 0; i < keys.length; i += 1) {\n var val = this.config.storage.getItem(keys[i]);\n if (val != null) {\n var item = JSON.parse(val);\n items.push(item);\n }\n }\n // first compare priority\n // then compare visited time\n items.sort(function (a, b) {\n if (a.priority > b.priority) {\n return -1;\n }\n else if (a.priority < b.priority) {\n return 1;\n }\n else {\n if (a.visitedTime < b.visitedTime) {\n return -1;\n }\n else\n return 1;\n }\n });\n for (var i = 0; i < items.length; i += 1) {\n // pop out items until we have enough room for new item\n this._removeItem(items[i].key, items[i].byteSize);\n remainedSize -= items[i].byteSize;\n if (remainedSize <= 0) {\n return;\n }\n }\n };\n /**\n * Set item into cache. You can put number, string, boolean or object.\n * The cache will first check whether has the same key.\n * If it has, it will delete the old item and then put the new item in\n * The cache will pop out items if it is full\n * You can specify the cache item options. The cache will abort and output a warning:\n * If the key is invalid\n * If the size of the item exceeds itemMaxSize.\n * If the value is undefined\n * If incorrect cache item configuration\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param value - the value of the item\n * @param {Object} [options] - optional, the specified meta-data\n */\n BrowserStorageCacheClass.prototype.setItem = function (key, value, options) {\n logger.log(\"Set item: key is \" + key + \", value is \" + value + \" with options: \" + options);\n var prefixedKey = this.config.keyPrefix + key;\n // invalid keys\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return;\n }\n if (typeof value === 'undefined') {\n logger.warn(\"The value of item should not be undefined!\");\n return;\n }\n var cacheItemOptions = {\n priority: options && options.priority !== undefined\n ? options.priority\n : this.config.defaultPriority,\n expires: options && options.expires !== undefined\n ? options.expires\n : this.config.defaultTTL + getCurrTime(),\n };\n if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {\n logger.warn(\"Invalid parameter: priority due to out or range. It should be within 1 and 5.\");\n return;\n }\n var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions);\n // check wether this item is too big;\n if (item.byteSize > this.config.itemMaxSize) {\n logger.warn(\"Item with key: \" + key + \" you are trying to put into is too big!\");\n return;\n }\n try {\n // first look into the storage, if it exists, delete it.\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n // check whether the cache is full\n if (this._isCacheFull(item.byteSize)) {\n var validKeys = this._findValidKeys();\n // check again and then pop out items\n if (this._isCacheFull(item.byteSize)) {\n var sizeToPop = this._sizeToPop(item.byteSize);\n this._popOutItems(validKeys, sizeToPop);\n }\n }\n // put item in the cache\n // may failed due to storage full\n this._setItem(prefixedKey, item);\n }\n catch (e) {\n logger.warn(\"setItem failed! \" + e);\n }\n };\n /**\n * Get item from cache. It will return null if item doesn’t exist or it has been expired.\n * If you specified callback function in the options,\n * then the function will be executed if no such item in the cache\n * and finally put the return value into cache.\n * Please make sure the callback function will return the value you want to put into the cache.\n * The cache will abort output a warning:\n * If the key is invalid\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param {Object} [options] - the options of callback function\n *\n * @return - return the value of the item\n */\n BrowserStorageCacheClass.prototype.getItem = function (key, options) {\n logger.log(\"Get item: key is \" + key + \" with options \" + options);\n var ret = null;\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return null;\n }\n try {\n ret = this.config.storage.getItem(prefixedKey);\n if (ret != null) {\n if (this._isExpired(prefixedKey)) {\n // if expired, remove that item and return null\n this._removeItem(prefixedKey, JSON.parse(ret).byteSize);\n ret = null;\n }\n else {\n // if not expired, great, return the value and refresh it\n var item = JSON.parse(ret);\n item = this._refreshItem(item, prefixedKey);\n return item.data;\n }\n }\n if (options && options.callback !== undefined) {\n var val = options.callback();\n if (val !== null) {\n this.setItem(key, val, options);\n }\n return val;\n }\n return null;\n }\n catch (e) {\n logger.warn(\"getItem failed! \" + e);\n return null;\n }\n };\n /**\n * remove item from the cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n * @param key - the key of the item\n */\n BrowserStorageCacheClass.prototype.removeItem = function (key) {\n logger.log(\"Remove item: key is \" + key);\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n return;\n }\n try {\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n }\n catch (e) {\n logger.warn(\"removeItem failed! \" + e);\n }\n };\n /**\n * clear the entire cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n */\n BrowserStorageCacheClass.prototype.clear = function () {\n logger.log(\"Clear Cache\");\n var keysToRemove = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0) {\n keysToRemove.push(key);\n }\n }\n try {\n for (var i = 0; i < keysToRemove.length; i += 1) {\n this.config.storage.removeItem(keysToRemove[i]);\n }\n }\n catch (e) {\n logger.warn(\"clear failed! \" + e);\n }\n };\n /**\n * Return all the keys in the cache.\n *\n * @return - all keys in the cache\n */\n BrowserStorageCacheClass.prototype.getAllKeys = function () {\n var keys = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n keys.push(key.substring(this.config.keyPrefix.length));\n }\n }\n return keys;\n };\n /**\n * return the current size of the cache\n *\n * @return - current size of the cache\n */\n BrowserStorageCacheClass.prototype.getCacheCurSize = function () {\n var ret = this.config.storage.getItem(this.cacheCurSizeKey);\n if (!ret) {\n this.config.storage.setItem(this.cacheCurSizeKey, '0');\n ret = '0';\n }\n return Number(ret);\n };\n /**\n * Return a new instance of cache with customized configuration.\n * @param config - the customized configuration\n *\n * @return - new instance of Cache\n */\n BrowserStorageCacheClass.prototype.createInstance = function (config) {\n if (!config.keyPrefix || config.keyPrefix === defaultConfig.keyPrefix) {\n logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');\n config.keyPrefix = getCurrTime.toString();\n }\n return new BrowserStorageCacheClass(config);\n };\n return BrowserStorageCacheClass;\n}(StorageCache));\nexport { BrowserStorageCacheClass };\nexport var BrowserStorageCache = new BrowserStorageCacheClass();\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\n//# sourceMappingURL=BrowserStorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from '@aws-amplify/core';\nimport { BrowserStorageCache } from './BrowserStorageCache';\nimport { InMemoryCache } from './InMemoryCache';\nexport { BrowserStorageCache, InMemoryCache };\nexport { BrowserStorageCache as Cache };\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\nAmplify.register(BrowserStorageCache);\n//# sourceMappingURL=index.js.map","var __read = (this && this.__read) || function (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};\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=Amplify.js.map","var __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar GoogleOAuth = /** @class */ (function () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\n GoogleOAuth.prototype.refreshGoogleToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser)\n ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n return new Promise(function (res, rej) {\n ga.getAuthInstance()\n .then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n var googleUser = googleAuth.currentUser.get();\n // refresh the token\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser\n .reloadAuthResponse()\n .then(function (authResponse) {\n var id_token = authResponse.id_token, expires_at = authResponse.expires_at;\n res({ token: id_token, expires_at: expires_at });\n })\n .catch(function (err) {\n if (err && err.error === 'network_error') {\n // Not using NonRetryableError so handler will be retried\n rej('Network error reloading google auth response');\n }\n else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n }\n else {\n rej(new NonRetryableError('User is not signed in with Google'));\n }\n })\n .catch(function (err) {\n logger.debug('Failed to refresh google token', err);\n rej(new NonRetryableError('Failed to refresh google token'));\n });\n });\n };\n return GoogleOAuth;\n}());\nexport { GoogleOAuth };\n/**\n * @deprecated use named import\n */\nexport default GoogleOAuth;\n//# sourceMappingURL=GoogleOAuth.js.map","var __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var fb = window['FB'];\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar FacebookOAuth = /** @class */ (function () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\n FacebookOAuth.prototype.refreshFacebookToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser)\n fb = window['FB'];\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\n return new Promise(function (res, rej) {\n fb.getLoginStatus(function (fbResponse) {\n if (!fbResponse || !fbResponse.authResponse) {\n var errorMessage = 'no response from facebook when refreshing the jwt token';\n logger.debug(errorMessage);\n // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n rej(new NonRetryableError(errorMessage));\n }\n else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken, expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n res({\n token: accessToken,\n expires_at: expires_at,\n });\n }\n }, { scope: 'public_profile,email' });\n });\n };\n return FacebookOAuth;\n}());\nexport { FacebookOAuth };\n/**\n * @deprecated use named import\n */\nexport default FacebookOAuth;\n//# sourceMappingURL=FacebookOAuth.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\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};\nimport { CognitoIdentityClient, } from '@aws-sdk/client-cognito-identity';\nimport { getAmplifyUserAgent } from '../Platform';\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(config) {\n var client = new CognitoIdentityClient({\n region: config.region,\n customUserAgent: getAmplifyUserAgent(),\n });\n client.middlewareStack.add(function (next, _) { return function (args) {\n return next(middlewareArgs(args));\n }; }, {\n step: 'build',\n name: 'cacheControlMiddleWare',\n });\n return client;\n}\nexport function middlewareArgs(args) {\n return __assign(__assign({}, args), { request: __assign(__assign({}, args.request), { headers: __assign(__assign({}, args.request.headers), { 'cache-control': 'no-store' }) }) });\n}\n//# sourceMappingURL=CognitoIdentityClient.js.map","var __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};\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool, } from '@aws-sdk/credential-provider-cognito-identity';\nimport { GetIdCommand, GetCredentialsForIdentityCommand, } from '@aws-sdk/client-cognito-identity';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\nvar CredentialsClass = /** @class */ (function () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {};\n // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n CredentialsClass.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers;\n // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n this._storage = this._config.storage;\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n return this._config;\n };\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n };\n // currently we only store the guest identity in local storage\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\" + COGNITO_IDENTITY_KEY_PREFIX + identityPoolId;\n };\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n }\n else {\n logger.debug('getting old cred promise');\n }\n return this._gettingCredPromise;\n };\n CredentialsClass.prototype._keepAlive = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cred, _a, Auth, user_1, session, refreshToken_1, refreshRequest, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('checking if credentials exists and not expired');\n cred = this._credentials;\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2 /*return*/, Promise.resolve(cred)];\n }\n logger.debug('need to get a new credential or refresh the existing one');\n _a = this.Auth, Auth = _a === void 0 ? Amplify.Auth : _a;\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n return [2 /*return*/, Promise.reject('No Auth module registered in Amplify')];\n }\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3 /*break*/, 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, Auth.currentUserPoolUser()];\n case 2:\n user_1 = _b.sent();\n return [4 /*yield*/, Auth.currentSession()];\n case 3:\n session = _b.sent();\n refreshToken_1 = session.refreshToken;\n refreshRequest = new Promise(function (res, rej) {\n user_1.refreshSession(refreshToken_1, function (err, data) {\n return err ? rej(err) : res(data);\n });\n });\n return [4 /*yield*/, refreshRequest];\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n return [3 /*break*/, 6];\n case 5:\n err_1 = _b.sent();\n // should not throw because user might just be on guest access or is authenticated through federation\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/, Auth.currentUserCredentials()];\n }\n });\n });\n };\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at;\n // Make sure expires_at is in millis\n expires_at =\n new Date(expires_at).getFullYear() === 1970\n ? expires_at * 1000\n : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n if (expires_at > new Date().getTime()) {\n // if not expired\n logger.debug('token not expired');\n return this._setCredentialsFromFederation({\n provider: provider,\n token: token,\n user: user,\n identity_id: identity_id,\n expires_at: expires_at,\n });\n }\n else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] &&\n typeof that._refreshHandlers[provider] === 'function') {\n logger.debug('getting refreshed jwt token from federation provider');\n return this._providerRefreshWithRetry({\n refreshHandler: that._refreshHandlers[provider],\n provider: provider,\n user: user,\n });\n }\n else {\n logger.debug('no refresh handler for provider:', provider);\n this.clear();\n return Promise.reject('no refresh handler for provider');\n }\n }\n };\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user;\n var MAX_DELAY_MS = 10 * 1000;\n // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n .then(function (data) {\n logger.debug('refresh federated token sucessfully', data);\n return _this._setCredentialsFromFederation({\n provider: provider,\n token: data.token,\n user: user,\n identity_id: data.identity_id,\n expires_at: data.expires_at,\n });\n })\n .catch(function (e) {\n var isNetworkError = typeof e === 'string' &&\n e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n if (!isNetworkError) {\n _this.clear();\n }\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\n logger.debug('are these credentials expired?', credentials);\n var ts = Date.now();\n /* returns date object.\n https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n */\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\n CredentialsClass.prototype._setCredentialsForGuest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, identityPoolId, region, mandatorySignIn, identityId, _b, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug('setting credentials for guest');\n _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn;\n if (mandatorySignIn) {\n return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')];\n }\n _b = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_b._identityId = _c.sent());\n cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n credentials = undefined;\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n }\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)\n .then(function (res) {\n return res;\n })\n .catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\n var credentialsProvider;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' &&\n e.message === \"Identity '\" + identityId + \"' not found.\")) return [3 /*break*/, 2];\n logger.debug('Failed to load guest credentials');\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 1:\n _a.sent();\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)];\n case 2: return [2 /*return*/, e];\n }\n });\n }); })];\n }\n });\n });\n };\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var provider = params.provider, token = params.token, identity_id = params.identity_id;\n var domains = {\n google: 'accounts.google.com',\n facebook: 'graph.facebook.com',\n amazon: 'www.amazon.com',\n developer: 'cognito-identity.amazonaws.com',\n };\n // Use custom provider url instead of the predefined ones\n var domain = domains[provider] || provider;\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n var logins = {};\n logins[domain] = token;\n var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n var credentials = undefined;\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n }\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n /*\n Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n https://git.io/JeDxU\n\n Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3 /*break*/, 3];\n return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins: logins,\n }))];\n case 2:\n IdentityId = (_c.sent()).IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n case 3: return [4 /*yield*/, cognitoClient.send(new GetCredentialsForIdentityCommand({\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins,\n }))];\n case 4:\n _a = _c.sent(), _b = _a.Credentials, AccessKeyId = _b.AccessKeyId, Expiration = _b.Expiration, SecretKey = _b.SecretKey, SessionToken = _b.SessionToken, primaryIdentityId = _a.IdentityId;\n this._identityId = primaryIdentityId;\n if (!guestIdentityId) return [3 /*break*/, 6];\n // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n logger.debug(\"The guest identity \" + guestIdentityId + \" has been successfully linked to the logins\");\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + guestIdentityId + \" has become the primary identity\");\n }\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n _c.label = 6;\n case 6: \n // https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId,\n }];\n }\n });\n }); };\n var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n credentials\n .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () {\n var user, provider, token, expires_at, identity_id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Load credentials successfully', credentials);\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n if (source === 'federated') {\n user = Object.assign({ id: this._credentials.identityId }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n try {\n this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({\n provider: provider,\n token: token,\n user: user,\n expires_at: expires_at,\n identity_id: identity_id,\n }));\n }\n catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n if (!(source === 'guest')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._setGuestIdentityId(credentials.identityId)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n res(that._credentials);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n if (err) {\n logger.debug('Failed to load credentials', credentials);\n logger.debug('Error loading credentials', err);\n rej(err);\n return;\n }\n });\n });\n };\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n }\n else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n }\n else if (source === 'guest') {\n return this._setCredentialsForGuest();\n }\n else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\n };\n CredentialsClass.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._credentials = null;\n this._credentials_source = null;\n logger.debug('removing aws-amplify-federatedInfo from storage');\n this._storage.removeItem('aws-amplify-federatedInfo');\n return [2 /*return*/];\n });\n });\n };\n /* operations on local stored guest identity */\n CredentialsClass.prototype._getGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [2 /*return*/, this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._setGuestIdentityId = function (identityId) {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._removeGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId;\n return __generator(this, function (_a) {\n identityPoolId = this._config.identityPoolId;\n logger.debug(\"removing \" + this._getCognitoIdentityIdStorageKey(identityPoolId) + \" from storage\");\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n return [2 /*return*/];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n CredentialsClass.prototype.shear = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n return CredentialsClass;\n}());\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n/**\n * @deprecated use named import\n */\nexport default Credentials;\n//# sourceMappingURL=Credentials.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nfunction isLegacyCallback(callback) {\n return callback.onHubCapsule !== undefined;\n}\nvar HubClass = /** @class */ (function () {\n function HubClass(name) {\n this.listeners = [];\n this.patterns = [];\n this.protectedChannels = [\n 'core',\n 'auth',\n 'api',\n 'analytics',\n 'interactions',\n 'pubsub',\n 'storage',\n 'ui',\n 'xr',\n ];\n this.name = name;\n }\n // Note - Need to pass channel as a reference for removal to work and not anonymous function\n HubClass.prototype.remove = function (channel, listener) {\n if (channel instanceof RegExp) {\n var pattern_1 = this.patterns.find(function (_a) {\n var pattern = _a.pattern;\n return pattern.source === channel.source;\n });\n if (!pattern_1) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.patterns = __spread(this.patterns.filter(function (x) { return x !== pattern_1; }));\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.listeners[channel] = __spread(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n }));\n }\n };\n HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) {\n if (source === void 0) { source = ''; }\n if (this.protectedChannels.indexOf(channel) > -1) {\n var hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n if (!hasAccess) {\n logger.warn(\"WARNING: \" + channel + \" is protected and dispatching on it can have unintended consequences\");\n }\n }\n var capsule = {\n channel: channel,\n payload: __assign({}, payload),\n source: source,\n patternInfo: [],\n };\n try {\n this._toListeners(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n };\n HubClass.prototype.listen = function (channel, callback, listenerName) {\n var _this = this;\n if (listenerName === void 0) { listenerName = 'noname'; }\n var cb;\n // Check for legacy onHubCapsule callback for backwards compatability\n if (isLegacyCallback(callback)) {\n logger.warn(\"WARNING onHubCapsule is Deprecated. Please pass in a callback.\");\n cb = callback.onHubCapsule.bind(callback);\n }\n else if (typeof callback !== 'function') {\n throw new Error('No callback supplied to Hub');\n }\n else {\n cb = callback;\n }\n if (channel instanceof RegExp) {\n this.patterns.push({\n pattern: channel,\n callback: cb,\n });\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n holder = [];\n this.listeners[channel] = holder;\n }\n holder.push({\n name: listenerName,\n callback: cb,\n });\n }\n return function () {\n _this.remove(channel, cb);\n };\n };\n HubClass.prototype._toListeners = function (capsule) {\n var channel = capsule.channel, payload = capsule.payload;\n var holder = this.listeners[channel];\n if (holder) {\n holder.forEach(function (listener) {\n logger.debug(\"Dispatching to \" + channel + \" with \", payload);\n try {\n listener.callback(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n });\n }\n if (this.patterns.length > 0) {\n if (!payload.message) {\n logger.warn(\"Cannot perform pattern matching without a message key\");\n return;\n }\n var payloadStr_1 = payload.message;\n this.patterns.forEach(function (pattern) {\n var match = payloadStr_1.match(pattern.pattern);\n if (match) {\n var _a = __read(match), groups = _a.slice(1);\n var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups });\n try {\n pattern.callback(dispatchingCapsule);\n }\n catch (e) {\n logger.error(e);\n }\n }\n });\n }\n };\n return HubClass;\n}());\nexport { HubClass };\n/*We export a __default__ instance of HubClass to use it as a\npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\nexport var Hub = new HubClass('__default__');\n/**\n * @deprecated use named import\n */\nexport default Hub;\n//# sourceMappingURL=Hub.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar MIME_MAP = [\n { type: 'text/plain', ext: 'txt' },\n { type: 'text/html', ext: 'html' },\n { type: 'text/javascript', ext: 'js' },\n { type: 'text/css', ext: 'css' },\n { type: 'text/csv', ext: 'csv' },\n { type: 'text/yaml', ext: 'yml' },\n { type: 'text/yaml', ext: 'yaml' },\n { type: 'text/calendar', ext: 'ics' },\n { type: 'text/calendar', ext: 'ical' },\n { type: 'image/apng', ext: 'apng' },\n { type: 'image/bmp', ext: 'bmp' },\n { type: 'image/gif', ext: 'gif' },\n { type: 'image/x-icon', ext: 'ico' },\n { type: 'image/x-icon', ext: 'cur' },\n { type: 'image/jpeg', ext: 'jpg' },\n { type: 'image/jpeg', ext: 'jpeg' },\n { type: 'image/jpeg', ext: 'jfif' },\n { type: 'image/jpeg', ext: 'pjp' },\n { type: 'image/jpeg', ext: 'pjpeg' },\n { type: 'image/png', ext: 'png' },\n { type: 'image/svg+xml', ext: 'svg' },\n { type: 'image/tiff', ext: 'tif' },\n { type: 'image/tiff', ext: 'tiff' },\n { type: 'image/webp', ext: 'webp' },\n { type: 'application/json', ext: 'json' },\n { type: 'application/xml', ext: 'xml' },\n { type: 'application/x-sh', ext: 'sh' },\n { type: 'application/zip', ext: 'zip' },\n { type: 'application/x-rar-compressed', ext: 'rar' },\n { type: 'application/x-tar', ext: 'tar' },\n { type: 'application/x-bzip', ext: 'bz' },\n { type: 'application/x-bzip2', ext: 'bz2' },\n { type: 'application/pdf', ext: 'pdf' },\n { type: 'application/java-archive', ext: 'jar' },\n { type: 'application/msword', ext: 'doc' },\n { type: 'application/vnd.ms-excel', ext: 'xls' },\n { type: 'application/vnd.ms-excel', ext: 'xlsx' },\n { type: 'message/rfc822', ext: 'eml' },\n];\nexport var isEmpty = function (obj) {\n if (obj === void 0) { obj = {}; }\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function (list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\n var dirX = dir && dir === 'desc' ? -1 : 1;\n list.sort(function (a, b) {\n var a_val = a[field];\n var b_val = b[field];\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n if (a_val < b_val) {\n return -1 * dirX;\n }\n if (a_val > b_val) {\n return 1 * dirX;\n }\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function (obj, less) {\n var ret = Object.assign({}, obj);\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n }\n else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n return ret;\n};\nexport var filenameToContentType = function (filename, defVal) {\n if (defVal === void 0) { defVal = 'application/octet-stream'; }\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function (contentType) {\n var type = contentType.toLowerCase();\n if (type.startsWith('text/')) {\n return true;\n }\n return ('application/json' === type ||\n 'application/xml' === type ||\n 'application/sh' === type);\n};\nexport var generateRandomString = function () {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport var makeQuerablePromise = function (promise) {\n if (promise.isResolved)\n return promise;\n var isPending = true;\n var isRejected = false;\n var isFullfilled = false;\n var result = promise.then(function (data) {\n isFullfilled = true;\n isPending = false;\n return data;\n }, function (e) {\n isRejected = true;\n isPending = false;\n throw e;\n });\n result.isFullfilled = function () { return isFullfilled; };\n result.isPending = function () { return isPending; };\n result.isRejected = function () { return isRejected; };\n return result;\n};\nexport var isWebWorker = function () {\n if (typeof self === 'undefined') {\n return false;\n }\n var selfContext = self;\n return typeof selfContext.WorkerGlobalScope !== 'undefined' &&\n self instanceof selfContext.WorkerGlobalScope;\n};\nexport var browserOrNode = function () {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n return {\n isBrowser: isBrowser,\n isNode: isNode,\n };\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key)\n ? key\n : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key)\n ? key\n : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport var isStrictObject = function (obj) {\n return (obj instanceof Object &&\n !(obj instanceof Array) &&\n !(obj instanceof Function) &&\n !(obj instanceof Number) &&\n !(obj instanceof String) &&\n !(obj instanceof Boolean));\n};\n/**\n * @deprecated use per-function imports\n */\nvar JS = /** @class */ (function () {\n function JS() {\n }\n JS.isEmpty = isEmpty;\n JS.sortByField = sortByField;\n JS.objectLessAttributes = objectLessAttributes;\n JS.filenameToContentType = filenameToContentType;\n JS.isTextFile = isTextFile;\n JS.generateRandomString = generateRandomString;\n JS.makeQuerablePromise = makeQuerablePromise;\n JS.isWebWorker = isWebWorker;\n JS.browserOrNode = browserOrNode;\n JS.transferKeyToLowerCase = transferKeyToLowerCase;\n JS.transferKeyToUpperCase = transferKeyToUpperCase;\n JS.isStrictObject = isStrictObject;\n return JS;\n}());\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\nexport default JS;\n//# sourceMappingURL=JS.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n//# sourceMappingURL=Constants.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nvar ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n }\n else if (msg.length === 1) {\n message = prefix + \" \" + msg[0];\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n }\n else {\n message = prefix + \" \" + msg;\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.WARN], msg));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.ERROR], msg));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.DEBUG], msg));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.VERBOSE], msg));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\nexport { ConsoleLogger };\n//# sourceMappingURL=ConsoleLogger.js.map","var __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};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseMobileHubConfig = function (config) {\n var amplifyConfig = {};\n // Analytics\n if (config['aws_mobile_analytics_app_id']) {\n var Analytics = {\n AWSPinpoint: {\n appId: config['aws_mobile_analytics_app_id'],\n region: config['aws_mobile_analytics_app_region'],\n },\n };\n amplifyConfig.Analytics = Analytics;\n }\n // Auth\n if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n amplifyConfig.Auth = {\n userPoolId: config['aws_user_pools_id'],\n userPoolWebClientId: config['aws_user_pools_web_client_id'],\n region: config['aws_cognito_region'],\n identityPoolId: config['aws_cognito_identity_pool_id'],\n identityPoolRegion: config['aws_cognito_region'],\n mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n signUpVerificationMethod: config['aws_cognito_sign_up_verification_method'] || 'code',\n };\n }\n // Storage\n var storageConfig;\n if (config['aws_user_files_s3_bucket']) {\n storageConfig = {\n AWSS3: {\n bucket: config['aws_user_files_s3_bucket'],\n region: config['aws_user_files_s3_bucket_region'],\n dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'],\n },\n };\n }\n else {\n storageConfig = config ? config.Storage || config : {};\n }\n // Logging\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), { region: config['aws_project_region'] });\n }\n // Geo\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service'],\n };\n }\n }\n amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics);\n amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n amplifyConfig.Storage = Object.assign({}, storageConfig);\n amplifyConfig.Logging = Object.assign({}, amplifyConfig.Logging, config.Logging);\n logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n return amplifyConfig;\n};\n/**\n * @deprecated use per-function export\n */\nvar Parser = /** @class */ (function () {\n function Parser() {\n }\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}());\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\nexport default Parser;\n//# sourceMappingURL=Parser.js.map","// generated by genversion\nexport var version = '4.7.14';\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false,\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getAmplifyUserAgent = function (content) {\n return \"\" + Platform.userAgent + (content ? content : '');\n};\n/**\n * @deprecated use named import\n */\nexport default Platform;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\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};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { Sha256 as jsSha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\nimport { parse, format } from 'url';\nimport { DateUtils } from './Util';\nvar logger = new Logger('Signer');\nvar DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';\nvar IOT_SERVICE_NAME = 'iotdevicegateway';\nvar encrypt = function (key, src) {\n var hash = new jsSha256(key);\n hash.update(src);\n return hash.digestSync();\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new jsSha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n * @private\n * RFC 3986 compliant version of encodeURIComponent\n */\nvar escape_RFC3986 = function (component) {\n return component.replace(/[!'()*]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n};\n/**\n * @private\n * Create canonical query string\n *\n */\nvar canonical_query = function (query) {\n if (!query || query.length === 0) {\n return '';\n }\n return query\n .split('&')\n .map(function (e) {\n var key_val = e.split('=');\n if (key_val.length === 1) {\n return e;\n }\n else {\n var reencoded_val = escape_RFC3986(key_val[1]);\n return key_val[0] + '=' + reencoded_val;\n }\n })\n .sort(function (a, b) {\n var key_a = a.split('=')[0];\n var key_b = b.split('=')[0];\n if (key_a === key_b) {\n return a < b ? -1 : 1;\n }\n else {\n return key_a < key_b ? -1 : 1;\n }\n })\n .join('&');\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return (Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : '',\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n');\n};\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) {\n return key.toLowerCase();\n })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = parse(request.url);\n return [\n request.method || '/',\n encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),\n canonical_query(url_info.query),\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.data),\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = parse(request.url), host = url_info.host;\n var matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n var parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1],\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [d_str, region, service, 'aws4_request'].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [algorithm, dt_str, scope, hash(canonical_request)].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n logger.debug(service_info);\n var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return toHex(encrypt(signing_key, str_to_sign));\n};\n/**\n * @private\n * Create authorization header\n * Refer to\n * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n */\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature,\n ].join(', ');\n};\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n /**\n * Sign a HTTP request, add 'Authorization' header to request param\n * @method sign\n * @memberof Signer\n * @static\n *\n * @param {object} request - HTTP request object\n
\n    request: {\n        method: GET | POST | PUT ...\n        url: ...,\n        headers: {\n            header1: ...\n        },\n        data: data\n    }\n    
\n * @param {object} access_info - AWS access credential info\n
\n    access_info: {\n        access_key: ...,\n        secret_key: ...,\n        session_token: ...\n    }\n    
\n * @param {object} [service_info] - AWS service type and region, optional,\n * if not provided then parse out from url\n
\n    service_info: {\n        service: ...,\n        region: ...\n    }\n    
\n *\n * @returns {object} Signed HTTP request\n */\n Signer.sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n if (request.body && !request.data) {\n throw new Error('The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.');\n }\n // datetime string and date string\n var dt = DateUtils.getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8);\n var url_info = parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n logger.debug(request_str);\n // Task 2: Create a String to Sign\n var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n };\n Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {\n var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n var now = DateUtils.getDateWithClockOffset()\n .toISOString()\n .replace(/[:\\-]|\\.\\d{3}/g, '');\n var today = now.substr(0, 8);\n // Intentionally discarding search\n var _a = parse(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, [\"search\"]);\n var host = parsedUrl.host;\n var signedHeaders = { host: host };\n var _b = serviceInfo || parse_service_info({ url: format(parsedUrl) }), region = _b.region, service = _b.service;\n var credentialScope = credential_scope(today, region, service);\n // IoT service does not allow the session token in the canonical request\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;\n var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired\n ? { 'X-Amz-Security-Token': \"\" + accessInfo.session_token }\n : {})), (expiration ? { 'X-Amz-Expires': \"\" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') });\n var canonicalRequest = canonical_request({\n method: method,\n url: format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })),\n headers: signedHeaders,\n data: body,\n });\n var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope);\n var signing_key = get_signing_key(accessInfo.secret_key, today, {\n region: region,\n service: service,\n });\n var signature = get_signature(signing_key, stringToSign);\n var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && {\n 'X-Amz-Security-Token': accessInfo.session_token,\n }));\n var result = format({\n protocol: parsedUrl.protocol,\n slashes: true,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n pathname: parsedUrl.pathname,\n query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams),\n });\n return result;\n };\n return Signer;\n}());\nexport { Signer };\n/**\n * @deprecated use per-function import\n */\nexport default Signer;\n//# sourceMappingURL=Signer.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar dataMemory = {};\n/** @class */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function (key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n };\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n MemoryStorage.getItem = function (key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key)\n ? dataMemory[key]\n : undefined;\n };\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n MemoryStorage.removeItem = function (key) {\n return delete dataMemory[key];\n };\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n MemoryStorage.clear = function () {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\nvar StorageHelper = /** @class */ (function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.amplify.test-ls', 1);\n this.storageWindow.removeItem('aws.amplify.test-ls');\n }\n catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n StorageHelper.prototype.getStorage = function () {\n return this.storageWindow;\n };\n return StorageHelper;\n}());\nexport { StorageHelper };\n/**\n * @deprecated use named import\n */\nexport default StorageHelper;\n//# sourceMappingURL=index.js.map","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(context) {\n if (context === void 0) { context = {}; }\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req\n ? new Cookies(context.req.headers.cookie)\n : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function () {\n return Object.entries(this.store).length;\n },\n enumerable: true,\n configurable: true\n });\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n Array.from(new Array(this.length))\n .map(function (_, i) { return _this.key(i); })\n .forEach(function (key) { return _this.removeItem(key); });\n };\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key)\n ? this.store[key]\n : null;\n };\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/',\n });\n };\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value);\n // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n var tokenType = key.split('.').pop();\n switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser':\n // accessToken is required for CognitoUserSession\n case 'accessToken':\n // refreshToken originates on the client, but SSR pages won't fail when this expires\n // Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n case 'refreshToken':\n // Required for CognitoUserSession\n case 'idToken':\n isBrowser\n ? this.setUniversalItem(key, value)\n : this.setLocalItem(key, value);\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // case 'userData':\n // Ignoring clockDrift on the server for now, but needs testing\n // case 'clockDrift':\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value) {\n this.cookies.set(key, value, {\n path: '/',\n // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n sameSite: true,\n // Allow unsecure requests to http://localhost:3000/ when in development.\n secure: window.location.hostname === 'localhost' ? false : true,\n });\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=index.js.map","/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\n */\nvar __read = (this && this.__read) || function (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// Comment - TODO: remove\nvar FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\nexport var DateUtils = {\n /**\n * Milliseconds to offset the date to compensate for clock skew between device & services\n */\n clockOffset: 0,\n getDateWithClockOffset: function () {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n }\n else {\n return new Date();\n }\n },\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function () {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function (date) {\n if (date === void 0) { date = DateUtils.getDateWithClockOffset(); }\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function (header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function (serverDate) {\n // API gateway permits client calls that are off by no more than ±5 minutes\n return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);\n },\n isClockSkewError: function (error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&\n (headers.date || headers.Date));\n },\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function (offset) {\n DateUtils.clockOffset = offset;\n },\n};\n//# sourceMappingURL=DateUtils.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nvar ReachabilityNavigator = /** @class */ (function () {\n function ReachabilityNavigator() {\n }\n ReachabilityNavigator.prototype.networkMonitor = function (netInfo) {\n if (browserOrNode().isNode) {\n return Observable.from([{ online: true }]);\n }\n var globalObj = isWebWorker() ? self : window;\n return new Observable(function (observer) {\n observer.next({ online: globalObj.navigator.onLine });\n var notifyOnline = function () { return observer.next({ online: true }); };\n var notifyOffline = function () { return observer.next({ online: false }); };\n globalObj.addEventListener('online', notifyOnline);\n globalObj.addEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers.push(observer);\n return function () {\n globalObj.removeEventListener('online', notifyOnline);\n globalObj.removeEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n };\n });\n };\n // expose observers to simulate offline mode for integration testing\n ReachabilityNavigator._observerOverride = function (status) {\n var e_1, _a;\n var _loop_1 = function (observer) {\n if (observer.closed) {\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n return \"continue\";\n }\n observer.next(status);\n };\n try {\n for (var _b = __values(ReachabilityNavigator._observers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n _loop_1(observer);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ReachabilityNavigator._observers = [];\n return ReachabilityNavigator;\n}());\nexport default ReachabilityNavigator;\n//# sourceMappingURL=Reachability.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nvar __read = (this && this.__read) || function (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};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexport { NonRetryableError };\nvar isNonRetryableError = function (obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function retry(functionToRetry, args, delayFn, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var attempt, terminated, timeout, wakeUp, lastError, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempt = 0;\n terminated = false;\n wakeUp = function () { };\n onTerminate &&\n onTerminate.then(function () {\n // signal not to try anymore.\n terminated = true;\n // stop sleeping if we're sleeping.\n clearTimeout(timeout);\n wakeUp();\n });\n _loop_1 = function () {\n var _a, _b, err_1, retryIn_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n attempt++;\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 7]);\n _a = {};\n _b = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))];\n case 2: return [2 /*return*/, (_a.value = _b.apply(void 0, [_c.sent()]), _a)];\n case 3:\n err_1 = _c.sent();\n lastError = err_1;\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err_1);\n return [2 /*return*/, { value: reject(err_1) }];\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn_1 + \" ms\");\n if (!(retryIn_1 === false || terminated)) return [3 /*break*/, 4];\n return [2 /*return*/, { value: reject(err_1) }];\n case 4: return [4 /*yield*/, new Promise(function (r) {\n wakeUp = r; // export wakeUp for onTerminate handling\n timeout = setTimeout(wakeUp, retryIn_1);\n })];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1:\n if (!!terminated) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 1];\n case 3:\n // reached if terminated while waiting for a timer.\n reject(lastError);\n return [2 /*return*/];\n }\n });\n }); })];\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Amplify only\n */\nexport var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs, onTerminate) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n};\n//# sourceMappingURL=Retry.js.map","export function urlSafeEncode(str) {\n return str\n .split('')\n .map(function (char) {\n return char\n .charCodeAt(0)\n .toString(16)\n .padStart(2, '0');\n })\n .join('');\n}\nexport function urlSafeDecode(hex) {\n return hex\n .match(/.{2}/g)\n .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })\n .join('');\n}\n//# sourceMappingURL=StringUtils.js.map","/*\n * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n/**\n * This Symbol is used to reference an internal-only PubSub provider that\n * is used for AppSync/GraphQL subscriptions in the API category.\n */\nvar hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function';\n/**\n * @deprecated Unused, all usecases have migrated to INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER\n */\nexport var INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER';\nexport var INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER';\nexport var USER_AGENT_HEADER = 'x-amz-user-agent';\n//# sourceMappingURL=constants.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nvar logger = new Logger('I18n');\n/**\n * Language transition class\n */\nvar I18n = /** @class */ (function () {\n /**\n * @constructor\n * Initialize with configurations\n * @param {Object} options\n */\n function I18n(options) {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n this._options = Object.assign({}, options);\n this._lang = this._options.language;\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.prototype.setLanguage = function (lang) {\n this._lang = lang;\n };\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.prototype.get = function (key, defVal) {\n if (defVal === void 0) { defVal = undefined; }\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n var lang = this._lang;\n var val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n };\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n I18n.prototype.getByLanguage = function (key, language, defVal) {\n if (defVal === void 0) { defVal = null; }\n if (!language) {\n return defVal;\n }\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n return defVal;\n }\n return lang_dict[key];\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) {\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n lang_dict = this._dict[language] = {};\n }\n Object.assign(lang_dict, vocabularies);\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.prototype.putVocabularies = function (vocabularies) {\n var _this = this;\n Object.keys(vocabularies).map(function (key) {\n _this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n };\n return I18n;\n}());\nexport { I18n };\n//# sourceMappingURL=I18n.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { I18n as I18nClass } from './I18n';\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { Amplify } from '../Amplify';\nvar logger = new Logger('I18n');\nvar _config = null;\nvar _i18n = null;\n/**\n * Export I18n APIs\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n }\n /**\n * @static\n * @method\n * Configure I18n part\n * @param {Object} config - Configuration of the I18n\n */\n I18n.configure = function (config) {\n logger.debug('configure I18n');\n if (!config) {\n return _config;\n }\n _config = Object.assign({}, _config, config.I18n || config);\n I18n.createInstance();\n return _config;\n };\n I18n.getModuleName = function () {\n return 'I18n';\n };\n /**\n * @static\n * @method\n * Create an instance of I18n for the library\n */\n I18n.createInstance = function () {\n logger.debug('create I18n instance');\n if (_i18n) {\n return;\n }\n _i18n = new I18nClass(_config);\n };\n /**\n * @static @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.setLanguage = function (lang) {\n I18n.checkConfig();\n return _i18n.setLanguage(lang);\n };\n /**\n * @static @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.get = function (key, defVal) {\n if (!I18n.checkConfig()) {\n return typeof defVal === 'undefined' ? key : defVal;\n }\n return _i18n.get(key, defVal);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {String} langurage - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.putVocabulariesForLanguage = function (language, vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabulariesForLanguage(language, vocabularies);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.putVocabularies = function (vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabularies(vocabularies);\n };\n I18n.checkConfig = function () {\n if (!_i18n) {\n _i18n = new I18nClass(_config);\n }\n return true;\n };\n return I18n;\n}());\nexport { I18n };\nAmplify.register(I18n);\n/**\n * @deprecated use named import\n */\nexport default I18n;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from './Amplify';\nimport { Platform } from './Platform';\nexport { AmplifyClass } from './Amplify';\nexport { ClientDevice } from './ClientDevice';\nexport { ConsoleLogger, ConsoleLogger as Logger } from './Logger';\nexport * from './Errors';\nexport { Hub } from './Hub';\nexport { I18n } from './I18n';\nexport * from './JS';\nexport { Signer } from './Signer';\nexport * from './Parser';\nexport * from './Providers';\nexport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nexport * from './RNComponents';\nexport { Credentials, CredentialsClass } from './Credentials';\nexport { ServiceWorker } from './ServiceWorker';\nexport { StorageHelper, MemoryStorage } from './StorageHelper';\nexport { UniversalStorage } from './UniversalStorage';\nexport { Platform, getAmplifyUserAgent } from './Platform';\nexport * from './constants';\nexport var Constants = {\n userAgent: Platform.userAgent,\n};\nexport * from './constants';\nexport * from './Util';\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.js.map","/**\n * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { Amplify } from '../Amplify';\n/**\n * Provides a means to registering a service worker in the browser\n * and communicating with it via postMessage events.\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/\n *\n * postMessage events are currently not supported in all browsers. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n *\n * At the minmum this class will register the service worker and listen\n * and attempt to dispatch messages on state change and record analytics\n * events based on the service worker lifecycle.\n */\nvar ServiceWorkerClass = /** @class */ (function () {\n function ServiceWorkerClass() {\n // The AWS Amplify logger\n this._logger = new Logger('ServiceWorker');\n }\n Object.defineProperty(ServiceWorkerClass.prototype, \"serviceWorker\", {\n /**\n * Get the currently active service worker\n */\n get: function () {\n return this._serviceWorker;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Register the service-worker.js file in the browser\n * Make sure the service-worker.js is part of the build\n * for example with Angular, modify the angular-cli.json file\n * and add to \"assets\" array \"service-worker.js\"\n * @param {string} - (optional) Service worker file. Defaults to \"/service-worker.js\"\n * @param {string} - (optional) The service worker scope. Defaults to \"/\"\n * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register\n * @returns {Promise}\n *\t- resolve(ServiceWorkerRegistration)\n *\t- reject(Error)\n **/\n ServiceWorkerClass.prototype.register = function (filePath, scope) {\n var _this = this;\n if (filePath === void 0) { filePath = '/service-worker.js'; }\n if (scope === void 0) { scope = '/'; }\n this._logger.debug(\"registering \" + filePath);\n this._logger.debug(\"registering service worker with scope \" + scope);\n return new Promise(function (resolve, reject) {\n if (navigator && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register(filePath, {\n scope: scope,\n })\n .then(function (registration) {\n if (registration.installing) {\n _this._serviceWorker = registration.installing;\n }\n else if (registration.waiting) {\n _this._serviceWorker = registration.waiting;\n }\n else if (registration.active) {\n _this._serviceWorker = registration.active;\n }\n _this._registration = registration;\n _this._setupListeners();\n _this._logger.debug(\"Service Worker Registration Success: \" + registration);\n return resolve(registration);\n })\n .catch(function (error) {\n _this._logger.debug(\"Service Worker Registration Failed \" + error);\n return reject(error);\n });\n }\n else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Enable web push notifications. If not subscribed, a new subscription will\n * be created and registered.\n * \tTest Push Server: https://web-push-codelab.glitch.me/\n * \tPush Server Libraries: https://github.com/web-push-libs/\n * \tAPI Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/\n * @param publicKey\n * @returns {Promise}\n * \t- resolve(PushSubscription)\n * - reject(Error)\n */\n ServiceWorkerClass.prototype.enablePush = function (publicKey) {\n var _this = this;\n if (!this._registration)\n throw new Error('Service Worker not registered');\n this._publicKey = publicKey;\n return new Promise(function (resolve, reject) {\n if (browserOrNode().isBrowser) {\n _this._registration.pushManager.getSubscription().then(function (subscription) {\n if (subscription) {\n _this._subscription = subscription;\n _this._logger.debug(\"User is subscribed to push: \" + JSON.stringify(subscription));\n resolve(subscription);\n }\n else {\n _this._logger.debug(\"User is NOT subscribed to push\");\n return _this._registration.pushManager\n .subscribe({\n userVisibleOnly: true,\n applicationServerKey: _this._urlB64ToUint8Array(publicKey),\n })\n .then(function (subscription) {\n _this._subscription = subscription;\n _this._logger.debug(\"User subscribed: \" + JSON.stringify(subscription));\n resolve(subscription);\n })\n .catch(function (error) {\n _this._logger.error(error);\n });\n }\n });\n }\n else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Convert a base64 encoded string to a Uint8 array for the push server key\n * @param base64String\n */\n ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) {\n var padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n var base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n var rawData = window.atob(base64);\n var outputArray = new Uint8Array(rawData.length);\n for (var i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n };\n /**\n * Send a message to the service worker. The service worker needs\n * to implement `self.addEventListener('message') to handle the\n * message. This ***currently*** does not work in Safari or IE.\n * @param {object | string} - An arbitrary JSON object or string message to send to the service worker\n *\t- see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable\n * @returns {Promise}\n **/\n ServiceWorkerClass.prototype.send = function (message) {\n if (this._serviceWorker) {\n this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);\n }\n };\n /**\n * Listen for service worker state change and message events\n * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state\n **/\n ServiceWorkerClass.prototype._setupListeners = function () {\n var _this = this;\n this._serviceWorker.addEventListener('statechange', function (event) {\n var currentState = _this._serviceWorker.state;\n _this._logger.debug(\"ServiceWorker statechange: \" + currentState);\n if (Amplify.Analytics && typeof Amplify.Analytics.record === 'function') {\n Amplify.Analytics.record({\n name: 'ServiceWorker',\n attributes: {\n state: currentState,\n },\n });\n }\n });\n this._serviceWorker.addEventListener('message', function (event) {\n _this._logger.debug(\"ServiceWorker message event: \" + event);\n });\n };\n return ServiceWorkerClass;\n}());\nexport { ServiceWorkerClass };\n/**\n * @deprecated use named import\n */\nexport default ServiceWorkerClass;\n//# sourceMappingURL=ServiceWorker.js.map","/*\n * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify, ServiceWorker } from '@aws-amplify/core';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\n/** Always importing Auth when users import Amplify such that\n for unauthenticated access (no sign in and sign up),\n users don't have to import Auth explicitly **/\nAmplify.Auth = Auth;\nAmplify.Cache = Cache;\nAmplify.ServiceWorker = ServiceWorker;\nexport { Analytics, AWSPinpointProvider, AWSKinesisProvider, AWSKinesisFirehoseProvider, AmazonPersonalizeProvider, } from '@aws-amplify/analytics';\nexport { Auth } from '@aws-amplify/auth';\nexport { Storage, StorageClass } from '@aws-amplify/storage';\nexport { API, APIClass, graphqlOperation } from '@aws-amplify/api';\nexport { AuthModeStrategyType, DataStore, Predicates, SortDirection, syncExpression, } from '@aws-amplify/datastore';\nexport { PubSub } from '@aws-amplify/pubsub';\nexport { Interactions } from '@aws-amplify/interactions';\nexport * from '@aws-amplify/ui';\nexport { XR } from '@aws-amplify/xr';\nexport { Predictions } from '@aws-amplify/predictions';\nexport { ConsoleLogger as Logger, Hub, JS, ClientDevice, Signer, I18n, ServiceWorker, AWSCloudWatchProvider, } from '@aws-amplify/core';\nexport { withSSRContext } from './withSSRContext';\nexport { Geo } from '@aws-amplify/geo';\nexport { Cache };\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.js.map"],"names":["defaultConfig","keyPrefix","capacityInBytes","itemMaxSize","defaultTTL","defaultPriority","warningThreshold","storage","StorageHelper","getStorage","getByteLength","str","ret","length","i","charCode","charCodeAt","getCurrTime","currTime","Date","getTime","isInteger","value","Number","_isInteger","isFinite","Math","floor","store","CacheObject","clear","getItem","key","setItem","removeItem","logger","StorageCache","config","this","Object","assign","cacheCurSizeKey","checkConfig","prototype","getModuleName","error","cacheLimit","fillCacheItem","options","data","timestamp","visitedTime","priority","expires","type","byteSize","JSON","stringify","configure","warn","Cache","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","create","BrowserStorageCacheClass","_super","_this","cacheConfig","call","bind","_decreaseCurSizeInBytes","amount","curSize","getCacheCurSize","toString","_increaseCurSizeInBytes","_refreshItem","item","prefixedKey","_isExpired","text","parse","_removeItem","size","itemSize","_setItem","setItemErr","_sizeToPop","spaceItemNeed","cacheThresholdSpace","_isCacheFull","_findValidKeys","keys","keyInCache","push","indexOf","_popOutItems","sizeToPop","items","remainedSize","val","sort","a","log","cacheItemOptions","undefined","validKeys","e","callback","keysToRemove","getAllKeys","substring","createInstance","BrowserStorageCache","Amplify","register","__read","o","n","m","Symbol","iterator","r","ar","next","done","AmplifyClass","_components","_config","_modules","Auth","Analytics","API","Credentials","Storage","I18n","PubSub","Interactions","Pushnotification","UI","XR","Predictions","DataStore","Geo","Logger","ServiceWorker","comp","debug","entries","forEach","_a","_b","property","map","addPluggable","pluggable","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","rejected","result","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","v","op","TypeError","pop","waitForInit","res","rej","isBrowser","ga","window","auth2","setTimeout","GoogleOAuth","initialized","refreshGoogleToken","_refreshGoogleTokenImpl","getAuthInstance","googleAuth","googleUser","currentUser","get","isSignedIn","reloadAuthResponse","authResponse","id_token","expires_at","token","catch","err","fb","FacebookOAuth","refreshFacebookToken","_refreshFacebookTokenImpl","errorMessage","getLoginStatus","fbResponse","response","accessToken","expiresIn","date","scope","__assign","s","arguments","createCognitoIdentityClient","client","CognitoIdentityClient","region","customUserAgent","middlewareStack","add","args","middlewareArgs","name","request","headers","CREDENTIALS_TTL","COGNITO_IDENTITY_KEY_PREFIX","CredentialsClass","_gettingCredPromise","_refreshHandlers","getCredSource","_credentials_source","refreshHandlers","_storage","_storageSync","_pickupCredentials","_getCognitoIdentityIdStorageKey","identityPoolId","isPending","_keepAlive","cred","user_1","session","refreshToken_1","refreshRequest","err_1","_credentials","_isPastTTL","currentUserCredentials","currentUserPoolUser","currentSession","refreshToken","refreshSession","refreshFederatedToken","federatedInfo","provider","user","identity_id","getFullYear","that","_setCredentialsFromFederation","_providerRefreshWithRetry","refreshHandler","MAX_DELAY_MS","isNetworkError","toLowerCase","lastIndexOf","credentials","ts","now","expiration","_nextCredentialsRefresh","_setCredentialsForGuest","mandatorySignIn","identityId","cognitoClient","cognitoIdentityParams","credentialsProvider","_c","_getGuestIdentityId","_identityId","fromCognitoIdentity","IdentityId","credentialsFromCognitoIdentity","send","GetIdCommand","IdentityPoolId","_loadCredentials","message","_removeGuestIdentityId","params","domains","google","facebook","amazon","developer","domain","logins","fromCognitoIdentityPool","_setCredentialsFromSession","idToken","getIdToken","getJwtToken","userPoolId","guestIdentityId","generatedOrRetrievedIdentityId","AccessKeyId","Expiration","SecretKey","SessionToken","primaryIdentityId","Logins","GetCredentialsForIdentityCommand","accessKeyId","secretAccessKey","sessionToken","source","authenticated","info","id","_setGuestIdentityId","set","e_1","e_2","shear","__spread","concat","AMPLIFY_SYMBOL","for","isLegacyCallback","onHubCapsule","HubClass","listeners","patterns","protectedChannels","remove","channel","listener","RegExp","pattern_1","find","pattern","filter","x","holder","dispatch","payload","ampSymbol","hasAccess","capsule","patternInfo","_toListeners","listen","listenerName","cb","Error","payloadStr_1","match","groups","slice","dispatchingCapsule","Hub","MIME_MAP","ext","isEmpty","obj","sortByField","list","field","dir","dirX","a_val","b_val","objectLessAttributes","less","attr","filenameToContentType","filename","defVal","filtered","mime","endsWith","isTextFile","contentType","startsWith","generateRandomString","chars","random","makeQuerablePromise","promise","isResolved","isRejected","isFullfilled","isWebWorker","self","selfContext","WorkerGlobalScope","browserOrNode","document","isNode","process","versions","node","transferKeyToLowerCase","whiteListForItself","whiteListForChildren","isStrictObject","transferedKey","includes","transferKeyToUpperCase","transferredKey","toUpperCase","Function","String","Boolean","JS","LOG_TYPE","AWS_CLOUDWATCH_CATEGORY","__values","LOG_LEVELS","VERBOSE","DEBUG","INFO","WARN","ERROR","ConsoleLogger","level","_pluggables","_padding","_ts","dt","getMinutes","getSeconds","join","getMilliseconds","_log","msg","_i","logger_level_name","LOG_LEVEL","logger_level","type_level","console","prefix","plugin","logEvent","pushLogs","e_1_1","return","verbose","getCategoryName","listPluggables","parseMobileHubConfig","storageConfig","amplifyConfig","AWSPinpoint","appId","userPoolWebClientId","identityPoolRegion","signUpVerificationMethod","AWSS3","bucket","dangerouslyConnectToHttpEndpointForTesting","Logging","geo","AmazonLocationService","Parser","parseMobilehubConfig","version","BASE_USER_AGENT","Platform","userAgent","product","navigator","isReactNative","getAmplifyUserAgent","content","__rest","getOwnPropertySymbols","propertyIsEnumerable","DEFAULT_ALGORITHM","IOT_SERVICE_NAME","encrypt","src","hash","update","digestSync","arg","escape_RFC3986","component","replace","c","canonical_query","query","split","key_val","reencoded_val","key_a","key_b","canonical_headers","trim","signed_headers","canonical_request","url_info","url","method","encodeURIComponent","pathname","parse_service_info","host","matched","parsed","reverse","service","credential_scope","d_str","string_to_sign","algorithm","dt_str","get_signing_key","secret_key","service_info","k","k_date","k_region","k_service","k_signing","get_signature","signing_key","str_to_sign","get_authorization_header","access_key","signature","Signer","sign","access_info","getDateWithClockOffset","toISOString","substr","session_token","request_str","serviceInfo","authorization_header","signUrl","urlOrRequest","accessInfo","urlToSign","today","parsedUrl","search","signedHeaders","credentialScope","sessionTokenRequired","queryParams","canonicalRequest","stringToSign","additionalQueryParams","protocol","slashes","hostname","port","dataMemory","MemoryStorage","storageWindow","localStorage","exception","UniversalStorage","context","cookies","req","cookie","getAll","defineProperty","enumerable","configurable","from","getLocalItem","getUniversalItem","index","removeLocalItem","removeUniversalItem","path","setLocalItem","tokenType","setUniversalItem","sameSite","secure","location","FIVE_MINUTES_IN_MS","DateUtils","clockOffset","getClockOffset","getHeaderStringFromDate","getDateFromHeaderString","header","year","month","day","hour","minute","second","UTC","isClockSkewed","serverDate","abs","isClockSkewError","setClockOffset","offset","ReachabilityNavigator","networkMonitor","netInfo","online","globalObj","observer","onLine","notifyOnline","notifyOffline","addEventListener","_observers","removeEventListener","_observer","_observerOverride","status","_loop_1","closed","NonRetryableError","nonRetryable","isNonRetryableError","retry","functionToRetry","delayFn","onTerminate","attempt","terminated","timeout","wakeUp","lastError","state_1","clearTimeout","retryIn_1","jitteredBackoff","maxDelayMs","BASE_TIME_MS","JITTER_FACTOR","delay","pow","jitteredExponentialRetry","urlSafeEncode","char","padStart","urlSafeDecode","hex","fromCharCode","parseInt","hasSymbol","INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER","INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER","USER_AGENT_HEADER","_options","_lang","_dict","language","setLanguage","lang","getByLanguage","lang_dict","putVocabulariesForLanguage","vocabularies","putVocabularies","_i18n","Constants","ServiceWorkerClass","_logger","_serviceWorker","filePath","serviceWorker","registration","installing","waiting","active","_registration","_setupListeners","enablePush","publicKey","_publicKey","pushManager","getSubscription","subscription","subscribe","userVisibleOnly","applicationServerKey","_urlB64ToUint8Array","_subscription","base64String","padding","repeat","base64","rawData","atob","outputArray","Uint8Array","postMessage","event","currentState","state","record","attributes"],"sourceRoot":""}