{"version":3,"file":"static/js/8720.f2cbf292.chunk.js","mappings":"sGAAAA,EAAOC,QAAU,EAAjBD,M,qCCEA,IAAIE,EAAQC,EAAQ,OAChBC,EAASD,EAAQ,OACjBE,EAAUF,EAAQ,OAClBG,EAAWH,EAAQ,OACnBI,EAAgBJ,EAAQ,MACxBK,EAAeL,EAAQ,OACvBM,EAAkBN,EAAQ,OAC1BO,EAAcP,EAAQ,KACtBQ,EAAuBR,EAAQ,OAC/BS,EAAST,EAAQ,IAErBH,EAAOC,QAAU,SAAoBY,GACnC,OAAO,IAAIC,SAAQ,SAA4BC,EAASC,GACtD,IAGIC,EAHAC,EAAcL,EAAOM,KACrBC,EAAiBP,EAAOQ,QACxBC,EAAeT,EAAOS,aAE1B,SAASC,IACHV,EAAOW,aACTX,EAAOW,YAAYC,YAAYR,GAG7BJ,EAAOa,QACTb,EAAOa,OAAOC,oBAAoB,QAASV,EAE/C,CAEIf,EAAM0B,WAAWV,WACZE,EAAe,gBAGxB,IAAIS,EAAU,IAAIC,eAGlB,GAAIjB,EAAOkB,KAAM,CACf,IAAIC,EAAWnB,EAAOkB,KAAKC,UAAY,GACnCC,EAAWpB,EAAOkB,KAAKE,SAAWC,SAASC,mBAAmBtB,EAAOkB,KAAKE,WAAa,GAC3Fb,EAAegB,cAAgB,SAAWC,KAAKL,EAAW,IAAMC,EAClE,CAEA,IAAIK,EAAW/B,EAAcM,EAAO0B,QAAS1B,EAAO2B,KAMpD,SAASC,IACP,GAAKZ,EAAL,CAIA,IAAIa,EAAkB,0BAA2Bb,EAAUrB,EAAaqB,EAAQc,yBAA2B,KAGvGC,EAAW,CACbzB,KAHkBG,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvCO,EAAQe,SAA/Bf,EAAQgB,aAGRC,OAAQjB,EAAQiB,OAChBC,WAAYlB,EAAQkB,WACpB1B,QAASqB,EACT7B,OAAQA,EACRgB,QAASA,GAGXzB,GAAO,SAAkB4C,GACvBjC,EAAQiC,GACRzB,GACF,IAAG,SAAiB0B,GAClBjC,EAAOiC,GACP1B,GACF,GAAGqB,GAGHf,EAAU,IAvBV,CAwBF,CAmEA,GAnGAA,EAAQqB,KAAKrC,EAAOsC,OAAOC,cAAe9C,EAASgC,EAAUzB,EAAOwC,OAAQxC,EAAOyC,mBAAmB,GAGtGzB,EAAQ0B,QAAU1C,EAAO0C,QA+BrB,cAAe1B,EAEjBA,EAAQY,UAAYA,EAGpBZ,EAAQ2B,mBAAqB,WACtB3B,GAAkC,IAAvBA,EAAQ4B,aAQD,IAAnB5B,EAAQiB,QAAkBjB,EAAQ6B,aAAwD,IAAzC7B,EAAQ6B,YAAYC,QAAQ,WAKjFC,WAAWnB,EACb,EAIFZ,EAAQgC,QAAU,WACXhC,IAILb,EAAON,EAAY,kBAAmBG,EAAQ,eAAgBgB,IAG9DA,EAAU,KACZ,EAGAA,EAAQiC,QAAU,WAGhB9C,EAAON,EAAY,gBAAiBG,EAAQ,KAAMgB,IAGlDA,EAAU,IACZ,EAGAA,EAAQkC,UAAY,WAClB,IAAIC,EAAsBnD,EAAO0C,QAAU,cAAgB1C,EAAO0C,QAAU,cAAgB,mBACxFU,EAAepD,EAAOoD,cAAgBtD,EACtCE,EAAOmD,sBACTA,EAAsBnD,EAAOmD,qBAE/BhD,EAAON,EACLsD,EACAnD,EACAoD,EAAaC,oBAAsB,YAAc,eACjDrC,IAGFA,EAAU,IACZ,EAKI3B,EAAMiE,uBAAwB,CAEhC,IAAIC,GAAavD,EAAOwD,iBAAmB5D,EAAgB6B,KAAczB,EAAOyD,eAC9EjE,EAAQkE,KAAK1D,EAAOyD,qBACpBE,EAEEJ,IACFhD,EAAeP,EAAO4D,gBAAkBL,EAE5C,CAGI,qBAAsBvC,GACxB3B,EAAMwE,QAAQtD,GAAgB,SAA0BuD,EAAKC,GAChC,qBAAhB1D,GAAqD,iBAAtB0D,EAAIC,qBAErCzD,EAAewD,GAGtB/C,EAAQiD,iBAAiBF,EAAKD,EAElC,IAIGzE,EAAM6E,YAAYlE,EAAOwD,mBAC5BxC,EAAQwC,kBAAoBxD,EAAOwD,iBAIjC/C,GAAiC,SAAjBA,IAClBO,EAAQP,aAAeT,EAAOS,cAIS,oBAA9BT,EAAOmE,oBAChBnD,EAAQoD,iBAAiB,WAAYpE,EAAOmE,oBAIP,oBAA5BnE,EAAOqE,kBAAmCrD,EAAQsD,QAC3DtD,EAAQsD,OAAOF,iBAAiB,WAAYpE,EAAOqE,mBAGjDrE,EAAOW,aAAeX,EAAOa,UAG/BT,EAAa,SAASmE,GACfvD,IAGLb,GAAQoE,GAAWA,GAAUA,EAAOC,KAAQ,IAAIzE,EAAO,YAAcwE,GACrEvD,EAAQyD,QACRzD,EAAU,KACZ,EAEAhB,EAAOW,aAAeX,EAAOW,YAAY+D,UAAUtE,GAC/CJ,EAAOa,SACTb,EAAOa,OAAO8D,QAAUvE,IAAeJ,EAAOa,OAAOuD,iBAAiB,QAAShE,KAI9EC,IACHA,EAAc,MAIhBW,EAAQ4D,KAAKvE,EACf,GACF,C,qCCjNA,IAAIhB,EAAQC,EAAQ,OAChBuF,EAAOvF,EAAQ,MACfwF,EAAQxF,EAAQ,OAChByF,EAAczF,EAAQ,OA4B1B,IAAI0F,EAnBJ,SAASC,EAAeC,GACtB,IAAIC,EAAU,IAAIL,EAAMI,GACpBE,EAAWP,EAAKC,EAAMO,UAAUrE,QAASmE,GAa7C,OAVA9F,EAAMiG,OAAOF,EAAUN,EAAMO,UAAWF,GAGxC9F,EAAMiG,OAAOF,EAAUD,GAGvBC,EAASG,OAAS,SAAgBC,GAChC,OAAOP,EAAeF,EAAYG,EAAeM,GACnD,EAEOJ,CACT,CAGYH,CA3BG3F,EAAQ,QA8BvB0F,EAAMF,MAAQA,EAGdE,EAAMjF,OAAST,EAAQ,IACvB0F,EAAMS,YAAcnG,EAAQ,OAC5B0F,EAAMU,SAAWpG,EAAQ,OACzB0F,EAAMW,QAAUrG,EAAAA,MAAAA,QAGhB0F,EAAMY,IAAM,SAAaC,GACvB,OAAO5F,QAAQ2F,IAAIC,EACrB,EACAb,EAAMc,OAASxG,EAAQ,OAGvB0F,EAAMe,aAAezG,EAAQ,OAE7BH,EAAOC,QAAU4F,EAGjB7F,EAAOC,QAAPD,QAAyB6F,C,8BChDzB,SAASjF,EAAOiG,GACdC,KAAKD,QAAUA,CACjB,CAEAjG,EAAOsF,UAAUa,SAAW,WAC1B,MAAO,UAAYD,KAAKD,QAAU,KAAOC,KAAKD,QAAU,GAC1D,EAEAjG,EAAOsF,UAAUc,YAAa,EAE9BhH,EAAOC,QAAUW,C,qCChBjB,IAAIA,EAAST,EAAQ,IAQrB,SAASmG,EAAYW,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIC,UAAU,gCAGtB,IAAIC,EAEJL,KAAKM,QAAU,IAAItG,SAAQ,SAAyBC,GAClDoG,EAAiBpG,CACnB,IAEA,IAAIsG,EAAQP,KAGZA,KAAKM,QAAQE,MAAK,SAASlC,GACzB,GAAKiC,EAAME,WAAX,CAEA,IAAIC,EACAC,EAAIJ,EAAME,WAAWG,OAEzB,IAAKF,EAAI,EAAGA,EAAIC,EAAGD,IACjBH,EAAME,WAAWC,GAAGpC,GAEtBiC,EAAME,WAAa,IARU,CAS/B,IAGAT,KAAKM,QAAQE,KAAO,SAASK,GAC3B,IAAIC,EAEAR,EAAU,IAAItG,SAAQ,SAASC,GACjCsG,EAAM9B,UAAUxE,GAChB6G,EAAW7G,CACb,IAAGuG,KAAKK,GAMR,OAJAP,EAAQhC,OAAS,WACfiC,EAAM5F,YAAYmG,EACpB,EAEOR,CACT,EAEAH,GAAS,SAAgBJ,GACnBQ,EAAMQ,SAKVR,EAAMQ,OAAS,IAAIjH,EAAOiG,GAC1BM,EAAeE,EAAMQ,QACvB,GACF,CAKAvB,EAAYJ,UAAU4B,iBAAmB,WACvC,GAAIhB,KAAKe,OACP,MAAMf,KAAKe,MAEf,EAMAvB,EAAYJ,UAAUX,UAAY,SAAmBwC,GAC/CjB,KAAKe,OACPE,EAASjB,KAAKe,QAIZf,KAAKS,WACPT,KAAKS,WAAWS,KAAKD,GAErBjB,KAAKS,WAAa,CAACQ,EAEvB,EAMAzB,EAAYJ,UAAUzE,YAAc,SAAqBsG,GACvD,GAAKjB,KAAKS,WAAV,CAGA,IAAIU,EAAQnB,KAAKS,WAAW5D,QAAQoE,IACrB,IAAXE,GACFnB,KAAKS,WAAWW,OAAOD,EAAO,EAHhC,CAKF,EAMA3B,EAAY6B,OAAS,WACnB,IAAI/C,EAIJ,MAAO,CACLiC,MAJU,IAAIf,GAAY,SAAkB8B,GAC5ChD,EAASgD,CACX,IAGEhD,OAAQA,EAEZ,EAEApF,EAAOC,QAAUqG,C,iCCpHjBtG,EAAOC,QAAU,SAAkB+C,GACjC,SAAUA,IAASA,EAAMgE,WAC3B,C,qCCFA,IAAI9G,EAAQC,EAAQ,OAChBG,EAAWH,EAAQ,OACnBkI,EAAqBlI,EAAQ,OAC7BmI,EAAkBnI,EAAQ,OAC1ByF,EAAczF,EAAQ,OACtBoI,EAAYpI,EAAQ,OAEpBqI,EAAaD,EAAUC,WAM3B,SAAS7C,EAAMU,GACbS,KAAK2B,SAAWpC,EAChBS,KAAK4B,aAAe,CAClB7G,QAAS,IAAIwG,EACbzF,SAAU,IAAIyF,EAElB,CAOA1C,EAAMO,UAAUrE,QAAU,SAAiB8G,EAAa9H,GAG3B,kBAAhB8H,GACT9H,EAASA,GAAU,CAAC,GACb2B,IAAMmG,EAEb9H,EAAS8H,GAAe,CAAC,GAG3B9H,EAAS+E,EAAYkB,KAAK2B,SAAU5H,IAGzBsC,OACTtC,EAAOsC,OAAStC,EAAOsC,OAAO0B,cACrBiC,KAAK2B,SAAStF,OACvBtC,EAAOsC,OAAS2D,KAAK2B,SAAStF,OAAO0B,cAErChE,EAAOsC,OAAS,MAGlB,IAAIc,EAAepD,EAAOoD,kBAELO,IAAjBP,GACFsE,EAAUK,cAAc3E,EAAc,CACpC4E,kBAAmBL,EAAWvE,aAAauE,EAAWM,SACtDC,kBAAmBP,EAAWvE,aAAauE,EAAWM,SACtD5E,oBAAqBsE,EAAWvE,aAAauE,EAAWM,WACvD,GAIL,IAAIE,EAA0B,GAC1BC,GAAiC,EACrCnC,KAAK4B,aAAa7G,QAAQ6C,SAAQ,SAAoCwE,GACjC,oBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQtI,KAIrEoI,EAAiCA,GAAkCC,EAAYE,YAE/EJ,EAAwBK,QAAQH,EAAYI,UAAWJ,EAAYK,UACrE,IAEA,IAKInC,EALAoC,EAA2B,GAO/B,GANA1C,KAAK4B,aAAa9F,SAAS8B,SAAQ,SAAkCwE,GACnEM,EAAyBxB,KAAKkB,EAAYI,UAAWJ,EAAYK,SACnE,KAIKN,EAAgC,CACnC,IAAIQ,EAAQ,CAACnB,OAAiB9D,GAM9B,IAJAkF,MAAMxD,UAAUmD,QAAQM,MAAMF,EAAOT,GACrCS,EAAQA,EAAMG,OAAOJ,GAErBpC,EAAUtG,QAAQC,QAAQF,GACnB4I,EAAM/B,QACXN,EAAUA,EAAQE,KAAKmC,EAAMI,QAASJ,EAAMI,SAG9C,OAAOzC,CACT,CAIA,IADA,IAAI0C,EAAYjJ,EACTmI,EAAwBtB,QAAQ,CACrC,IAAIqC,EAAcf,EAAwBa,QACtCG,EAAahB,EAAwBa,QACzC,IACEC,EAAYC,EAAYD,EAC1B,CAAE,MAAOG,GACPD,EAAWC,GACX,KACF,CACF,CAEA,IACE7C,EAAUkB,EAAgBwB,EAC5B,CAAE,MAAOG,GACP,OAAOnJ,QAAQE,OAAOiJ,EACxB,CAEA,KAAOT,EAAyB9B,QAC9BN,EAAUA,EAAQE,KAAKkC,EAAyBK,QAASL,EAAyBK,SAGpF,OAAOzC,CACT,EAEAzB,EAAMO,UAAUgE,OAAS,SAAgBrJ,GAEvC,OADAA,EAAS+E,EAAYkB,KAAK2B,SAAU5H,GAC7BP,EAASO,EAAO2B,IAAK3B,EAAOwC,OAAQxC,EAAOyC,kBAAkB6G,QAAQ,MAAO,GACrF,EAGAjK,EAAMwE,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BvB,GAE/EwC,EAAMO,UAAU/C,GAAU,SAASX,EAAK3B,GACtC,OAAOiG,KAAKjF,QAAQ+D,EAAY/E,GAAU,CAAC,EAAG,CAC5CsC,OAAQA,EACRX,IAAKA,EACLrB,MAAON,GAAU,CAAC,GAAGM,OAEzB,CACF,IAEAjB,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GAErEwC,EAAMO,UAAU/C,GAAU,SAASX,EAAKrB,EAAMN,GAC5C,OAAOiG,KAAKjF,QAAQ+D,EAAY/E,GAAU,CAAC,EAAG,CAC5CsC,OAAQA,EACRX,IAAKA,EACLrB,KAAMA,IAEV,CACF,IAEAnB,EAAOC,QAAU0F,C,qCCjJjB,IAAIzF,EAAQC,EAAQ,OAEpB,SAASkI,IACPvB,KAAKsD,SAAW,EAClB,CAUA/B,EAAmBnC,UAAUmE,IAAM,SAAaf,EAAWC,EAAUe,GAOnE,OANAxD,KAAKsD,SAASpC,KAAK,CACjBsB,UAAWA,EACXC,SAAUA,EACVH,cAAakB,GAAUA,EAAQlB,YAC/BD,QAASmB,EAAUA,EAAQnB,QAAU,OAEhCrC,KAAKsD,SAAS1C,OAAS,CAChC,EAOAW,EAAmBnC,UAAUqE,MAAQ,SAAeC,GAC9C1D,KAAKsD,SAASI,KAChB1D,KAAKsD,SAASI,GAAM,KAExB,EAUAnC,EAAmBnC,UAAUxB,QAAU,SAAiB+F,GACtDvK,EAAMwE,QAAQoC,KAAKsD,UAAU,SAAwBM,GACzC,OAANA,GACFD,EAAGC,EAEP,GACF,EAEA1K,EAAOC,QAAUoI,C,oCCnDjB,IAAIsC,EAAgBxK,EAAQ,OACxByK,EAAczK,EAAQ,OAW1BH,EAAOC,QAAU,SAAuBsC,EAASsI,GAC/C,OAAItI,IAAYoI,EAAcE,GACrBD,EAAYrI,EAASsI,GAEvBA,CACT,C,mCCjBA,IAAIC,EAAe3K,EAAQ,OAY3BH,EAAOC,QAAU,SAAqB4G,EAAShG,EAAQkK,EAAMlJ,EAASe,GACpE,IAAIqH,EAAQ,IAAIe,MAAMnE,GACtB,OAAOiE,EAAab,EAAOpJ,EAAQkK,EAAMlJ,EAASe,EACpD,C,qCCfA,IAAI1C,EAAQC,EAAQ,OAChB8K,EAAgB9K,EAAQ,OACxBoG,EAAWpG,EAAQ,OACnBsI,EAAWtI,EAAQ,OACnBS,EAAST,EAAQ,IAKrB,SAAS+K,EAA6BrK,GAKpC,GAJIA,EAAOW,aACTX,EAAOW,YAAYsG,mBAGjBjH,EAAOa,QAAUb,EAAOa,OAAO8D,QACjC,MAAM,IAAI5E,EAAO,WAErB,CAQAZ,EAAOC,QAAU,SAAyBY,GA8BxC,OA7BAqK,EAA6BrK,GAG7BA,EAAOQ,QAAUR,EAAOQ,SAAW,CAAC,EAGpCR,EAAOM,KAAO8J,EAAcE,KAC1BtK,EACAA,EAAOM,KACPN,EAAOQ,QACPR,EAAOuK,kBAITvK,EAAOQ,QAAUnB,EAAMmL,MACrBxK,EAAOQ,QAAQiK,QAAU,CAAC,EAC1BzK,EAAOQ,QAAQR,EAAOsC,SAAW,CAAC,EAClCtC,EAAOQ,SAGTnB,EAAMwE,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BvB,UAClBtC,EAAOQ,QAAQ8B,EACxB,KAGYtC,EAAO0K,SAAW9C,EAAS8C,SAE1B1K,GAAQyG,MAAK,SAA6B1E,GAWvD,OAVAsI,EAA6BrK,GAG7B+B,EAASzB,KAAO8J,EAAcE,KAC5BtK,EACA+B,EAASzB,KACTyB,EAASvB,QACTR,EAAO2K,mBAGF5I,CACT,IAAG,SAA4BiF,GAe7B,OAdKtB,EAASsB,KACZqD,EAA6BrK,GAGzBgH,GAAUA,EAAOjF,WACnBiF,EAAOjF,SAASzB,KAAO8J,EAAcE,KACnCtK,EACAgH,EAAOjF,SAASzB,KAChB0G,EAAOjF,SAASvB,QAChBR,EAAO2K,qBAKN1K,QAAQE,OAAO6G,EACxB,GACF,C,iCC1EA7H,EAAOC,QAAU,SAAsBgK,EAAOpJ,EAAQkK,EAAMlJ,EAASe,GA6BnE,OA5BAqH,EAAMpJ,OAASA,EACXkK,IACFd,EAAMc,KAAOA,GAGfd,EAAMpI,QAAUA,EAChBoI,EAAMrH,SAAWA,EACjBqH,EAAMrD,cAAe,EAErBqD,EAAMwB,OAAS,WACb,MAAO,CAEL5E,QAASC,KAAKD,QACd6E,KAAM5E,KAAK4E,KAEXC,YAAa7E,KAAK6E,YAClBC,OAAQ9E,KAAK8E,OAEbC,SAAU/E,KAAK+E,SACfC,WAAYhF,KAAKgF,WACjBC,aAAcjF,KAAKiF,aACnBC,MAAOlF,KAAKkF,MAEZnL,OAAQiG,KAAKjG,OACbkK,KAAMjE,KAAKiE,KACXjI,OAAQgE,KAAKlE,UAAYkE,KAAKlE,SAASE,OAASgE,KAAKlE,SAASE,OAAS,KAE3E,EACOmH,CACT,C,qCCxCA,IAAI/J,EAAQC,EAAQ,OAUpBH,EAAOC,QAAU,SAAqBgM,EAASC,GAE7CA,EAAUA,GAAW,CAAC,EACtB,IAAIrL,EAAS,CAAC,EAEd,SAASsL,EAAeC,EAAQjE,GAC9B,OAAIjI,EAAMmM,cAAcD,IAAWlM,EAAMmM,cAAclE,GAC9CjI,EAAMmL,MAAMe,EAAQjE,GAClBjI,EAAMmM,cAAclE,GACtBjI,EAAMmL,MAAM,CAAC,EAAGlD,GACdjI,EAAMoM,QAAQnE,GAChBA,EAAOoE,QAETpE,CACT,CAGA,SAASqE,EAAoBC,GAC3B,OAAKvM,EAAM6E,YAAYmH,EAAQO,IAEnBvM,EAAM6E,YAAYkH,EAAQQ,SAA/B,EACEN,OAAe3H,EAAWyH,EAAQQ,IAFlCN,EAAeF,EAAQQ,GAAOP,EAAQO,GAIjD,CAGA,SAASC,EAAiBD,GACxB,IAAKvM,EAAM6E,YAAYmH,EAAQO,IAC7B,OAAON,OAAe3H,EAAW0H,EAAQO,GAE7C,CAGA,SAASE,EAAiBF,GACxB,OAAKvM,EAAM6E,YAAYmH,EAAQO,IAEnBvM,EAAM6E,YAAYkH,EAAQQ,SAA/B,EACEN,OAAe3H,EAAWyH,EAAQQ,IAFlCN,OAAe3H,EAAW0H,EAAQO,GAI7C,CAGA,SAASG,EAAgBH,GACvB,OAAIA,KAAQP,EACHC,EAAeF,EAAQQ,GAAOP,EAAQO,IACpCA,KAAQR,EACVE,OAAe3H,EAAWyH,EAAQQ,SADpC,CAGT,CAEA,IAAII,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GASpB,OANA1M,EAAMwE,QAAQoI,OAAOC,KAAKd,GAASrC,OAAOkD,OAAOC,KAAKb,KAAW,SAA4BO,GAC3F,IAAIpB,EAAQwB,EAASJ,IAASD,EAC1BQ,EAAc3B,EAAMoB,GACvBvM,EAAM6E,YAAYiI,IAAgB3B,IAAUuB,IAAqB/L,EAAO4L,GAAQO,EACnF,IAEOnM,CACT,C,qCChGA,IAAIH,EAAcP,EAAQ,KAS1BH,EAAOC,QAAU,SAAgBc,EAASC,EAAQ4B,GAChD,IAAIqK,EAAiBrK,EAAS/B,OAAOoM,eAChCrK,EAASE,QAAWmK,IAAkBA,EAAerK,EAASE,QAGjE9B,EAAON,EACL,mCAAqCkC,EAASE,OAC9CF,EAAS/B,OACT,KACA+B,EAASf,QACTe,IAPF7B,EAAQ6B,EAUZ,C,qCCtBA,IAAI1C,EAAQC,EAAQ,OAChBsI,EAAWtI,EAAQ,OAUvBH,EAAOC,QAAU,SAAuBkB,EAAME,EAAS6L,GACrD,IAAIlH,EAAUc,MAAQ2B,EAMtB,OAJAvI,EAAMwE,QAAQwI,GAAK,SAAmBzC,GACpCtJ,EAAOsJ,EAAGU,KAAKnF,EAAS7E,EAAME,EAChC,IAEOF,CACT,C,qCCnBA,IAAIjB,EAAQC,EAAQ,OAChBgN,EAAsBhN,EAAQ,OAC9B2K,EAAe3K,EAAQ,OACvBQ,EAAuBR,EAAQ,OAE/BiN,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBhM,EAAS2B,IACjC9C,EAAM6E,YAAY1D,IAAYnB,EAAM6E,YAAY1D,EAAQ,mBAC3DA,EAAQ,gBAAkB2B,EAE9B,CA6BA,IAAIyF,EAAW,CAEbxE,aAActD,EAEd4K,QA/BF,WACE,IAAIA,EAQJ,OAP8B,qBAAnBzJ,gBAGmB,qBAAZwL,SAAuE,qBAA5CR,OAAO5G,UAAUa,SAASoE,KAAKmC,YAD1E/B,EAAUpL,EAAQ,QAKboL,CACT,CAqBWgC,GAETnC,iBAAkB,CAAC,SAA0BjK,EAAME,GAIjD,OAHA8L,EAAoB9L,EAAS,UAC7B8L,EAAoB9L,EAAS,gBAEzBnB,EAAM0B,WAAWT,IACnBjB,EAAMsN,cAAcrM,IACpBjB,EAAMuN,SAAStM,IACfjB,EAAMwN,SAASvM,IACfjB,EAAMyN,OAAOxM,IACbjB,EAAM0N,OAAOzM,GAENA,EAELjB,EAAM2N,kBAAkB1M,GACnBA,EAAK2M,OAEV5N,EAAM6N,kBAAkB5M,IAC1BkM,EAAsBhM,EAAS,mDACxBF,EAAK4F,YAEV7G,EAAM8N,SAAS7M,IAAUE,GAAuC,qBAA5BA,EAAQ,iBAC9CgM,EAAsBhM,EAAS,oBA1CrC,SAAyB4M,EAAUC,EAAQC,GACzC,GAAIjO,EAAMkO,SAASH,GACjB,IAEE,OADCC,GAAUG,KAAKC,OAAOL,GAChB/N,EAAMqO,KAAKN,EACpB,CAAE,MAAOO,GACP,GAAe,gBAAXA,EAAE9C,KACJ,MAAM8C,CAEV,CAGF,OAAQL,GAAWE,KAAKI,WAAWR,EACrC,CA8BaS,CAAgBvN,IAElBA,CACT,GAEAqK,kBAAmB,CAAC,SAA2BrK,GAC7C,IAAI8C,EAAe6C,KAAK7C,cAAgBwE,EAASxE,aAC7C4E,EAAoB5E,GAAgBA,EAAa4E,kBACjDE,EAAoB9E,GAAgBA,EAAa8E,kBACjD4F,GAAqB9F,GAA2C,SAAtB/B,KAAKxF,aAEnD,GAAIqN,GAAsB5F,GAAqB7I,EAAMkO,SAASjN,IAASA,EAAKuG,OAC1E,IACE,OAAO2G,KAAKC,MAAMnN,EACpB,CAAE,MAAOqN,GACP,GAAIG,EAAmB,CACrB,GAAe,gBAAXH,EAAE9C,KACJ,MAAMZ,EAAa0D,EAAG1H,KAAM,gBAE9B,MAAM0H,CACR,CACF,CAGF,OAAOrN,CACT,GAMAoC,QAAS,EAETe,eAAgB,aAChBG,eAAgB,eAEhBmK,kBAAmB,EACnBC,eAAgB,EAEhB5B,eAAgB,SAAwBnK,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAzB,QAAS,CACPiK,OAAQ,CACN,OAAU,uCAKhBpL,EAAMwE,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BvB,GACpEsF,EAASpH,QAAQ8B,GAAU,CAAC,CAC9B,IAEAjD,EAAMwE,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GACrEsF,EAASpH,QAAQ8B,GAAUjD,EAAMmL,MAAM+B,EACzC,IAEApN,EAAOC,QAAUwI,C,iCChIjBzI,EAAOC,QAAU,CACf4I,mBAAmB,EACnBE,mBAAmB,EACnB7E,qBAAqB,E,mBCLvBlE,EAAOC,QAAU,CACf,QAAW,S,gCCCbD,EAAOC,QAAU,SAAcwK,EAAIqE,GACjC,OAAO,WAEL,IADA,IAAIC,EAAO,IAAIrF,MAAMsF,UAAUtH,QACtBF,EAAI,EAAGA,EAAIuH,EAAKrH,OAAQF,IAC/BuH,EAAKvH,GAAKwH,UAAUxH,GAEtB,OAAOiD,EAAGd,MAAMmF,EAASC,EAC3B,CACF,C,qCCRA,IAAI7O,EAAQC,EAAQ,OAEpB,SAAS8O,EAAOtK,GACd,OAAOxC,mBAAmBwC,GACxBwF,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CASAnK,EAAOC,QAAU,SAAkBuC,EAAKa,EAAQC,GAE9C,IAAKD,EACH,OAAOb,EAGT,IAAI0M,EACJ,GAAI5L,EACF4L,EAAmB5L,EAAiBD,QAC/B,GAAInD,EAAM6N,kBAAkB1K,GACjC6L,EAAmB7L,EAAO0D,eACrB,CACL,IAAIoI,EAAQ,GAEZjP,EAAMwE,QAAQrB,GAAQ,SAAmBsB,EAAKC,GAChC,OAARD,GAA+B,qBAARA,IAIvBzE,EAAMoM,QAAQ3H,GAChBC,GAAY,KAEZD,EAAM,CAACA,GAGTzE,EAAMwE,QAAQC,GAAK,SAAoByK,GACjClP,EAAMmP,OAAOD,GACfA,EAAIA,EAAEE,cACGpP,EAAM8N,SAASoB,KACxBA,EAAIf,KAAKI,UAAUW,IAErBD,EAAMnH,KAAKiH,EAAOrK,GAAO,IAAMqK,EAAOG,GACxC,IACF,IAEAF,EAAmBC,EAAMI,KAAK,IAChC,CAEA,GAAIL,EAAkB,CACpB,IAAIM,EAAgBhN,EAAImB,QAAQ,MACT,IAAnB6L,IACFhN,EAAMA,EAAI+J,MAAM,EAAGiD,IAGrBhN,KAA8B,IAAtBA,EAAImB,QAAQ,KAAc,IAAM,KAAOuL,CACjD,CAEA,OAAO1M,CACT,C,iCC5DAxC,EAAOC,QAAU,SAAqBsC,EAASkN,GAC7C,OAAOA,EACHlN,EAAQ4H,QAAQ,OAAQ,IAAM,IAAMsF,EAAYtF,QAAQ,OAAQ,IAChE5H,CACN,C,qCCXA,IAAIrC,EAAQC,EAAQ,OAEpBH,EAAOC,QACLC,EAAMiE,uBAIK,CACLuL,MAAO,SAAehE,EAAM1I,EAAO2M,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO/H,KAAK0D,EAAO,IAAMvJ,mBAAmBa,IAExC9C,EAAM8P,SAASL,IACjBI,EAAO/H,KAAK,WAAa,IAAIiI,KAAKN,GAASO,eAGzChQ,EAAMkO,SAASwB,IACjBG,EAAO/H,KAAK,QAAU4H,GAGpB1P,EAAMkO,SAASyB,IACjBE,EAAO/H,KAAK,UAAY6H,IAGX,IAAXC,GACFC,EAAO/H,KAAK,UAGdmI,SAASJ,OAASA,EAAOR,KAAK,KAChC,EAEAhL,KAAM,SAAcmH,GAClB,IAAI0E,EAAQD,SAASJ,OAAOK,MAAM,IAAIC,OAAO,aAAe3E,EAAO,cACnE,OAAQ0E,EAAQE,mBAAmBF,EAAM,IAAM,IACjD,EAEAG,OAAQ,SAAgB7E,GACtB5E,KAAK4I,MAAMhE,EAAM,GAAIuE,KAAKO,MAAQ,MACpC,GAMK,CACLd,MAAO,WAAkB,EACzBnL,KAAM,WAAkB,OAAO,IAAM,EACrCgM,OAAQ,WAAmB,E,iCCzCnCvQ,EAAOC,QAAU,SAAuBuC,GAItC,MAAO,8BAA8BiO,KAAKjO,EAC5C,C,qCCXA,IAAItC,EAAQC,EAAQ,OAQpBH,EAAOC,QAAU,SAAsByQ,GACrC,OAAOxQ,EAAM8N,SAAS0C,KAAsC,IAAzBA,EAAQ9J,YAC7C,C,qCCVA,IAAI1G,EAAQC,EAAQ,OAEpBH,EAAOC,QACLC,EAAMiE,uBAIH,WACC,IAEIwM,EAFAC,EAAO,kBAAkBH,KAAKI,UAAUC,WACxCC,EAAiBZ,SAASa,cAAc,KAS5C,SAASC,EAAWzO,GAClB,IAAI0O,EAAO1O,EAWX,OATIoO,IAEFG,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAG7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAASjH,QAAQ,KAAM,IAAM,GAChFkH,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAOnH,QAAQ,MAAO,IAAM,GAC3EoH,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAKpH,QAAQ,KAAM,IAAM,GACpEqH,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAiD,MAAtCX,EAAeW,SAASC,OAAO,GACxCZ,EAAeW,SACf,IAAMX,EAAeW,SAE3B,CAUA,OARAf,EAAYM,EAAWW,OAAOC,SAASX,MAQhC,SAAyBY,GAC9B,IAAIC,EAAU7R,EAAMkO,SAAS0D,GAAeb,EAAWa,GAAcA,EACrE,OAAQC,EAAOX,WAAaT,EAAUS,UAClCW,EAAOV,OAASV,EAAUU,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,C,qCC/DN,IAAInR,EAAQC,EAAQ,OAEpBH,EAAOC,QAAU,SAA6BoB,EAAS2Q,GACrD9R,EAAMwE,QAAQrD,GAAS,SAAuB2B,EAAO0I,GAC/CA,IAASsG,GAAkBtG,EAAKtI,gBAAkB4O,EAAe5O,gBACnE/B,EAAQ2Q,GAAkBhP,SACnB3B,EAAQqK,GAEnB,GACF,C,qCCTA,IAAIxL,EAAQC,EAAQ,OAIhB8R,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BjS,EAAOC,QAAU,SAAsBoB,GACrC,IACIuD,EACAD,EACA6C,EAHAuK,EAAS,CAAC,EAKd,OAAK1Q,GAELnB,EAAMwE,QAAQrD,EAAQ6Q,MAAM,OAAO,SAAgBC,GAKjD,GAJA3K,EAAI2K,EAAKxO,QAAQ,KACjBiB,EAAM1E,EAAMqO,KAAK4D,EAAKC,OAAO,EAAG5K,IAAI3C,cACpCF,EAAMzE,EAAMqO,KAAK4D,EAAKC,OAAO5K,EAAI,IAE7B5C,EAAK,CACP,GAAImN,EAAOnN,IAAQqN,EAAkBtO,QAAQiB,IAAQ,EACnD,OAGAmN,EAAOnN,GADG,eAARA,GACamN,EAAOnN,GAAOmN,EAAOnN,GAAO,IAAIgF,OAAO,CAACjF,IAEzCoN,EAAOnN,GAAOmN,EAAOnN,GAAO,KAAOD,EAAMA,CAE3D,CACF,IAEOoN,GAnBgBA,CAoBzB,C,iCC9BA/R,EAAOC,QAAU,SAAgBoS,GAC/B,OAAO,SAAcC,GACnB,OAAOD,EAAS1I,MAAM,KAAM2I,EAC9B,CACF,C,qCCxBA,IAAI9L,EAAUrG,EAAAA,MAAAA,QAEVqI,EAAa,CAAC,EAGlB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU9D,SAAQ,SAASW,EAAMmC,GACrFgB,EAAWnD,GAAQ,SAAmBkN,GACpC,cAAcA,IAAUlN,GAAQ,KAAOmC,EAAI,EAAI,KAAO,KAAOnC,CAC/D,CACF,IAEA,IAAImN,EAAqB,CAAC,EAS1BhK,EAAWvE,aAAe,SAAsBsE,EAAWkK,EAAS5L,GAClE,SAAS6L,EAAcC,EAAKC,GAC1B,MAAO,WAAapM,EAAU,0BAA6BmM,EAAM,IAAOC,GAAQ/L,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAAS7D,EAAO2P,EAAKE,GAC1B,IAAkB,IAAdtK,EACF,MAAM,IAAIyC,MAAM0H,EAAcC,EAAK,qBAAuBF,EAAU,OAASA,EAAU,MAczF,OAXIA,IAAYD,EAAmBG,KACjCH,EAAmBG,IAAO,EAE1BG,QAAQC,KACNL,EACEC,EACA,+BAAiCF,EAAU,8CAK1ClK,GAAYA,EAAUvF,EAAO2P,EAAKE,EAC3C,CACF,EAgCA7S,EAAOC,QAAU,CACf2I,cAxBF,SAAuB0B,EAAS0I,EAAQC,GACtC,GAAuB,kBAAZ3I,EACT,MAAM,IAAIpD,UAAU,6BAItB,IAFA,IAAI6F,EAAOD,OAAOC,KAAKzC,GACnB9C,EAAIuF,EAAKrF,OACNF,KAAM,GAAG,CACd,IAAImL,EAAM5F,EAAKvF,GACXe,EAAYyK,EAAOL,GACvB,GAAIpK,EAAJ,CACE,IAAIvF,EAAQsH,EAAQqI,GAChBO,OAAmB1O,IAAVxB,GAAuBuF,EAAUvF,EAAO2P,EAAKrI,GAC1D,IAAe,IAAX4I,EACF,MAAM,IAAIhM,UAAU,UAAYyL,EAAM,YAAcO,EAGxD,MACA,IAAqB,IAAjBD,EACF,MAAMjI,MAAM,kBAAoB2H,EAEpC,CACF,EAIEnK,WAAYA,E,qCC9Ed,IAAI9C,EAAOvF,EAAQ,MAIf4G,EAAW+F,OAAO5G,UAAUa,SAQhC,SAASuF,EAAQ3H,GACf,OAAO+E,MAAM4C,QAAQ3H,EACvB,CAQA,SAASI,EAAYJ,GACnB,MAAsB,qBAARA,CAChB,CAmBA,SAAS6I,EAAc7I,GACrB,MAA8B,yBAAvBoC,EAASoE,KAAKxG,EACvB,CAsDA,SAASqJ,EAASrJ,GAChB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAQA,SAAS0H,EAAc1H,GACrB,GAA2B,oBAAvBoC,EAASoE,KAAKxG,GAChB,OAAO,EAGT,IAAIuB,EAAY4G,OAAOqG,eAAexO,GACtC,OAAqB,OAAduB,GAAsBA,IAAc4G,OAAO5G,SACpD,CAsCA,SAASkN,EAAWzO,GAClB,MAA8B,sBAAvBoC,EAASoE,KAAKxG,EACvB,CAuEA,SAASD,EAAQ2O,EAAK5I,GAEpB,GAAY,OAAR4I,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL/G,EAAQ+G,GAEV,IAAK,IAAI7L,EAAI,EAAGC,EAAI4L,EAAI3L,OAAQF,EAAIC,EAAGD,IACrCiD,EAAGU,KAAK,KAAMkI,EAAI7L,GAAIA,EAAG6L,QAI3B,IAAK,IAAIzO,KAAOyO,EACVvG,OAAO5G,UAAUoN,eAAenI,KAAKkI,EAAKzO,IAC5C6F,EAAGU,KAAK,KAAMkI,EAAIzO,GAAMA,EAAKyO,EAIrC,CAuEArT,EAAOC,QAAU,CACfqM,QAASA,EACTkB,cAAeA,EACfC,SAtSF,SAAkB9I,GAChB,OAAe,OAARA,IAAiBI,EAAYJ,IAA4B,OAApBA,EAAI4O,cAAyBxO,EAAYJ,EAAI4O,cAChD,oBAA7B5O,EAAI4O,YAAY9F,UAA2B9I,EAAI4O,YAAY9F,SAAS9I,EAClF,EAoSE/C,WAlRF,SAAoB+C,GAClB,MAA8B,sBAAvBoC,EAASoE,KAAKxG,EACvB,EAiREkJ,kBAzQF,SAA2BlJ,GAOzB,MAL4B,qBAAhB6O,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAO9O,GAElBA,GAASA,EAAImJ,QAAYN,EAAc7I,EAAImJ,OAGzD,EAkQEM,SA1PF,SAAkBzJ,GAChB,MAAsB,kBAARA,CAChB,EAyPEqL,SAjPF,SAAkBrL,GAChB,MAAsB,kBAARA,CAChB,EAgPEqJ,SAAUA,EACV3B,cAAeA,EACftH,YAAaA,EACbsK,OAlNF,SAAgB1K,GACd,MAA8B,kBAAvBoC,EAASoE,KAAKxG,EACvB,EAiNEgJ,OAzMF,SAAgBhJ,GACd,MAA8B,kBAAvBoC,EAASoE,KAAKxG,EACvB,EAwMEiJ,OAhMF,SAAgBjJ,GACd,MAA8B,kBAAvBoC,EAASoE,KAAKxG,EACvB,EA+LEyO,WAAYA,EACZ1F,SA9KF,SAAkB/I,GAChB,OAAOqJ,EAASrJ,IAAQyO,EAAWzO,EAAI+O,KACzC,EA6KE3F,kBArKF,SAA2BpJ,GACzB,MAA8B,6BAAvBoC,EAASoE,KAAKxG,EACvB,EAoKER,qBAzIF,WACE,OAAyB,qBAAd0M,WAAoD,gBAAtBA,UAAU8C,SACY,iBAAtB9C,UAAU8C,SACY,OAAtB9C,UAAU8C,WAI/B,qBAAX/B,QACa,qBAAbzB,SAEX,EAgIEzL,QAASA,EACT2G,MAvEF,SAASA,IACP,IAAI6H,EAAS,CAAC,EACd,SAASU,EAAYjP,EAAKC,GACpByH,EAAc6G,EAAOtO,KAASyH,EAAc1H,GAC9CuO,EAAOtO,GAAOyG,EAAM6H,EAAOtO,GAAMD,GACxB0H,EAAc1H,GACvBuO,EAAOtO,GAAOyG,EAAM,CAAC,EAAG1G,GACf2H,EAAQ3H,GACjBuO,EAAOtO,GAAOD,EAAI4H,QAElB2G,EAAOtO,GAAOD,CAElB,CAEA,IAAK,IAAI6C,EAAI,EAAGC,EAAIuH,UAAUtH,OAAQF,EAAIC,EAAGD,IAC3C9C,EAAQsK,UAAUxH,GAAIoM,GAExB,OAAOV,CACT,EAsDE/M,OA5CF,SAAgB0N,EAAGC,EAAGhF,GAQpB,OAPApK,EAAQoP,GAAG,SAAqBnP,EAAKC,GAEjCiP,EAAEjP,GADAkK,GAA0B,oBAARnK,EACXe,EAAKf,EAAKmK,GAEVnK,CAEb,IACOkP,CACT,EAoCEtF,KAhKF,SAAcwF,GACZ,OAAOA,EAAIxF,KAAOwF,EAAIxF,OAASwF,EAAI5J,QAAQ,aAAc,GAC3D,EA+JE6J,SA7BF,SAAkBC,GAIhB,OAH8B,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQ1H,MAAM,IAEnB0H,CACT,E,iVCzSO,IAAKE,GAeX,SAfWA,GAAAA,EAA2B,mCAA3BA,EAA2B,2BAA3BA,EAA2B,+CAA3BA,EAA2B,sCAA3BA,EAA2B,kCAA3BA,EAA2B,sBAA3BA,EAA2B,6BAA3BA,EAA2B,mCAA3BA,EAA2B,yCAA3BA,EAA2B,uCAA3BA,EAA2B,6CAA3BA,EAA2B,8BAA3BA,EAA2B,iCAA3BA,EAA2B,qCAetC,CAfWA,IAAAA,EAA2B,KA6EhC,MAAMC,EAAiB,YCtFjB/H,EAAiBgH,GACY,oBAAxCvG,OAAO5G,UAAUa,SAASoE,KAAKkI,GAEjC,IAAIgB,EAGG,MAwBMC,EAAiBA,IAC5B1C,OAAO2C,eAAeC,QAAQ,gBAAkB5C,OAAO6C,YAE5CC,EAAoBC,IAAA,IAAC,QAChC9N,EAAO,WACP+N,EAAU,SACVC,EAAQ,WACRC,GACiBH,EAAA,MAhCUI,KAC3B,IACE,OAAO1G,KAAKI,UAAUsG,EACxB,CAAE,MAAO9K,GAEP,IAAKoK,EACH,IACE,MAAMR,EAAI,CAAC,EAEXA,EAAEA,EAAIA,EACNxF,KAAKI,UAAUoF,EACjB,CAAE,MAAOmB,GACPX,EAA0BW,EAAmBnO,OAC/C,CAGF,GAAKoD,EAAgBpD,UAAYwN,EAC/B,MAAO,aAGT,MAAMpK,CACR,GAYAgL,CAAa,IACY,kBAAZpO,GAAwBwF,EAAcxF,GAC7CA,EACA,CAAEA,WACNqO,OAAQJ,GAAc,GACtBD,WACAM,WAAYP,GAAc,IAAIxR,eAC9B,EAEG,MAAMgS,EASX7B,cAAe,KARRnM,aAAO,OAENiO,UAAI,OACJC,WAAK,OAEL1N,cAAQ,OACR2N,aAAO,EAGbzO,KAAKwO,MAAQ,UACbxO,KAAKuO,KAAO,aACZvO,KAAKM,QAAU,IAAItG,SAAQ,CAACC,EAASC,KACnC8F,KAAKc,SAAW7G,EAChB+F,KAAKyO,QAAUvU,CAAM,IAGvB8F,KAAKM,QAAQE,MACX,IAAOR,KAAKwO,MAAQ,cACpB,IAAOxO,KAAKwO,MAAQ,YAExB,CAEAvU,QAAQiC,GACN,GAAkB,aAAd8D,KAAKuO,KACP,MAAMrK,MAAM,qCAGdlE,KAAKuO,KAAO,WAEZvO,KAAKc,SAAS5E,EAChB,CAEAhC,OAAO6G,GACL,GAAkB,aAAdf,KAAKuO,KACP,MAAMrK,MAAM,qCAGdlE,KAAKuO,KAAO,WAEZvO,KAAKyO,QAAQ1N,EACf,CAEA2N,aACE,MAAqB,aAAd1O,KAAKuO,IACd,CAEAI,YACE,MAAsB,YAAf3O,KAAKwO,KACd,CAEAI,cACE,MAAsB,cAAf5O,KAAKwO,KACd,CAEAK,aACE,MAAsB,aAAf7O,KAAKwO,KACd,ECZF,MApG2BM,CACzBV,EACA5K,KAEA,IAAK4K,IAAWA,EAAOW,cACrB,MAAM,IAAI7K,MACR,iEAIJ,IAAI8K,GAAkB,EACtB,MAAMC,EAAeb,EACfc,GAAmB,OAAP1L,QAAO,IAAPA,OAAO,EAAPA,EAAS9H,MAAO,4BAC5ByT,GAA4B,OAAP3L,QAAO,IAAPA,OAAO,EAAPA,EAAS4L,gBAAgB,EAC9CC,GAAqB,OAAP7L,QAAO,IAAPA,OAAO,EAAPA,EAAS8L,QAASC,EAASC,OAAOC,MAChDC,GAAsB,OAAPlM,QAAO,IAAPA,OAAO,EAAPA,EAASmM,SAAU/B,EAClCgC,GAA0B,OAAPpM,QAAO,IAAPA,OAAO,EAAPA,EAASqM,aAAc,CAC9C,eAAgB,oBAEZC,EAAwBb,EAAaF,cACrCgB,EAAmC,GAEnCC,EAAkBA,KACtB,IAAKD,EAAgBnP,QAAUoO,EAC7B,OAAOhV,QAAQC,UAGjB+U,GAAkB,EAElB,MAAM,SACJiB,EAAQ,iBACRC,EAAgB,eAChBC,EAAiB7C,GACfyC,EAAgBhN,QAEdhJ,EAA6B,CACjCQ,QAAS,IACJqV,EACH,WAAYO,IAIhB,OAAOpR,IAAAA,KACCmQ,EAAWgB,EAAkBnW,GAClCyG,MAAK,KACJwO,GAAkB,EAClBiB,EAAShW,UACT6C,WAAWkT,EAAiB,EAAE,IAE/BI,OAAM1I,IACLsH,GAAkB,EAClBiB,EAAS/V,OAAOwN,GAChB5K,WAAWkT,EAAiB,EAAE,GAC9B,EA2CN5B,EAAOW,cAxCqBsB,CAC1BvC,EACAC,EACAC,KAEA,MAAMsC,EAAYR,EAAsBhC,EAAYC,EAAUC,GAE9D,OAAQjO,IACN,MAAMmQ,EAA2BR,EAAa,CAC5C3P,UACA+N,aACAC,WACAC,WAAYuC,OAAOvC,KAGrB,IAAImC,EAEAhB,GACFmB,EAAUvQ,GAGW,kBAAZA,GAAwBwF,EAAcxF,KAC/CoQ,EAAiBpQ,EAAQyQ,SAG3B,MAAMC,EAAyB,IAAInC,EAUnC,OARAyB,EAAgB7O,KAAK,CACnBgP,mBACAC,iBACAF,SAAUQ,IAGZT,IAEOS,EAAuBnQ,OAAO,CACtC,EAKH8N,EAAOsC,SAASrB,EAAY,EC3F9B,MAAMjB,EAASmB,EAASoB,UAAU,gBAE5BvJ,EAAS,IAAIwJ,EAAAA,UACb,OAAEC,EAAM,GAAEC,EAAE,QAAEC,GAAY3J,EAAO4J,YAWrCC,EAAqB7C,EARwB,CAC3C1S,IAAM,GAAE8K,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,sBAAAA,2BAAAA,0BAAAA,+BAAAA,uBAAAA,4BAAAA,+BAAAA,oCAAAA,kCAAAA,uCAAAA,4BAAAA,iCAAAA,+BAAAA,oCAAAA,0BAAAA,kCAAAA,gBAAAA,eAAAA,uBAAAA,oEAAY0K,gBACpBrB,WAAY,CACV,eAAgB,mBAChB,WAAYvC,KASY,SAA5B9G,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,sBAAAA,2BAAAA,0BAAAA,+BAAAA,uBAAAA,4BAAAA,+BAAAA,oCAAAA,kCAAAA,uCAAAA,4BAAAA,iCAAAA,+BAAAA,oCAAAA,0BAAAA,kCAAAA,gBAAAA,eAAAA,uBAAAA,oEAAY2K,YAEZ/C,EAAOgD,gBAAgB7B,EAASC,OAAO6B,OAEvCjD,EAAOkD,YAGT,MAAMC,EAAcA,CAClBxR,EACA+K,EACA0G,EACAC,EACAC,KAEA,MAAMhI,EAAMP,KAAKO,MAEjB,MAAO,IACFgI,EACH/D,YAAaH,IACbmE,kBAAmBH,EACfA,EAAaI,mBACbvE,EAA4BuE,kBAC5BvE,EAA4BwE,YAChCC,aAAcN,EACVA,EAAaO,cAAgB1E,EAA4B0E,aACzD1E,EAA4BwE,YAChCG,MAAOP,EACHA,EAASO,OAAS3E,EAA4B4E,MAC9C5E,EAA4B6E,QAChCC,UAAWzI,EACX0I,gBAAiB,IAAIjJ,KAAKO,GAAKzJ,WAC/BF,UACAsS,kBACEvH,EAAOuH,mBAAqBhF,EAA4BiF,SAC1DC,eACEzH,EAAO0H,yBACPnF,EAA4BoF,eAC9BC,mBAAoB5H,EAAOf,UAAUC,UACrC2I,oBAAqB7H,EAAOf,UAAU6I,WACtCC,iBAAkB/H,EAAOf,UAAUyG,QACnCsC,wBAAyBhI,EAAOf,UAAUgJ,cAC1CC,gBAAiBlI,EAAOf,UAAUkJ,SAClCC,oBAAsB,GAAEpI,EAAOqI,OAAOC,SAAStI,EAAOqI,OAAOE,SAC7DC,cAAexI,EAAOa,QACtB4H,YAAaxC,EAAQnM,MAAQyI,EAA4BmG,YACzDC,eACE1C,EAAQpF,SAAW0B,EAA4BqG,eACjDC,OAAQ7C,EAAGlM,MAAQyI,EAA4BuG,OAC/CC,UAAW/C,EAAGnF,SAAW0B,EAA4ByG,UACrDC,YAAalD,EAAOmD,OAAS3G,EAA4B4G,OACzDC,aAAcrD,EAAOsD,QAAU9G,EAA4B+G,aAC3DC,WAAYxD,EAAOtS,MAAQ8O,EAA4BiH,WACxD,EAoCH,ICnHA,GACEC,IDiFiB,SAAAC,GAGE,IAFnB,QAAEzU,EAAO,QAAEyQ,EAAO,aAAEgB,EAAY,SAAEC,EAAQ,YAAEC,GAAyB8C,EACrEnG,EAAqBnG,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,GAAAA,UAAA,GAAG,QAExB,MAAMuM,EAA4B,CAChCC,SAAS,EACTlE,UACAzQ,QAASwR,EAAYxR,EAAS+K,OAAQ0G,EAAcC,EAAUC,IAG1DtF,EAASgC,EAAOC,GAAWoG,GAEjC,OAAOrI,GAAqCpS,QAAQC,SACtD,EC7FE0a,SD+FsBC,IAMU,IANT,QACvB7U,EAAO,QACPyQ,EAAO,aACPgB,EAAY,SACZC,EAAQ,YACRC,GACWkD,EACX,MAAMC,EAA8B,CAClCH,SAAS,EACTlE,UACAzQ,QAASwR,EAAYxR,EAAS+K,OAAQ0G,EAAcC,EAAUC,IAG1DtF,EAASgC,EAAOjL,MAAM0R,GAE5B,OAAOzI,GAAqCpS,QAAQC,SAAS,EC7G7D6a,iBDgHF,EC/GEC,8BHN2CA,CAAAP,EAE3CtP,KAAc,IADd,QAAEnF,EAAO,SAAEiV,EAAQ,OAAEC,EAAM,MAAEC,EAAK,MAAE/R,GAAmBqR,EAAA,MAGtD,iBAAgBzU,aAAmBiV,WAAkBC,aAAkBC,iBAAqBhQ,GAC3F/B,GAAO,EGETgS,uCHAoDP,IAAA,IAAC,QACrD7U,GACoC6U,EAAA,MAAM,iBAAgB7U,GAAS,GIf9D,MAAMqV,EAA0B,qDAEhC,IAAKC,GAGX,SAHWA,GAAAA,EAAa,gCAAbA,EAAa,oCAGxB,CAHWA,IAAAA,EAAa,KCGlB,MAAMC,EAAYtL,GACvBoL,EAAwBzL,KAAKK,GCH/B,OACEsL,SAAQ,EACRC,gBDG8BvL,GAC9BsL,EAAStL,GACLqL,EAAcG,eACdH,EAAcI,iBCLlBJ,cACF,GCLA,MAAMjO,EAAS,IAAIwJ,EAAAA,SCAN8E,EAAaA,IACxBrM,SAASJ,OACNmC,MAAM,KACNuK,QAAO,CAACC,EAAwB3M,KAC/B,MAAOrE,EAAM1I,GAAS+M,EAAOxB,OAAO2D,MAAM,KAI1C,OAFAwK,EAAIhR,GAAQ1I,EAEL0Z,CAAG,GACT,CAAC,GCFR,OACEC,UDGwBjR,GACxB8Q,IAAa9Q,IAAS,KCHtB8Q,WAAU,EACVI,cFmE4BpL,IAC5B,GAAIA,EAASqL,SAAS,aACpB,OAAOrL,EAGT,MAAMsL,EAAgBtL,EAASpB,MAAM,qCAErC,OAAO0M,EAAgBA,EAAc,GAAKtL,CAAQ,EEzElDuL,eCZA1Z,GAEAyJ,OAAOC,KAAK1J,GAAQoZ,QAClB,CAACC,EAAK9X,EAAKqD,IACR,GAAEyU,IAAgB,IAAVzU,EAAc,IAAM,MAAMrD,KAAOvB,EAAOuB,MACnD,IDQFoY,UDEuB1B,IAAA,IAAC,KACxB5P,EAAI,MACJ1I,EAAK,OACL6M,EAAM,KACND,EAAO,IAAG,OACVE,EAAM,SACNmN,GACW3B,EAAA,OACXnL,SAASJ,OAAU,GAAErE,KAAQ1I,UAAc4M,KAAQC,EAAU,UAASA,KAAY,KAAKC,EAAS,UAAY,KAAKmN,EAAY,YAAWA,IAAa,IAAI,ECTzJC,wBFXqCA,KACrC,MAAM,GAAEtF,EAAK,KAAI,QAAEC,EAAU,MAAS3J,EAAO4J,aAAe,CAAC,EAE7D,IAAKD,IAAYA,EAAQpF,QACvB,OAAO,EAGT,MAAM0K,EAAeC,OAAOvF,EAAQpF,QAAQP,MAAM,KAAK,IAEvD,QAAI2F,EAAQnM,MAAuC,OAA/BmM,EAAQnM,KAAK7G,mBAK/BgT,EAAQnM,MACuB,SAA/BmM,EAAQnM,KAAK7G,eACbsY,GAAgB,QAMhBtF,EAAQnM,MACuB,WAA/BmM,EAAQnM,KAAK7G,eACbsY,GAAgB,QAMhBtF,EAAQnM,MACuB,YAA/BmM,EAAQnM,KAAK7G,eACbsY,GAAgB,QAMhBtF,EAAQnM,MACuB,oBAA/BmM,EAAQnM,KAAK7G,eACbsY,EAAe,QAMftF,EAAQnM,MACuB,WAA/BmM,EAAQnM,KAAK7G,eACbsY,EAAe,QAMftF,EAAQnM,MACuB,kBAA/BmM,EAAQnM,KAAK7G,eACbsY,EAAe,OAMftF,EAAQnM,MACuB,QAA/BmM,EAAQnM,KAAK7G,eACb+S,GACAA,EAAGlM,MACuB,QAA1BkM,EAAGlM,KAAK7G,eACRsY,EAAe,SAKN,EE5DXE,WFyEwBA,IAAMnP,EAAOmP,aExErCC,MF0EmBA,IAAMpP,EAAOoP,SIzFlC,OACEC,aCH0BA,IAEnB,uCAAuCpT,QAAQ,SAAS/B,IAE7D,MAAMoV,EAAqB,GAAhBC,KAAKC,SAAiB,EAIjC,OAHgB,MAANtV,EAAYoV,EAAS,EAAJA,EAAW,GAG7BzW,SAAS,GAAG,KCRlB,MAIM4W,EAA+B,SAE/BC,EAAgD,8CAK1DD,g0BCAI,MAAME,EAWHtK,cAAe,KARfuK,QAAyB,KAAI,KAC7BC,mBAAa,OACbC,0BAAoB,CAML,CAQvB,qBAKE,OAJKH,EAAa5X,WAChB4X,EAAa5X,SAAW,IAAI4X,GAGvBA,EAAa5X,QACtB,CAEOgY,WAAWzb,EAAa0b,GAC7B,IAME,OALKpX,KAAKgX,UAAWhX,KAAKgX,QAAQK,SAChCrX,KAAKiX,cAAgBG,GDzCY,SC0CjCpX,KAAKgX,QAAUlM,OAAO1O,KAAKV,EAAKsE,KAAKiX,gBAGhCjX,KAAKgX,OACd,CAAE,MAAO7T,GACP,OAAO,IACT,CACF,CAEOmU,kBAIJ,IAHDC,EAAYrP,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,GAAAA,UAAA,GDlDqC,2ECmDjDxE,EAAUwE,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,GAAAA,UAAA,GAAG2O,EACbW,EAActP,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,GAAAA,UAAA,GAAG4O,EAEjB,GAAM9W,KAAKgX,UAAYhX,KAAKgX,QAAQK,OAAQ,CAC1C,GAAIG,EAAQ,CACV,MAAMC,EAAQpO,SAASa,cAAc,SACrCuN,EAAMC,UAAYF,EAClBxX,KAAKgX,QAAQ3N,SAASsO,KAAKC,YAAYH,EACzC,CAEA,MAAMI,EAAYxO,SAASa,cAAc,OAErCxG,IACFmU,EAAUnU,GAAKA,GAGjBmU,EAAUH,UAAYH,EACtBvX,KAAKgX,QAAQ3N,SAASyO,KAAKF,YAAYC,EACzC,CACF,CAEOE,uBAAuBxM,GAAsC,IAAhB9O,EAAOyL,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,GAAAA,UAAA,GAAG,IAC5DlI,KAAKkX,qBAAuBpM,OAAOkN,aAAY,KACvChY,KAAKgX,SAAWhX,KAAKgX,QAAQK,SACjC9L,IACAvL,KAAKiY,4BACP,GACCxb,EACL,CAEOwb,4BACLnN,OAAOoN,cAAclY,KAAKkX,sBAC1BlX,KAAKkX,0BAAuBxZ,CAC9B,CAEOya,cAAe,IAADC,EACP,QAAZA,EAAApY,KAAKgX,eAAO,IAAAoB,GAAZA,EAAcC,OAChB,CAEOC,cACmB,IAADC,EADWrQ,UAAAtH,OAAA,QAAAlD,IAAAwK,UAAA,KAAAA,UAAA,KAEpB,QAAZqQ,EAAAvY,KAAKgX,eAAO,IAAAuB,GAAZA,EAAcF,SAGhBrY,KAAKgX,QAAU,KACfhX,KAAKiX,mBAAgBvZ,EAErBsC,KAAKiY,2BACP,CAEOO,YACL,OAAOxY,KAAKgX,OACd,CAEOyB,kBACL,OAAOzY,KAAKiX,aACd,EAlGWF,EACI5X,cAAQ,C,wBCZzB,SAMC,SAAUuZ,EAAMC,GACb,aAEIC,EAMA,WAIJ,IAAIC,EAAO,WAAY,EACnBC,EAAgB,YAChBC,SAAejO,SAAWgO,UAA0BhO,OAAOf,YAAc+O,GACzE,kBAAkBnP,KAAKmB,OAAOf,UAAUC,WAGxCgP,EAAa,CACb,QACA,QACA,OACA,OACA,SAIJ,SAASC,EAAW1M,EAAKuB,GACrB,IAAIzR,EAASkQ,EAAIuB,GACjB,GAA2B,oBAAhBzR,EAAOuC,KACd,OAAOvC,EAAOuC,KAAK2N,GAEnB,IACI,OAAO2M,SAAS9Z,UAAUR,KAAKyF,KAAKhI,EAAQkQ,EAChD,CAAE,MAAO7E,GAEL,OAAO,WACH,OAAOwR,SAAS9Z,UAAUyD,MAAMA,MAAMxG,EAAQ,CAACkQ,EAAKrE,WACxD,CACJ,CAER,CAGA,SAASiR,IACDnN,QAAQuI,MACJvI,QAAQuI,IAAI1R,MACZmJ,QAAQuI,IAAI1R,MAAMmJ,QAAS9D,WAG3BgR,SAAS9Z,UAAUyD,MAAMA,MAAMmJ,QAAQuI,IAAK,CAACvI,QAAS9D,aAG1D8D,QAAQoN,OAAOpN,QAAQoN,OAC/B,CAIA,SAASC,EAAWvL,GAKhB,MAJmB,UAAfA,IACAA,EAAa,cAGN9B,UAAY8M,IAEG,UAAfhL,GAA0BiL,EAC1BI,OACwBzb,IAAxBsO,QAAQ8B,GACRmL,EAAWjN,QAAS8B,QACJpQ,IAAhBsO,QAAQuI,IACR0E,EAAWjN,QAAS,OAEpB6M,EAEf,CAIA,SAASS,EAAsBhK,EAAOtB,GAElC,IAAK,IAAItN,EAAI,EAAGA,EAAIsY,EAAWpY,OAAQF,IAAK,CACxC,IAAIoN,EAAakL,EAAWtY,GAC5BV,KAAK8N,GAAepN,EAAI4O,EACpBuJ,EACA7Y,KAAK+O,cAAcjB,EAAYwB,EAAOtB,EAC9C,CAGAhO,KAAKuU,IAAMvU,KAAKuZ,KACpB,CAIA,SAASC,EAAgC1L,EAAYwB,EAAOtB,GACxD,OAAO,kBACQhC,UAAY8M,IACnBQ,EAAsBjV,KAAKrE,KAAMsP,EAAOtB,GACxChO,KAAK8N,GAAYjL,MAAM7C,KAAMkI,WAErC,CACJ,CAIA,SAASuR,EAAqB3L,EAAYwB,EAAOtB,GAE7C,OAAOqL,EAAWvL,IACX0L,EAAgC3W,MAAM7C,KAAMkI,UACvD,CAEA,SAASwR,EAAO9U,EAAM+U,EAAcC,GAClC,IACIC,EADAC,EAAO9Z,KAEX2Z,EAA+B,MAAhBA,EAAuB,OAASA,EAE/C,IAAII,EAAa,WAOjB,SAASC,EAAuBC,GAC5B,IAAIC,GAAalB,EAAWiB,IAAa,UAAU3d,cAEnD,UAAWwO,SAAWgO,GAAkBiB,EAAxC,CAGA,IAEI,YADAjP,OAAOqP,aAAaJ,GAAcG,EAEtC,CAAE,MAAOE,GAAS,CAGlB,IACItP,OAAOzB,SAASJ,OACd5N,mBAAmB0e,GAAc,IAAMG,EAAY,GACzD,CAAE,MAAOE,GAAS,CAZwC,CAa9D,CAEA,SAASC,IACL,IAAIC,EAEJ,UAAWxP,SAAWgO,GAAkBiB,EAAxC,CAEA,IACIO,EAAcxP,OAAOqP,aAAaJ,EACtC,CAAE,MAAOK,GAAS,CAGlB,UAAWE,IAAgBxB,EACvB,IACI,IAAI7P,EAAS6B,OAAOzB,SAASJ,OACzB8B,EAAW9B,EAAOpM,QAClBxB,mBAAmB0e,GAAc,MACnB,IAAdhP,IACAuP,EAAc,WAAWC,KAAKtR,EAAOxD,MAAMsF,IAAW,GAE9D,CAAE,MAAOqP,GAAS,CAQtB,YAJiC1c,IAA7Boc,EAAKtK,OAAO8K,KACZA,OAAc5c,GAGX4c,CAvBmD,CAwB9D,CAEA,SAASE,IACL,UAAW1P,SAAWgO,GAAkBiB,EAAxC,CAGA,IAEI,YADAjP,OAAOqP,aAAaM,WAAWV,EAEnC,CAAE,MAAOK,GAAS,CAGlB,IACItP,OAAOzB,SAASJ,OACd5N,mBAAmB0e,GAAc,0CACvC,CAAE,MAAOK,GAAS,CAZwC,CAa9D,CAnEoB,kBAATxV,EACTmV,GAAc,IAAMnV,EACK,kBAATA,IAChBmV,OAAarc,GAwEfoc,EAAKlV,KAAOA,EAEZkV,EAAKtK,OAAS,CAAE,MAAS,EAAG,MAAS,EAAG,KAAQ,EAAG,KAAQ,EACvD,MAAS,EAAG,OAAU,GAE1BsK,EAAK/K,cAAgB6K,GAAWH,EAEhCK,EAAKY,SAAW,WACZ,OAAOb,CACX,EAEAC,EAAKpJ,SAAW,SAAUpB,EAAOqL,GAI7B,GAHqB,kBAAVrL,QAA2D5R,IAArCoc,EAAKtK,OAAOF,EAAMhT,iBAC/CgT,EAAQwK,EAAKtK,OAAOF,EAAMhT,kBAET,kBAAVgT,GAAsBA,GAAS,GAAKA,GAASwK,EAAKtK,OAAOoL,QAUhE,KAAM,6CAA+CtL,EAJrD,GALAuK,EAAevK,GACC,IAAZqL,GACAX,EAAuB1K,GAE3BgK,EAAsBjV,KAAKyV,EAAMxK,EAAO1K,UAC7BoH,UAAY8M,GAAiBxJ,EAAQwK,EAAKtK,OAAOoL,OACxD,MAAO,kCAKnB,EAEAd,EAAK1I,gBAAkB,SAAU9B,GAC7BqK,EAAerK,EACV+K,KACDP,EAAKpJ,SAASpB,GAAO,EAE7B,EAEAwK,EAAKe,WAAa,WACdf,EAAKpJ,SAASiJ,GAAc,GAC5Ba,GACJ,EAEAV,EAAKxI,UAAY,SAASqJ,GACtBb,EAAKpJ,SAASoJ,EAAKtK,OAAOC,MAAOkL,EACrC,EAEAb,EAAKgB,WAAa,SAASH,GACvBb,EAAKpJ,SAASoJ,EAAKtK,OAAOoL,OAAQD,EACtC,EAGA,IAAII,EAAeV,IACC,MAAhBU,IACAA,EAAepB,GAEnBG,EAAKpJ,SAASqK,GAAc,EAC9B,CAQA,IAAIC,EAAgB,IAAItB,EAEpBuB,EAAiB,CAAC,EACtBD,EAAcrK,UAAY,SAAmB/L,GACzC,GAAqB,kBAATA,GAAqC,kBAATA,GAA+B,KAATA,EAC5D,MAAM,IAAIxE,UAAU,kDAGtB,IAAIgO,EAAS6M,EAAerW,GAK5B,OAJKwJ,IACHA,EAAS6M,EAAerW,GAAQ,IAAI8U,EAClC9U,EAAMoW,EAAcN,WAAYM,EAAcjM,gBAE3CX,CACX,EAGA,IAAI8M,SAAepQ,SAAWgO,EAAiBhO,OAAOyJ,SAAM7W,EAiB5D,OAhBAsd,EAAcG,WAAa,WAMvB,cALWrQ,SAAWgO,GACfhO,OAAOyJ,MAAQyG,IAClBlQ,OAAOyJ,IAAM2G,GAGVF,CACX,EAEAA,EAAcI,WAAa,WACvB,OAAOH,CACX,EAGAD,EAAuB,QAAIA,EAEpBA,CACX,OA/RyB,8DAMxB,CATA,E,wBCND,OAUA,SAAWlQ,EAAQpN,GAEf,aAOA,IAGI2d,EAAc,WACdC,EAAc,YACdC,EAAc,SACdC,EAAc,SAEdC,EAAc,QACdC,EAAc,OACdC,EAAc,OACdC,EAAc,SACdlc,EAAc,UACdmc,EAAc,eACdC,EAAc,UACdC,EAAc,SACdC,EAAc,SACdC,EAAc,UACdC,EAAc,WACdC,EAAc,WAGdC,EAAU,SACVC,EAAU,QACVC,EAAU,OACVC,EAAa,aACbC,EAAU,UACVC,EAAU,SAEVC,EAAU,UACVC,EAAU,SACVC,EAAU,SACVC,EAAU,KACVC,EAAY,YACZC,EAAY,WACZC,EAAU,QACVC,EAAU,UACVC,EAAU,QACVC,EAAU,OACVC,EAAU,SACVC,EAAU,QACVC,EAAa,WAiBbC,EAAY,SAAU/R,GAElB,IADA,IAAIgS,EAAQ,CAAC,EACJ9c,EAAE,EAAGA,EAAE8K,EAAI5K,OAAQF,IACxB8c,EAAMhS,EAAI9K,GAAGpE,eAAiBkP,EAAI9K,GAEtC,OAAO8c,CACX,EACAC,EAAM,SAAUC,EAAMC,GAClB,cAAcD,IAASlC,IAAuD,IAA5CoC,EAASD,GAAM9gB,QAAQ+gB,EAASF,GACtE,EACAE,EAAW,SAAU3Q,GACjB,OAAOA,EAAIlP,aACf,EAIA0J,EAAO,SAAUwF,EAAK4Q,GAClB,UAAW5Q,IAASuO,EAEhB,OADAvO,EAAMA,EAAI5J,QAAQ,SA3EZ,WA4EQwa,IAASvC,EAAarO,EAAMA,EAAI6Q,UAAU,EAzDhD,IA2DpB,EAMIC,EAAY,SAAUC,EAAIC,GAKtB,IAHA,IAAWC,EAAGC,EAAGC,EAAGC,EAAGC,EAAShV,EAA5B5I,EAAI,EAGDA,EAAIud,EAAOrd,SAAW0d,GAAS,CAElC,IAAIC,EAAQN,EAAOvd,GACf8d,EAAQP,EAAOvd,EAAI,GAIvB,IAHAwd,EAAIC,EAAI,EAGDD,EAAIK,EAAM3d,SAAW0d,GAIxB,GAFAA,EAAUC,EAAML,KAAK3D,KAAKyD,GAGtB,IAAKI,EAAI,EAAGA,EAAII,EAAM5d,OAAQwd,IAC1B9U,EAAQgV,IAAUH,UAClBE,EAAIG,EAAMJ,MAEO7C,GAAY8C,EAAEzd,OAAS,EACnB,IAAbyd,EAAEzd,cACSyd,EAAE,IAAMhD,EAEfrb,KAAKqe,EAAE,IAAMA,EAAE,GAAGha,KAAKrE,KAAMsJ,GAG7BtJ,KAAKqe,EAAE,IAAMA,EAAE,GAEC,IAAbA,EAAEzd,cAEEyd,EAAE,KAAOhD,GAAegD,EAAE,GAAG9D,MAAQ8D,EAAE,GAAG1U,KAKjD3J,KAAKqe,EAAE,IAAM/U,EAAQA,EAAMjG,QAAQgb,EAAE,GAAIA,EAAE,IAAM3gB,EAHjDsC,KAAKqe,EAAE,IAAM/U,EAAQ+U,EAAE,GAAGha,KAAKrE,KAAMsJ,EAAO+U,EAAE,IAAM3gB,EAKpC,IAAb2gB,EAAEzd,SACLZ,KAAKqe,EAAE,IAAM/U,EAAQ+U,EAAE,GAAGha,KAAKrE,KAAMsJ,EAAMjG,QAAQgb,EAAE,GAAIA,EAAE,KAAO3gB,GAG1EsC,KAAKqe,GAAK/U,GAAgB5L,EAK1CgD,GAAK,CACT,CACJ,EAEA+d,EAAY,SAAUxR,EAAKyR,GAEvB,IAAK,IAAIhe,KAAKge,EAEV,UAAWA,EAAIhe,KAAO6a,GAAYmD,EAAIhe,GAAGE,OAAS,GAC9C,IAAK,IAAIsd,EAAI,EAAGA,EAAIQ,EAAIhe,GAAGE,OAAQsd,IAC/B,GAAIT,EAAIiB,EAAIhe,GAAGwd,GAAIjR,GACf,MA9IN,MA8IcvM,EAAiBhD,EAAYgD,OAG1C,GAAI+c,EAAIiB,EAAIhe,GAAIuM,GACnB,MAlJE,MAkJMvM,EAAiBhD,EAAYgD,EAG7C,OAAOuM,CACf,EAiBI0R,EAAoB,CAChB,GAAc,OACd,UAAc,SACd,SAAc,QACd,IAAc,SACd,GAAc,CAAC,SAAU,UACzB,MAAc,SACd,EAAc,SACd,EAAc,SACd,IAAc,SACd,GAAc,CAAC,SAAU,WACzB,GAAc,OAOlBC,EAAU,CAEV7N,QAAU,CAAC,CAEP,gCACG,CAACrR,EAAS,CAACgc,EAAM,WAAY,CAChC,+BACG,CAAChc,EAAS,CAACgc,EAAM,SAAU,CAG9B,4BACA,mDACA,2CACG,CAACA,EAAMhc,GAAU,CACpB,yBACG,CAACA,EAAS,CAACgc,EAAMsB,EAAM,UAAW,CACrC,qBACG,CAACtd,EAAS,CAACgc,EAAMsB,IAAS,CAG7B,uBACA,8DAEA,qDACA,kCACA,2BAGA,+LAEA,uBACG,CAACtB,EAAMhc,GAAU,CACpB,qDACG,CAACA,EAAS,CAACgc,EAAM,KAAKc,IAAW,CACpC,+BACA,gCACG,CAAC9c,EAAS,CAACgc,EAAM,wBAAyB,CAC7C,8BACG,CAAChc,EAAS,CAACgc,EAAM,WAAY,CAChC,yBACG,CAAChc,EAAS,CAACgc,EAAM,cAAe,CACnC,+CACG,CAAChc,EAAS,CAACgc,EAAM,OAAQ,CAC5B,yBACG,CAAChc,EAAS,CAACgc,EAAM,WAAY,CAChC,2BACG,CAAC,CAACA,EAAM,OAAQ,aAAac,GAAU9c,GAAU,CACpD,uBACG,CAACA,EAAS,CAACgc,EAAMgB,EAAQ,WAAY,CACxC,qBACG,CAAChd,EAAS,CAACgc,EAAMsB,EAAM,WAAY,CACtC,0BACG,CAACtd,EAAS,CAACgc,EAAM,YAAa,CACjC,sBACG,CAAChc,EAAS,CAACgc,EAAM,YAAa,CACjC,qBACG,CAAChc,EAAS,CAACgc,EAAMsB,EAAM,WAAY,CACtC,2BACG,CAACtd,EAAS,CAACgc,EAAM,QAAQc,IAAW,CACvC,sBACG,CAAC9c,EAAS,CAACgc,EAAMgB,IAAW,CAC/B,iCACG,CAAC,CAAChB,EAAM,OAAOc,IAAW,CAC7B,uDACG,CAAC,CAACd,EAAM,OAAQ,MAAMc,GAAU9c,GAAU,CAC7C,+BACG,CAAC,CAACgc,EAAM,KAAM,KAAMhc,GAAU,CACjC,gCACA,iDACA,0DACG,CAACgc,EAAMhc,GAAU,CACpB,2BACA,eACA,sBACG,CAACgc,GAAO,CAGX,+DACG,CAAC,CAACA,EAAM4B,GAAW5d,GAAU,CAChC,4BACA,4BACA,wCACG,CAACgc,EAAMhc,GAAU,CACpB,gCACG,CAACA,EAAS,CAACgc,EAAM,QAAS,CAE7B,oCACG,CAAChc,EAAS,CAACgc,EAAMe,EAAO,cAAe,CAE1C,+BACG,CAAC,CAACf,EAAMe,EAAO,YAAa/c,GAAU,CAEzC,2DACG,CAACA,EAAS,CAACgc,EAAM,WAAWc,IAAW,CAE1C,+DACG,CAACd,EAAMhc,GAAU,CAEpB,gDACG,CAACA,EAAS,CAACgc,EAAM,kBAAmB,CACvC,sDACG,CAAChc,EAASgc,GAAO,CACpB,gDACG,CAACA,EAAM,CAAChc,EAAS+e,EAnIT,CACX,MAAU,KACV,IAAU,KACV,IAAU,KACV,MAAU,OACV,QAAU,OACV,QAAU,OACV,QAAU,OACV,IAAU,OA2HqC,CAE/C,8BACG,CAAC/C,EAAMhc,GAAU,CAGpB,wCACG,CAAC,CAACgc,EAAM,YAAahc,GAAU,CAClC,uCACG,CAACA,EAAS,CAACgc,EAAMgB,EAAQ,aAAc,CAC1C,6BACA,cACA,mGAEA,+FAEA,wBACA,2CAGA,wHAEA,wBACG,CAAChB,EAAMhc,GAAU,CAEpB,wBACG,CAACgc,EAAM,CAAChc,EAAS,eAAgB,MAGxCmf,IAAM,CAAC,CAEH,iDACG,CAAC,CAAChD,EAAc,UAAW,CAE9B,gBACG,CAAC,CAACA,EAAc+B,IAAY,CAE/B,0BACG,CAAC,CAAC/B,EAAc,SAAU,CAE7B,oCACG,CAAC,CAACA,EAAc,UAAW,CAE9B,mCACG,CAAC,CAACA,EAAc,UAAW,CAG9B,8BACG,CAAC,CAACA,EAAc,QAAS,CAE5B,0CACG,CAAC,CAACA,EAAc,OApVT,GAoVwB+B,IAAY,CAE9C,kBACG,CAAC,CAAC/B,EAAc,UAAW,CAE9B,2HAEG,CAAC,CAACA,EAAc+B,KAGvB/M,OAAS,CAAC,CAQN,mFACG,CAAC4K,EAAO,CAACG,EAAQqB,GAAU,CAACtB,EAAMK,IAAU,CAC/C,0CACA,uBACA,iBACG,CAACP,EAAO,CAACG,EAAQqB,GAAU,CAACtB,EAAMI,IAAU,CAG/C,6BACG,CAACN,EAAO,CAACG,EAAQS,GAAQ,CAACV,EAAMI,IAAU,CAC7C,6BACA,oCACA,kCACG,CAACN,EAAO,CAACG,EAAQS,GAAQ,CAACV,EAAMK,IAAU,CAC7C,iBACG,CAACP,EAAO,CAACG,EAAQS,IAAS,CAG7B,+DACG,CAACZ,EAAO,CAACG,EAAQgB,GAAS,CAACjB,EAAMK,IAAU,CAC9C,kCACA,sEACG,CAACP,EAAO,CAACG,EAAQgB,GAAS,CAACjB,EAAMI,IAAU,CAG9C,6BACA,yBACA,uCACA,iDACA,yGACG,CAAC,CAACN,EAAO,KAAM,KAAM,CAACG,EAAQwB,GAAS,CAACzB,EAAMI,IAAU,CAC3D,8CACE,CAAC,CAACN,EAAO,KAAM,KAAM,CAACG,EAAQwB,GAAS,CAACzB,EAAMK,IAAU,CAG1D,sBACA,mEACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMI,IAAU,CAG9C,yBACA,oCACG,CAACN,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMI,IAAU,CAG9C,kCACG,CAACN,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMI,IAAU,CAGhD,iFACA,4BACA,sDACG,CAACN,EAAO,CAACG,EAAQmB,GAAW,CAACpB,EAAMI,IAAU,CAChD,qCACG,CAACN,EAAO,CAACG,EAAQmB,GAAW,CAACpB,EAAMK,IAAU,CAGhD,iEACG,CAACP,EAAO,CAACG,EAAQiB,GAAK,CAAClB,EAAMK,IAAU,CAC1C,sDACA,oDACA,wBACG,CAACP,EAAO,CAACG,EAAQiB,GAAK,CAAClB,EAAMI,IAAU,CAG1C,oBACA,qEACG,CAACN,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMK,IAAU,CAGhD,qCACA,0BACG,CAAC,CAACP,EAAO,KAAM,KAAM,CAACG,EAAQ,SAAU,CAACD,EAAMI,IAAU,CAG5D,gBACG,CAACN,EAAO,CAACG,EAAQe,GAAS,CAAChB,EAAMK,IAAU,CAC9C,6CACG,CAACP,EAAO,CAACG,EAAQe,GAAS,CAAChB,EAAMI,IAAU,CAG9C,0GACG,CAACN,EAAO,CAACG,EAAQuB,GAAO,CAACxB,EAAMI,IAAU,CAC5C,oBACA,iCACG,CAAC,CAACN,EAAO,iBAAkB,CAACG,EAAQuB,GAAO,CAACxB,EAAMK,IAAU,CAG/D,sCACA,0CACG,CAACP,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMI,IAAU,CAGjD,eACA,2BACA,gCACG,CAACN,EAAO,CAACG,EAAQQ,GAAS,CAACT,EAAMK,IAAU,CAC9C,iDACG,CAAC,CAACP,EAAO,QAAS,iBAAkB,CAACG,EAAQQ,GAAS,CAACT,EAAMI,IAAU,CAG1E,gCACG,CAACN,EAAOG,EAAQ,CAACD,EAAMK,IAAU,CACpC,gCACA,kBACG,CAACP,EAAO,CAACG,EAAQW,GAAa,CAACZ,EAAMI,IAAU,CAGlD,qFACG,CAACN,EAAO,CAACG,EAAQU,GAAO,CAACX,EAAMK,IAAU,CAC5C,iDACG,CAACP,EAAO,CAACG,EAAQU,GAAO,CAACX,EAAMI,IAAU,CAG5C,cACG,CAACN,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMK,IAAU,CAC7C,2CAGA,oCACA,qEACG,CAACJ,EAAQ,CAACH,EAAO,KAAM,KAAM,CAACE,EAAMI,IAAU,CAGjD,uCACG,CAACN,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAG9C,8BACA,qBACG,CAACP,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMI,IAAU,CAG/C,iCACG,CAACN,EAAO,CAACG,EAAQsB,GAAQ,CAACvB,EAAMI,IAAU,CAG7C,kGAEA,mBACA,iBACA,8BACA,0BACA,WACA,yBACG,CAACH,EAAQH,EAAO,CAACE,EAAMI,IAAU,CAEpC,wBACA,uCACA,uBACA,4BACA,iCACA,kCACA,8BACA,gCACA,mCACG,CAACH,EAAQH,EAAO,CAACE,EAAMK,IAAU,CAEpC,kBACG,CAACP,EAAO,CAACG,EAAQkB,GAAY,CAACnB,EAAMK,IAAU,CACjD,qCACG,CAACP,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMI,IAAU,CACnD,aACG,CAACN,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMI,IAAU,CAC9C,gBACG,CAACN,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMI,IAAU,CACjD,iBACG,CAACN,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMK,IAAU,CAC7C,0BACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAC9C,wBACG,CAACP,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMK,IAAU,CACjD,+CACG,CAACP,EAAO,CAACG,EAAQ,kBAAmB,CAACD,EAAMK,IAAU,CACxD,qBACG,CAACP,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMK,IAAU,CAClD,cACG,CAACP,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMK,IAAU,CAC7C,mBACG,CAACP,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMI,IAAU,CAC7C,wBACG,CAACN,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMI,IAAU,CAC/C,mBACG,CAACN,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMK,IAAU,CAC/C,wBACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAC9C,mBACA,sCACG,CAAC,CAACJ,EAAQ,gBAAiBH,EAAO,CAACE,EAAMK,IAAU,CACtD,sBACG,CAACP,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMK,IAAU,CAClD,8BACG,CAACP,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMK,IAAU,CAClD,oDACG,CAAC,CAACJ,EAAQ,SAAUH,EAAO,CAACE,EAAMI,IAAU,CAC/C,2BACG,CAAC,CAACH,EAAQ,SAAUH,EAAO,CAACE,EAAMI,IAAU,CAC/C,cACG,CAACN,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMI,IAAU,CACnD,uCACG,CAACN,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMK,IAAU,CACjD,wBACG,CAACP,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMK,IAAU,CACnD,kBACG,CAACP,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMK,IAAU,CAC/C,qBACG,CAACP,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMK,IAAU,CAChD,mBACG,CAACJ,EAAQH,EAAO,CAACE,EAAMI,IAAU,CACpC,sBACG,CAAC,CAACN,EAAO,MAAO,KAAM,CAACG,EAAQkB,GAAY,CAACnB,EAAMI,IAAU,CAC/D,yDACG,CAACN,EAAO,CAACG,EAAQyB,GAAQ,CAAC1B,EAAMK,IAAU,CAC7C,yCACG,CAACP,EAAO,CAACG,EAAQyB,GAAQ,CAAC1B,EAAMI,IAAU,CAM7C,UACA,8BACG,CAACH,EAAQH,EAAO,CAACE,EAAMG,IAAW,CACrC,0BACG,CAACL,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMG,IAAW,CACjD,mCACG,CAACL,EAAO,CAACG,EAAQuB,GAAO,CAACxB,EAAMG,IAAW,CAC7C,sCACG,CAACL,EAAO,CAACG,EAAQkB,GAAY,CAACnB,EAAMG,IAAW,CAMlD,wBACG,CAACF,EAAQ,CAACD,EAAMM,IAAW,CAC9B,uBACG,CAAC,CAACR,EAAO,IAAK,WAAY,CAACG,EAAQqB,GAAU,CAACtB,EAAMM,IAAW,CAClE,8DACG,CAAC,CAACL,EAAQiB,GAAK,CAAClB,EAAMM,IAAW,CACpC,gBACG,CAACL,EAAQ,CAACH,EAAOY,EAAM,OAAQ,CAACV,EAAMM,IAAW,CACpD,UACG,CAAC,CAACR,EAAOgB,EAAO,QAAS,CAACb,EAAQe,GAAS,CAAChB,EAAMM,IAAW,CAChE,4BACG,CAACR,EAAO,CAACG,EAAQQ,GAAS,CAACT,EAAMM,IAAW,CAC/C,uBACA,uBACG,CAACR,EAAO,CAACG,EAAQsB,GAAQ,CAACvB,EAAMM,IAAU,CAC7C,4BACG,CAACR,EAAO,CAACG,EAAQuB,GAAO,CAACxB,EAAMM,IAAW,CAC7C,qBACG,CAACR,EAAO,CAACG,EAAQwB,GAAS,CAACzB,EAAMM,IAAW,CAC/C,0CACA,uDACG,CAAC,CAACL,EAAQnU,GAAO,CAACgU,EAAOhU,GAAO,CAACkU,EAAMM,IAAW,CACrD,mDACG,CAAC,CAACN,EAAMM,IAAW,CAMtB,kBACG,CAACL,EAAQH,EAAO,CAACE,EAAMO,IAAY,CACtC,wBACG,CAACT,EAAO,CAACG,EAAQe,GAAS,CAAChB,EAAMO,IAAY,CAChD,6BACG,CAACT,EAAO,CAACG,EAAQyB,GAAQ,CAAC1B,EAAMO,IAAY,CAC/C,iBACG,CAACT,EAAO,CAACG,EAAQ0B,GAAW,CAAC3B,EAAMO,IAAY,CAMlD,wCACG,CAACN,EAAQ,CAACD,EAAMQ,IAAY,CAM/B,2DACG,CAACV,EAAO,CAACE,EAAMI,IAAU,CAC5B,+DACG,CAACN,EAAO,CAACE,EAAMK,IAAU,CAC5B,gDACG,CAAC,CAACL,EAAMK,IAAU,CACrB,kEACG,CAAC,CAACL,EAAMI,IAAU,CACrB,kCACG,CAACN,EAAO,CAACG,EAAQ,aAGxBkD,OAAS,CAAC,CAEN,8BACG,CAACpf,EAAS,CAACgc,EAAMqD,aAAe,CAEnC,6CACG,CAACrf,EAAS,CAACgc,EAAM,UAAW,CAE/B,uBACA,sEACA,0BACA,yCACA,+BACG,CAACA,EAAMhc,GAAU,CAEpB,iCACG,CAACA,EAASgc,IAGjB5K,GAAK,CAAC,CAGF,mCACG,CAAC4K,EAAMhc,GAAU,CACpB,4BACA,wDACA,8CACG,CAACgc,EAAM,CAAChc,EAAS+e,EAAWE,IAAqB,CACpD,sCACG,CAAC,CAACjD,EAAM,WAAY,CAAChc,EAAS+e,EAAWE,IAAqB,CAGjE,sDACA,wBACG,CAAC,CAACjf,EAAS,KAAM,KAAM,CAACgc,EAAM,QAAS,CAC1C,0BACA,yCACG,CAAC,CAACA,EAAM,UAAW,CAAChc,EAAS,KAAM,MAAO,CAG7C,kDACG,CAACA,EAASgc,GAAO,CACpB,+EACA,8BACA,+BACA,kBACG,CAACA,EAAMhc,GAAU,CACpB,cACG,CAACA,EAAS,CAACgc,EAAMa,IAAc,CAClC,6DACG,CAAC7c,EAAS,CAACgc,EAAM,YAAa,CACjC,mFACG,CAAChc,EAAS,CAACgc,EAAMgB,EAAQ,QAAS,CACrC,kBACA,wCACG,CAAChd,EAAS,CAACgc,EAAM,UAAW,CAG/B,qBACG,CAAChc,EAAS,CAACgc,EAAMe,EAAO,SAAU,CACrC,6BACG,CAAC,CAACf,EAAM,eAAgBhc,GAAS,CAGpC,mDACA,2BAGA,wCACA,yBACA,4BACA,8SAEA,2BACA,oBACA,6EACA,kBACG,CAACgc,EAAMhc,GAAU,CACpB,yBACG,CAAC,CAACgc,EAAM,WAAYhc,GAAU,CACjC,sCACA,kCACA,wDACA,sBACG,CAACgc,EAAMhc,KAQdkR,EAAW,SAAUoN,EAAIgB,GAOzB,UALWhB,IAAOzC,IACdyD,EAAahB,EACbA,EAAKtgB,KAGHsC,gBAAgB4Q,GAClB,OAAO,IAAIA,EAASoN,EAAIgB,GAAYhO,YAGxC,IAAIiO,EAAMjB,WAAelT,IAAWwQ,GAAcxQ,EAAOf,WAAae,EAAOf,UAAUC,UAAac,EAAOf,UAAUC,UApvBvG,IAqvBVkV,EAAUF,EAvsBL,SAAUJ,EAASI,GACxB,IAAIG,EAAgB,CAAC,EACrB,IAAK,IAAIze,KAAKke,EACNI,EAAWte,IAAMse,EAAWte,GAAGE,OAAS,IAAM,EAC9Cue,EAAcze,GAAKse,EAAWte,GAAGoC,OAAO8b,EAAQle,IAEhDye,EAAcze,GAAKke,EAAQle,GAGnC,OAAOye,CACX,CA6rB2B9f,CAAOuf,EAASI,GAAcJ,EAwDzD,OAtDA5e,KAAKuW,WAAa,WACd,IAlrBiB5K,EAkrBbyT,EAAW,CAAC,EAKhB,OAJAA,EAAS1D,GAAQhe,EACjB0hB,EAAS1f,GAAWhC,EACpBqgB,EAAU1Z,KAAK+a,EAAUH,EAAKC,EAAQnO,SACtCqO,EAASC,aAtrBQ1T,EAsrBSyT,EAASzT,WArrBR6P,EAAW7P,EAAQtI,QAAQ,WAvE5C,IAuE+D+H,MAAM,KAAK,GAAK1N,EAsrBlF0hB,CACX,EACApf,KAAKsf,OAAS,WACV,IAAIC,EAAO,CAAC,EAGZ,OAFAA,EAAK1D,GAAgBne,EACrBqgB,EAAU1Z,KAAKkb,EAAMN,EAAKC,EAAQL,KAC3BU,CACX,EACAvf,KAAKwf,UAAY,WACb,IAAIC,EAAU,CAAC,EAKf,OAJAA,EAAQ7D,GAAUle,EAClB+hB,EAAQhE,GAAS/d,EACjB+hB,EAAQ9D,GAAQje,EAChBqgB,EAAU1Z,KAAKob,EAASR,EAAKC,EAAQrO,QAC9B4O,CACX,EACAzf,KAAK0f,UAAY,WACb,IAAIC,EAAU,CAAC,EAIf,OAHAA,EAAQjE,GAAQhe,EAChBiiB,EAAQjgB,GAAWhC,EACnBqgB,EAAU1Z,KAAKsb,EAASV,EAAKC,EAAQJ,QAC9Ba,CACX,EACA3f,KAAKwW,MAAQ,WACT,IAAIoJ,EAAM,CAAC,EAIX,OAHAA,EAAIlE,GAAQhe,EACZkiB,EAAIlgB,GAAWhC,EACfqgB,EAAU1Z,KAAKub,EAAKX,EAAKC,EAAQpO,IAC1B8O,CACX,EACA5f,KAAKgR,UAAY,WACb,MAAO,CACHgN,GAAUhe,KAAK6f,QACf9O,QAAU/Q,KAAKuW,aACfuI,OAAU9e,KAAK0f,YACf5O,GAAU9Q,KAAKwW,QACf3F,OAAU7Q,KAAKwf,YACfX,IAAU7e,KAAKsf,SAEvB,EACAtf,KAAK6f,MAAQ,WACT,OAAOZ,CACX,EACAjf,KAAK8f,MAAQ,SAAU9B,GAEnB,OADAiB,SAAcjB,IAAOxC,GAAYwC,EAAGpd,OAtxBxB,IAsxBkD6G,EAAKuW,EAtxBvD,KAsxB4EA,EACjFhe,IACX,EACAA,KAAK8f,MAAMb,GACJjf,IACX,EAEA4Q,EAASlR,QAjzBS,SAkzBlBkR,EAAS4L,QAAWe,EAAU,CAAC7B,EAAMhc,EA3yBnB,UA4yBlBkR,EAASmP,IAAMxC,EAAU,CAAC1B,IAC1BjL,EAASoP,OAASzC,EAAU,CAAC9B,EAAOG,EAAQD,EAAMG,EAASC,EAAQE,EAASD,EAAQE,EAAUC,IAC9FvL,EAASqP,OAASrP,EAASsP,GAAK3C,EAAU,CAAC7B,EAAMhc,WAOtCvG,IAAamiB,GAEgBpiB,EAAOC,UACvCA,EAAUD,EAAOC,QAAUyX,GAE/BzX,EAAQyX,SAAWA,GAGiBgI,EAAAA,MAChCA,EAAAA,WACI,OAAOhI,CACV,2CACa9F,IAAWwQ,IAEzBxQ,EAAO8F,SAAWA,GAS1B,IAAIuP,SAAWrV,IAAWwQ,IAAexQ,EAAOsV,QAAUtV,EAAOuV,OACjE,GAAIF,IAAMA,EAAEnC,GAAI,CACZ,IAAI5W,EAAS,IAAIwJ,EACjBuP,EAAEnC,GAAK5W,EAAO4J,YACdmP,EAAEnC,GAAGsC,IAAM,WACP,OAAOlZ,EAAOyY,OAClB,EACAM,EAAEnC,GAAGuC,IAAM,SAAUvC,GACjB5W,EAAO0Y,MAAM9B,GACb,IAAI5R,EAAShF,EAAO4J,YACpB,IAAK,IAAIrL,KAAQyG,EACb+T,EAAEnC,GAAGrY,GAAQyG,EAAOzG,EAE5B,CACJ,CAEH,CA52BD,CA42BqB,kBAAXmF,OAAsBA,OAAS9K,K","sources":["../node_modules/common-utils/node_modules/axios/index.js","../node_modules/common-utils/node_modules/axios/lib/adapters/xhr.js","../node_modules/common-utils/node_modules/axios/lib/axios.js","../node_modules/common-utils/node_modules/axios/lib/cancel/Cancel.js","../node_modules/common-utils/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/common-utils/node_modules/axios/lib/cancel/isCancel.js","../node_modules/common-utils/node_modules/axios/lib/core/Axios.js","../node_modules/common-utils/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/common-utils/node_modules/axios/lib/core/buildFullPath.js","../node_modules/common-utils/node_modules/axios/lib/core/createError.js","../node_modules/common-utils/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/common-utils/node_modules/axios/lib/core/enhanceError.js","../node_modules/common-utils/node_modules/axios/lib/core/mergeConfig.js","../node_modules/common-utils/node_modules/axios/lib/core/settle.js","../node_modules/common-utils/node_modules/axios/lib/core/transformData.js","../node_modules/common-utils/node_modules/axios/lib/defaults/index.js","../node_modules/common-utils/node_modules/axios/lib/defaults/transitional.js","../node_modules/common-utils/node_modules/axios/lib/env/data.js","../node_modules/common-utils/node_modules/axios/lib/helpers/bind.js","../node_modules/common-utils/node_modules/axios/lib/helpers/buildURL.js","../node_modules/common-utils/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/common-utils/node_modules/axios/lib/helpers/cookies.js","../node_modules/common-utils/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/common-utils/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/common-utils/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/common-utils/node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/common-utils/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/common-utils/node_modules/axios/lib/helpers/spread.js","../node_modules/common-utils/node_modules/axios/lib/helpers/validator.js","../node_modules/common-utils/node_modules/axios/lib/utils.js","../node_modules/common-utils/src/loglevel-logger/types.ts","../node_modules/common-utils/src/loglevel-logger/utils.ts","../node_modules/common-utils/src/loglevel-logger/loglevelPluginServer.ts","../node_modules/common-utils/src/loglevel-logger/logger.ts","../node_modules/common-utils/src/loglevel-logger/index.ts","../node_modules/common-utils/src/mobile/mobile-detection-types.ts","../node_modules/common-utils/src/mobile/mobile-detection.ts","../node_modules/common-utils/src/mobile/index.ts","../node_modules/common-utils/src/browser/browser.ts","../node_modules/common-utils/src/browser/cookie.tsx","../node_modules/common-utils/src/browser/index.ts","../node_modules/common-utils/src/browser/location.ts","../node_modules/common-utils/src/guid/index.ts","../node_modules/common-utils/src/guid/utils.ts","../node_modules/common-utils/src/window-opener/constants.ts","../node_modules/common-utils/src/window-opener/WindowOpener.ts","../node_modules/loglevel/lib/loglevel.js","../node_modules/ua-parser-js/src/ua-parser.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","import * as loglevel from 'loglevel'\nimport { Deferred } from './utils'\n\nexport interface QueuedMessage {\n formattedMessage: string\n deferred: Deferred\n messageAppName?: string\n}\n\nexport type LogMethods = 'trace' | 'debug' | 'info' | 'warn'\n\nexport interface JsonFormatParams {\n message: Record | string\n methodName: string\n logLevel: loglevel.LogLevelNumbers\n loggerName: string\n}\n\nexport interface LoglevelPluginServerOptions {\n url?: string\n reqHeaders?: Record\n callOriginal?: boolean\n level?: loglevel.LogLevelNumbers\n format?: (formatParams: JsonFormatParams) => string\n}\n\nexport enum LogMissingParamPlaceholders {\n AccessToken = 'ACCESS_TOKEN_MISSING',\n IdToken = 'ID_TOKEN_MISSING',\n ApplicationSource = 'APPLICATION_SOURCE_MISSING',\n CrmContactId = 'CRM_CONTACT_ID_MISSING',\n CrmAccountGuid = 'CRM_ACCOUNT_GUID',\n Nonce = 'NONCE_MISSING',\n tmxToken = 'TMX_TOKEN_MISSING',\n BrowserName = 'BROWSER_NAME_MISSING',\n BrowserVersion = 'BROWSER_VERSION_MISSING',\n OsName = 'OPERATING_SYSTEM_NAME_MISSING',\n OsVersion = 'OPERATING_SYSTEM_VERSION_MISSING',\n Device = 'DEVICE_MODEL_MISSING',\n DeviceType = 'DEVICE_TYPE_MISSING',\n DeviceVendor = 'DEVICE_VENDOR_MISSING'\n}\n\nexport type PartnerName = string | null | undefined\n\nexport interface LogMessage {\n partnerName: PartnerName\n applicationSource: string\n nonce: string\n timestamp: number\n localTimeString: string\n message: string\n crmContactId?: string\n navigatorUserAgent: string\n threatMetrixToken: string\n crmAccountGuid: string\n navigatorAppVersion: string\n navigatorAppName: string\n navigatorCookiesEnabled: boolean\n navigatorLocale: string\n navigatorScreenSize: string\n bundleVersion: string\n browserName: string\n browserVersion: string\n osVersion: string\n osName: string\n deviceModel: string\n deviceVendor: string\n deviceType: string\n}\n\nexport interface GenericPromiseRejectionErrorMessage {\n message: string\n}\n\nexport interface LogRawData {\n message: string\n appName?: string\n access_token?: AccessToken\n id_token?: IdToken\n otherParams?: Record\n}\n\nexport interface LogFormattedData {\n isError: boolean\n message: LogMessage\n appName?: string\n access_token?: AccessToken\n id_token?: IdToken\n logger?: string\n logLevel?: number\n logMethod?: string\n}\n\nexport interface AccessToken {\n ApplicationSource?: string\n CrmContactId?: string\n}\n\nexport interface IdToken {\n nonce?: string\n}\n\nexport const defaultAppName = 'imali-app'\n","import {\n GenericPromiseRejectionErrorMessage,\n JsonFormatParams,\n PartnerName\n} from './types'\n\nexport const getGenericRuntimeErrorMessage = (\n { message, filename, lineno, colno, error }: ErrorEvent,\n stack?: string\n) =>\n `ErrorMessage: ${message} Script: ${filename} Line: ${lineno} Column: ${colno} StackTrace: ${stack ||\n error}`\n\nexport const getGenericPromiseRejectionErrorMessage = ({\n message\n}: GenericPromiseRejectionErrorMessage) => `ErrorMessage: ${message}`\n\nexport const isPlainObject = (obj: any) =>\n Object.prototype.toString.call(obj) === '[object Object]'\n\nlet CIRCULAR_ERROR_MESSAGE: string\n\n// https://github.com/nodejs/node/blob/master/lib/util.js\nexport const tryStringify = (arg: any) => {\n try {\n return JSON.stringify(arg)\n } catch (error) {\n // Populate the circular error message lazily\n if (!CIRCULAR_ERROR_MESSAGE) {\n try {\n const a = {}\n // @ts-ignore\n a.a = a\n JSON.stringify(a)\n } catch (circular) {\n CIRCULAR_ERROR_MESSAGE = (circular as Error).message\n }\n }\n\n if ((error as Error).message === CIRCULAR_ERROR_MESSAGE) {\n return '[Circular]'\n }\n\n throw error\n }\n}\n\nexport const getPartnerName = (): PartnerName =>\n window.sessionStorage.getItem('partnerName') || window.partnerName\n\nexport const defaultJSONFormat = ({\n message,\n methodName,\n logLevel,\n loggerName\n}: JsonFormatParams) =>\n tryStringify({\n ...(typeof message !== 'string' && isPlainObject(message)\n ? message\n : { message }),\n logger: loggerName || '',\n logLevel,\n logMethod: (methodName || '').toUpperCase()\n })\n\nexport class Deferred {\n public promise: Promise\n\n private fate: 'resolved' | 'unresolved'\n private state: 'pending' | 'fulfilled' | 'rejected'\n\n private _resolve!: (value: T | PromiseLike) => void\n private _reject!: (reason?: any) => void\n\n constructor() {\n this.state = 'pending'\n this.fate = 'unresolved'\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve\n this._reject = reject\n })\n\n this.promise.then(\n () => (this.state = 'fulfilled'),\n () => (this.state = 'rejected')\n )\n }\n\n resolve(value?: any) {\n if (this.fate === 'resolved') {\n throw Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n this._resolve(value)\n }\n\n reject(reason?: any) {\n if (this.fate === 'resolved') {\n throw Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n this._reject(reason)\n }\n\n isResolved() {\n return this.fate === 'resolved'\n }\n\n isPending() {\n return this.state === 'pending'\n }\n\n isFulfilled() {\n return this.state === 'fulfilled'\n }\n\n isRejected() {\n return this.state === 'rejected'\n }\n}\n","import * as loglevel from 'loglevel'\nimport axios, { AxiosRequestConfig } from 'axios'\nimport {\n defaultAppName,\n LogFormattedData,\n LoglevelPluginServerOptions,\n QueuedMessage\n} from './types'\nimport { isPlainObject, defaultJSONFormat, Deferred } from './utils'\n\nconst loglevelServerSend = (\n logger: loglevel.Logger,\n options: LoglevelPluginServerOptions\n) => {\n if (!logger || !logger.methodFactory) {\n throw new Error(\n 'loglevel instance has to be specified in order to be extended'\n )\n }\n\n let pluginIsSending = false\n const pluginLogger = logger\n const pluginUrl = options?.url || 'http://localhost:5015/log'\n const pluginCallOriginal = options?.callOriginal || false\n const pluginLevel = options?.level || loglevel.levels.TRACE\n const pluginFormat = options?.format || defaultJSONFormat\n const pluginReqHeaders = options?.reqHeaders || {\n 'Content-Type': 'application/json'\n }\n const pluginOriginalFactory = pluginLogger.methodFactory\n const pluginSendQueue: QueuedMessage[] = []\n\n const sendNextMessage = (): Promise => {\n if (!pluginSendQueue.length || pluginIsSending) {\n return Promise.resolve()\n }\n\n pluginIsSending = true\n\n const {\n deferred,\n formattedMessage,\n messageAppName = defaultAppName\n } = pluginSendQueue.shift() as QueuedMessage\n\n const config: AxiosRequestConfig = {\n headers: {\n ...pluginReqHeaders,\n 'X-Origin': messageAppName\n }\n }\n\n return axios\n .post(pluginUrl, formattedMessage, config)\n .then(() => {\n pluginIsSending = false\n deferred.resolve()\n setTimeout(sendNextMessage, 0)\n })\n .catch(e => {\n pluginIsSending = false\n deferred.reject(e)\n setTimeout(sendNextMessage, 0)\n })\n }\n\n const customMethodFactory = (\n methodName: loglevel.LogLevelNames,\n logLevel: loglevel.LogLevelNumbers,\n loggerName: string | symbol\n ): ((...message: any[]) => Promise) => {\n const rawMethod = pluginOriginalFactory(methodName, logLevel, loggerName)\n\n return (message: LogFormattedData | string): Promise => {\n const formattedMessage: string = pluginFormat({\n message,\n methodName,\n logLevel,\n loggerName: String(loggerName)\n })\n\n let messageAppName: string | undefined\n\n if (pluginCallOriginal) {\n rawMethod(message)\n }\n\n if (typeof message !== 'string' && isPlainObject(message)) {\n messageAppName = message.appName\n }\n\n const DeferredSendLogMessage = new Deferred()\n\n pluginSendQueue.push({\n formattedMessage,\n messageAppName,\n deferred: DeferredSendLogMessage\n })\n\n sendNextMessage()\n\n return DeferredSendLogMessage.promise\n }\n }\n\n // these two lines overwrite default methodFactory used for creating all different log type methods (error, debug, etc.)\n logger.methodFactory = customMethodFactory\n logger.setLevel(pluginLevel)\n}\n\nexport default loglevelServerSend\n","import * as loglevel from 'loglevel'\nimport { UAParser } from 'ua-parser-js'\nimport loglevelPluginServer from './loglevelPluginServer'\nimport {\n AccessToken,\n defaultAppName,\n IdToken,\n LogFormattedData,\n LoglevelPluginServerOptions,\n LogMessage,\n LogMethods,\n LogMissingParamPlaceholders,\n LogRawData\n} from './types'\nimport { getPartnerName } from './utils'\n\nconst logger = loglevel.getLogger('common-utils')\n\nconst parser = new UAParser()\nconst { device, os, browser } = parser.getResult()\n\nif (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') {\n const options: LoglevelPluginServerOptions = {\n url: `${process.env.LOGJAM_URL}log`,\n reqHeaders: {\n 'Content-Type': 'application/json',\n 'X-Origin': defaultAppName\n }\n }\n\n loglevelPluginServer(logger, options)\n}\n\nif (\n process.env.NODE_ENV === 'production' &&\n process.env.ENVIRONMENT === 'prod'\n) {\n logger.setDefaultLevel(loglevel.levels.DEBUG)\n} else {\n logger.enableAll()\n}\n\nconst makeMessage = (\n message: string,\n window: Window,\n access_token?: AccessToken,\n id_token?: IdToken,\n otherParams?: object\n): LogMessage => {\n const now = Date.now()\n\n return {\n ...otherParams,\n partnerName: getPartnerName(),\n applicationSource: access_token\n ? access_token.ApplicationSource ||\n LogMissingParamPlaceholders.ApplicationSource\n : LogMissingParamPlaceholders.AccessToken,\n crmContactId: access_token\n ? access_token.CrmContactId || LogMissingParamPlaceholders.CrmContactId\n : LogMissingParamPlaceholders.AccessToken,\n nonce: id_token\n ? id_token.nonce || LogMissingParamPlaceholders.Nonce\n : LogMissingParamPlaceholders.IdToken,\n timestamp: now,\n localTimeString: new Date(now).toString(),\n message,\n threatMetrixToken:\n window.threatMetrixToken || LogMissingParamPlaceholders.tmxToken,\n crmAccountGuid:\n window.moneycorpCrmAccountGuid ||\n LogMissingParamPlaceholders.CrmAccountGuid,\n navigatorUserAgent: window.navigator.userAgent,\n navigatorAppVersion: window.navigator.appVersion,\n navigatorAppName: window.navigator.appName,\n navigatorCookiesEnabled: window.navigator.cookieEnabled,\n navigatorLocale: window.navigator.language,\n navigatorScreenSize: `${window.screen.width}x${window.screen.height}`,\n bundleVersion: window.version,\n browserName: browser.name || LogMissingParamPlaceholders.BrowserName,\n browserVersion:\n browser.version || LogMissingParamPlaceholders.BrowserVersion,\n osName: os.name || LogMissingParamPlaceholders.OsName,\n osVersion: os.version || LogMissingParamPlaceholders.OsVersion,\n deviceModel: device.model || LogMissingParamPlaceholders.Device,\n deviceVendor: device.vendor || LogMissingParamPlaceholders.DeviceVendor,\n deviceType: device.type || LogMissingParamPlaceholders.DeviceType\n }\n}\n\nexport const log = (\n { message, appName, access_token, id_token, otherParams }: LogRawData,\n logMethod: LogMethods = 'debug'\n): Promise => {\n const logData: LogFormattedData = {\n isError: false,\n appName,\n message: makeMessage(message, window, access_token, id_token, otherParams)\n }\n\n const result = logger[logMethod](logData) as unknown\n\n return result ? (result as Promise) : Promise.resolve()\n}\n\nexport const logError = ({\n message,\n appName,\n access_token,\n id_token,\n otherParams\n}: LogRawData): Promise => {\n const errorData: LogFormattedData = {\n isError: true,\n appName,\n message: makeMessage(message, window, access_token, id_token, otherParams)\n }\n\n const result = logger.error(errorData) as unknown\n\n return result ? (result as Promise) : Promise.resolve()\n}\n\nexport default logger\n","import loglevelInstance, { log, logError } from './logger'\nimport {\n getGenericRuntimeErrorMessage,\n getGenericPromiseRejectionErrorMessage\n} from './utils'\n\nexport * from './types'\n\nexport default {\n log,\n logError,\n loglevelInstance,\n getGenericRuntimeErrorMessage,\n getGenericPromiseRejectionErrorMessage\n}\n","export const MOBILE_DETECTION_REGEXP = /Android|iPhone|iPad|BlackBerry|Windows Phone|Mobi/i\n\nexport enum DeviceSources {\n browser_mobile = 'browser_mobile',\n browser_computer = 'browser_computer'\n}\n","import {\n DeviceSources,\n MOBILE_DETECTION_REGEXP\n} from './mobile-detection-types'\n\nexport const isMobile = (userAgent: string): boolean =>\n MOBILE_DETECTION_REGEXP.test(userAgent)\n\nexport const getDeviceSource = (userAgent: string): DeviceSources =>\n isMobile(userAgent)\n ? DeviceSources.browser_mobile\n : DeviceSources.browser_computer\n\n","import { isMobile, getDeviceSource } from './mobile-detection'\nimport { DeviceSources } from './mobile-detection-types'\n\nexport default {\n isMobile,\n getDeviceSource,\n DeviceSources\n}\n","import { UAParser } from 'ua-parser-js'\n\nconst parser = new UAParser()\n\nexport const isUsingSupportedBrowser = () => {\n const { os = null, browser = null } = parser.getResult() || {}\n\n if (!browser || !browser.version) {\n return true\n }\n\n const majorVersion = Number(browser.version.split('.')[0])\n\n if (browser.name && browser.name.toLowerCase() === 'ie') {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'edge' &&\n majorVersion <= 92\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'chrome' &&\n majorVersion <= 89\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'firefox' &&\n majorVersion <= 89\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'samsung browser' &&\n majorVersion < 16\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'safari' &&\n majorVersion < 14\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'safari mobile' &&\n majorVersion < 14\n ) {\n return false\n }\n\n if (\n browser.name &&\n browser.name.toLowerCase() === 'ios' && // safari in iOS (mobile) is detected as 'ios' browser\n os &&\n os.name &&\n os.name.toLowerCase() === 'ios' &&\n majorVersion < 14\n ) {\n return false\n }\n\n return true\n}\n\nexport const getDomainName = (hostname: string) => {\n if (hostname.includes('localhost')) {\n return hostname\n }\n\n const matchedDomain = hostname.match(/[^.]*\\.[^.]{2,3}(?:\\.[^.]{2,3})?$/)\n\n return matchedDomain ? matchedDomain[0] : hostname\n}\n\nexport const getBrowser = () => parser.getBrowser()\n\nexport const getOS = () => parser.getOS()\n","import { ParsedCookiesType, CookieType } from './cookieTypes'\n\nexport const getCookies = (): ParsedCookiesType =>\n document.cookie\n .split(';')\n .reduce((acc: ParsedCookiesType, cookie: string) => {\n const [name, value] = cookie.trim().split('=')\n\n acc[name] = value\n\n return acc\n }, {})\n\nexport const getCookie = (name: string): string | null =>\n getCookies()[name] || null\n\nexport const setCookie = ({\n name,\n value,\n domain,\n path = '/',\n secure,\n sameSite\n}: CookieType): string =>\n document.cookie = `${name}=${value};path=${path};${domain ? `domain=${domain};` : ''}${secure ? 'secure;' : ''}${sameSite ? `SameSite=${sameSite}` : ''}`\n\n","import {\n isUsingSupportedBrowser,\n getDomainName,\n getBrowser,\n getOS\n} from './browser'\nimport { getCookie, getCookies, setCookie } from './cookie'\nimport { getQueryString } from './location'\n\nexport default {\n getCookie,\n getCookies,\n getDomainName,\n getQueryString,\n setCookie,\n isUsingSupportedBrowser,\n getBrowser,\n getOS\n}\n","export const getQueryString = (\n params: Record\n): string =>\n Object.keys(params).reduce(\n (acc, key, index) =>\n `${acc}${index === 0 ? '?' : '&'}${key}=${params[key]}`,\n ''\n )\n","import { generateGuid } from './utils'\n\nexport default {\n generateGuid\n}\n","export const generateGuid = () => {\n // Generate a proper GUID\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // tslint:disable:no-bitwise\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n // tslint:enable:no-bitwise\n\n return v.toString(16)\n })\n}\n","export const DEFAULT_NEW_WINDOW_TARGET = '_blank'\n\nexport const DEFAULT_NEW_WINDOW_LOADER_INNER_HTML = `
`\n\nexport const DEFAULT_NEW_WINDOW_LOADER_ID = 'Loader'\n\nexport const DEFAULT_NEW_WINDOW_LOADING_INLINE_CSS_SCRIPT = `\nbody {\n margin: 0;\n padding: 0;\n}\n#${DEFAULT_NEW_WINDOW_LOADER_ID} {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 100vw;\n min-height: 100vh;\n}\n.lds-ring {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n.lds-ring div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 64px;\n height: 64px;\n margin: 8px;\n border: 8px solid #000;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: #000 transparent transparent transparent;\n}\n.lds-ring div:nth-child(1) {\n animation-delay: -0.45s;\n}\n.lds-ring div:nth-child(2) {\n animation-delay: -0.3s;\n}\n.lds-ring div:nth-child(3) {\n animation-delay: -0.15s;\n}\n@keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}`\n","import {\n DEFAULT_NEW_WINDOW_LOADER_ID,\n DEFAULT_NEW_WINDOW_LOADER_INNER_HTML,\n DEFAULT_NEW_WINDOW_LOADING_INLINE_CSS_SCRIPT,\n DEFAULT_NEW_WINDOW_TARGET\n} from './constants'\n\n/**\n * The Singleton class defines the `getInstance` method that lets clients access\n * the unique singleton instance.\n */\nexport class WindowOpener {\n private static instance: WindowOpener\n\n private _window: Window | null = null\n private _windowTarget?: string\n private _windowCloseInterval: number | undefined\n\n /**\n * The Singleton's constructor should always be private to prevent direct\n * construction calls with the `new` operator.\n */\n private constructor() {}\n\n /**\n * The static method that controls the access to the singleton instance.\n *\n * This implementation let you subclass the Singleton class while keeping\n * just one instance of each subclass around.\n */\n public static getInstance(): WindowOpener {\n if (!WindowOpener.instance) {\n WindowOpener.instance = new WindowOpener()\n }\n\n return WindowOpener.instance\n }\n\n public openWindow(url: string, windowTarget?: string): Window | null {\n try {\n if (!this._window || this._window.closed) {\n this._windowTarget = windowTarget || DEFAULT_NEW_WINDOW_TARGET\n this._window = window.open(url, this._windowTarget)\n }\n\n return this._window\n } catch (error) {\n return null\n }\n }\n\n public addWindowLoader(\n html: string = DEFAULT_NEW_WINDOW_LOADER_INNER_HTML,\n id: string = DEFAULT_NEW_WINDOW_LOADER_ID,\n styles: string = DEFAULT_NEW_WINDOW_LOADING_INLINE_CSS_SCRIPT\n ) {\n if (!!this._window && !this._window.closed) {\n if (styles) {\n const style = document.createElement('style')\n style.innerHTML = styles\n this._window.document.head.appendChild(style)\n }\n\n const loaderDiv = document.createElement('div')\n\n if (id) {\n loaderDiv.id = id\n }\n\n loaderDiv.innerHTML = html\n this._window.document.body.appendChild(loaderDiv)\n }\n }\n\n public addWindowCloseListener(callback: () => void, timeout = 500) {\n this._windowCloseInterval = window.setInterval(() => {\n if (!!this._window && this._window.closed) {\n callback()\n this.removeWindowCloseListener()\n }\n }, timeout)\n }\n\n public removeWindowCloseListener() {\n window.clearInterval(this._windowCloseInterval)\n this._windowCloseInterval = undefined\n }\n\n public closeWindow() {\n this._window?.close()\n }\n\n public clearWindow(shouldCloseWindow = true) {\n if (shouldCloseWindow) {\n this._window?.close()\n }\n\n this._window = null\n this._windowTarget = undefined\n\n this.removeWindowCloseListener()\n }\n\n public getWindow() {\n return this._window\n }\n\n public getWindowTarget() {\n return this._windowTarget\n }\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.33\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.33',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 350;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /yabrowser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 '+BROWSER]], [\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, 'Chromium OS'], VERSION],[\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n"],"names":["module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","transitionalDefaults","Cancel","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","reason","throwIfRequested","listener","push","index","splice","source","c","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","replace","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","Object","keys","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","hasOwnProperty","constructor","ArrayBuffer","isView","pipe","product","assignValue","a","b","str","stripBOM","content","charCodeAt","LogMissingParamPlaceholders","defaultAppName","CIRCULAR_ERROR_MESSAGE","getPartnerName","sessionStorage","getItem","partnerName","defaultJSONFormat","_ref3","methodName","logLevel","loggerName","arg","circular","tryStringify","logger","logMethod","Deferred","fate","state","_reject","isResolved","isPending","isFulfilled","isRejected","loglevelServerSend","methodFactory","pluginIsSending","pluginLogger","pluginUrl","pluginCallOriginal","callOriginal","pluginLevel","level","loglevel","levels","TRACE","pluginFormat","format","pluginReqHeaders","reqHeaders","pluginOriginalFactory","pluginSendQueue","sendNextMessage","deferred","formattedMessage","messageAppName","catch","customMethodFactory","rawMethod","String","appName","DeferredSendLogMessage","setLevel","getLogger","UAParser","device","os","browser","getResult","loglevelPluginServer","LOGJAM_URL","ENVIRONMENT","setDefaultLevel","DEBUG","enableAll","makeMessage","access_token","id_token","otherParams","applicationSource","ApplicationSource","AccessToken","crmContactId","CrmContactId","nonce","Nonce","IdToken","timestamp","localTimeString","threatMetrixToken","tmxToken","crmAccountGuid","moneycorpCrmAccountGuid","CrmAccountGuid","navigatorUserAgent","navigatorAppVersion","appVersion","navigatorAppName","navigatorCookiesEnabled","cookieEnabled","navigatorLocale","language","navigatorScreenSize","screen","width","height","bundleVersion","browserName","BrowserName","browserVersion","BrowserVersion","osName","OsName","osVersion","OsVersion","deviceModel","model","Device","deviceVendor","vendor","DeviceVendor","deviceType","DeviceType","log","_ref","logData","isError","logError","_ref2","errorData","loglevelInstance","getGenericRuntimeErrorMessage","filename","lineno","colno","getGenericPromiseRejectionErrorMessage","MOBILE_DETECTION_REGEXP","DeviceSources","isMobile","getDeviceSource","browser_mobile","browser_computer","getCookies","reduce","acc","getCookie","getDomainName","includes","matchedDomain","getQueryString","setCookie","sameSite","isUsingSupportedBrowser","majorVersion","Number","getBrowser","getOS","generateGuid","r","Math","random","DEFAULT_NEW_WINDOW_LOADER_ID","DEFAULT_NEW_WINDOW_LOADING_INLINE_CSS_SCRIPT","WindowOpener","_window","_windowTarget","_windowCloseInterval","openWindow","windowTarget","closed","addWindowLoader","html","styles","style","innerHTML","head","appendChild","loaderDiv","body","addWindowCloseListener","setInterval","removeWindowCloseListener","clearInterval","closeWindow","_this$_window","close","clearWindow","_this$_window2","getWindow","getWindowTarget","root","definition","define","noop","undefinedType","isIE","logMethods","bindMethod","Function","traceForIE","trace","realMethod","replaceLoggingMethods","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","defaultLevel","factory","currentLevel","self","storageKey","persistLevelIfPossible","levelNum","levelName","localStorage","ignore","getPersistedLevel","storedLevel","exec","clearPersistedLevel","removeItem","getLevel","persist","SILENT","resetLevel","disableAll","initialLevel","defaultLogger","_loggersByName","_log","noConflict","getLoggers","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","enumerize","enums","has","str1","str2","lowerize","len","substring","rgxMapper","ua","arrays","j","k","p","q","matches","regex","props","strMapper","map","windowsVersionMap","regexes","cpu","engine","EDGE","extensions","_ua","_rgxmap","mergedRegexes","_browser","major","getCPU","_cpu","getDevice","_device","getEngine","_engine","_os","getUA","setUA","CPU","DEVICE","ENGINE","OS","$","jQuery","Zepto","get","set"],"sourceRoot":""}