{"version":3,"file":"component---src-pages-blog-or-news-template-tsx-618ac0607cec8e5c3667.js","mappings":"uHAMAA,EAAQ,EANG,CACV,KAAQ,oEACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,sIACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,gIACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,uKACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,gGACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,yEACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,mEACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,uEACR,MAAS,GACT,OAAU,G,sBCGXA,EAAQ,EANG,CACV,KAAQ,mNACR,MAAS,GACT,OAAU,G,qBCGXA,EAAQ,EANG,CACV,KAAQ,0KACR,MAAS,GACT,OAAU,G,uLCUI,SAASC,EAAUC,GAM9B,IAN+B,SACjCC,EAAQ,aACRC,GAIDF,EACC,MAAM,EAACG,EAAa,EAACC,IAAmBC,EAAAA,EAAAA,UAAS,GAAGC,EAAAA,EAAOC,WAY3D,OAVAC,EAAAA,EAAAA,YAAU,KAENJ,EADe,WAAbH,GAAsC,SAAbA,EACX,GAAGK,EAAAA,EAAOG,SACJ,SAAbR,EACO,GAAGK,EAAAA,EAAOI,SAEV,GAAGJ,EAAAA,EAAOK,YAC5B,GACC,CAACV,KAGFW,EAAAA,EAAAA,MAACC,EAAO,CAAAC,SAAA,EACNF,EAAAA,EAAAA,MAACG,EAAe,CAACZ,aAAcA,EAAaW,SAAA,EAC1CF,EAAAA,EAAAA,MAACI,EAAS,CAAAF,SAAA,EACRG,EAAAA,EAAAA,KAACC,EAAY,CAAAJ,SAAEZ,EAAa,qBAC5BU,EAAAA,EAAAA,MAACO,EAAG,CAAAL,SAAA,EACFG,EAAAA,EAAAA,KAACG,EAAU,CAACC,KAAK,6CAA4CP,UAC3DG,EAAAA,EAAAA,KAACK,EAAO,OAEVL,EAAAA,EAAAA,KAACG,EAAU,CAACC,KAAK,yDAAwDP,UACvEG,EAAAA,EAAAA,KAACM,EAAO,OAEVN,EAAAA,EAAAA,KAACG,EAAU,CAACC,KAAK,mEAAkEP,UACjFG,EAAAA,EAAAA,KAACO,EAAQ,aAIfZ,EAAAA,EAAAA,MAACI,EAAS,CAAAF,SAAA,EACRG,EAAAA,EAAAA,KAACC,EAAY,CAAAJ,SAAEZ,EAAa,2BAC5BU,EAAAA,EAAAA,MAACO,EAAG,CAAAL,SAAA,EACFG,EAAAA,EAAAA,KAACG,EAAU,CAACC,KAAK,mCAAkCP,UACjDG,EAAAA,EAAAA,KAACK,EAAO,OAEVL,EAAAA,EAAAA,KAACG,EAAU,CAACC,KAAK,iDAAgDP,UAC/DG,EAAAA,EAAAA,KAACO,EAAQ,gBAKjBP,EAAAA,EAAAA,KAACQ,EAAAA,EAAS,CAACxB,SAAUA,EAAUC,aAAcA,MAGnD,CAEA,MAAMW,EAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAVJ,CAAU,ocAYJpB,EAAAA,EAAOyB,MAGzBC,EAAAA,GAAMC,UASND,EAAAA,GAAME,OASNF,EAAAA,GAAMG,QAYJpB,EAAkBW,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAVJ,CAAU,4JACfU,IAAA,IAAC,aAAEjC,GAAciC,EAAA,OAChCjC,EAAe,aAAaA,IAAiB,OAAO,GAEpD6B,EAAAA,GAAMC,UAGND,EAAAA,GAAME,OAGNF,EAAAA,GAAMG,QAQJnB,EAAYU,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAVJ,CAAU,mKAOxBM,EAAAA,GAAMC,UAGND,EAAAA,GAAME,OAGNF,EAAAA,GAAMG,QAKJjB,EAAeQ,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,eAAVJ,CAAU,+IAC3BW,EAAAA,GAAKC,QACEhC,EAAAA,EAAOC,QAGdyB,EAAAA,GAAMC,UAGND,EAAAA,GAAME,OACJG,EAAAA,GAAKE,MAGPP,EAAAA,GAAMG,OACJE,EAAAA,GAAKG,SAMLrB,EAAMO,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,kBAAAC,YAAA,eAAVJ,CAAU,mBAIhBN,EAAaM,EAAAA,QAAOe,EAACb,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAARJ,CAAQ,2LAIvBM,EAAAA,GAAMC,UAKND,EAAAA,GAAME,OAKNF,EAAAA,GAAMG,QASJb,GAAUI,EAAAA,EAAAA,SAAOgB,EAAAA,GAAKd,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAZJ,CAAY,+IAEhBpB,EAAAA,EAAOqC,MAIPrC,EAAAA,EAAOyB,MAGfC,EAAAA,GAAMY,MAIMtC,EAAAA,EAAOuC,QAIPvC,EAAAA,EAAOyB,OAOjBR,GAAUG,EAAAA,EAAAA,SAAOoB,EAAAA,GAAGlB,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAVJ,CAAU,+IAEdpB,EAAAA,EAAOqC,MAIPrC,EAAAA,EAAOyB,MAEfC,EAAAA,GAAMY,MAIMtC,EAAAA,EAAOuC,QAIPvC,EAAAA,EAAOyB,OAOjBP,GAAWE,EAAAA,EAAAA,SAAOqB,EAAAA,GAAGnB,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAVJ,CAAU,+IAEfpB,EAAAA,EAAOqC,MAIPrC,EAAAA,EAAOyB,MAEfC,EAAAA,GAAMY,MAIMtC,EAAAA,EAAOuC,QAIPvC,EAAAA,EAAOyB,M,uLClPR,SAASiB,EAAWhD,GAY/B,IAZgC,YAClCiD,EAAW,aACXC,EAAY,iBACZC,EAAgB,QAChBC,EAAO,aACPlD,GAODF,EACC,MAAM,EAACqD,EAAW,EAACC,IAAiBjD,EAAAA,EAAAA,UAAiB,GAC/CkD,GAAcC,EAAAA,EAAAA,GAAS,EAAG,EAAG,EAAG,GAChCrB,GAASqB,EAAAA,EAAAA,IAAS,GAAO,GAAO,GAAO,IACvC,EAAEC,IAAMC,EAAAA,EAAAA,cAcd,OACEzC,EAAAA,EAAAA,KAACJ,EAAO,CAAAC,UACNF,EAAAA,EAAAA,MAAC+C,EAAO,CAACP,QAASA,EAAQtC,SAAA,EACxBF,EAAAA,EAAAA,MAACgD,EAAO,CAAA9C,SAAA,EACNG,EAAAA,EAAAA,KAAC4C,EAAAA,EAAW,CACVC,QAASA,KAAMC,OAjBFC,EAiBgBX,EAAa,OAhB9CA,EAAa,GACfC,EAAcU,IAFKA,KAiBgC,EAC7CC,SAAUZ,GAAc,GAAKJ,EAAYiB,OAAS,EAClDC,aAAchB,EACdiB,MAAI,KAENnD,EAAAA,EAAAA,KAAC4C,EAAAA,EAAW,CACVI,SACEZ,EAAaJ,EAAYiB,QAAUX,EAAc,IACjDN,EAAYiB,OAAS,EAEvBC,aAAcjB,EACdY,QAASA,KAAMO,OAtBCL,EAsBgBX,EAAa,OArBjDA,EAAaJ,EAAYiB,OAASX,GACpCD,EAAcU,IAFQA,KAsBgC,EAChDM,OAAK,QAGTrD,EAAAA,EAAAA,KAACsD,EAAM,CAACC,UAAWlE,EAAAA,EAAOuC,QAAQ/B,SAC/BZ,EACGA,EAAa,uBACbuD,EAAE,0BAERxC,EAAAA,EAAAA,KAACwD,EAAK,CAAA3D,SACHZ,EAAeA,EAAa,gBAAkBuD,EAAE,mBAEnDxC,EAAAA,EAAAA,KAACyD,EAAkB,CAACC,SAAUtB,EAAWvC,SACrCqB,EAAuBc,EAAY2B,MAAM,EAAG,GAAnC3B,QAKrB,CAEA,MAAMpC,EAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAVJ,CAAU,mDAMpBiC,EAAUjC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAVJ,CAAU,2VAIVU,IAAA,IAAC,QAAEgB,GAAShB,EAAA,OAAKgB,CAAO,GAIpCpB,EAAAA,GAAMC,UAKND,EAAAA,GAAME,OAINF,EAAAA,GAAMG,QAQJyB,EAAUlC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAVJ,CAAU,iIAMtBM,EAAAA,GAAMC,UAKND,EAAAA,GAAMG,QAKJoC,EAAS7C,EAAAA,QAAOmD,EAACjD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,gBAARJ,CAAQ,8HACnBW,EAAAA,GAAKyC,IACEC,IAAA,IAAC,UAAEP,GAAWO,EAAA,OAAKP,CAAS,GAEnCxC,EAAAA,GAAMC,UAGND,EAAAA,GAAME,OACJG,EAAAA,GAAK2C,GAIPhD,EAAAA,GAAMG,OACJE,EAAAA,GAAK4C,OAKLR,EAAQ/C,EAAAA,QAAOwD,GAAEtD,WAAA,CAAAC,YAAA,qBAAAC,YAAA,gBAATJ,CAAS,oJACnBW,EAAAA,GAAK8C,GACE7E,EAAAA,EAAOC,QAEdyB,EAAAA,GAAMC,UAGND,EAAAA,GAAME,OACJG,EAAAA,GAAK+C,GAIPpD,EAAAA,GAAMG,OACJE,EAAAA,GAAK6C,IAKLR,EAAqBhD,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAVJ,CAAU,qPAGX2D,IAAA,IAAC,SAAEV,GAAUU,EAAA,MAAK,QAAQV,gBAAuB,GAE3CW,EAAAA,EAAOC,KACnCvD,EAAAA,GAAMC,WAEkBuD,IAAA,IAAC,SAAEb,GAAUa,EAAA,MAAK,QAAQb,aAAoB,GAEtE3C,EAAAA,GAAME,QAEkBuD,IAAA,IAAC,SAAEd,GAAUc,EAAA,MAAK,QAAQd,gBAAuB,GAEzE3C,EAAAA,GAAMG,O,ybC/KV,MAAMuD,EAAY,2BACZC,EAAeC,OAAOC,OAAO,CACjCzB,KAAM,EACN0B,IAAK,EACLC,MAAO,GACPC,OAAQ,GACRC,OAAQ,EACRC,OAAO,EACPC,OAAO,IAET,SAASC,EAASC,GAChB,MAAO,IAAKV,KAAiBU,EAC/B,CAEA,MAAMC,EAAe,CAACC,EAAOC,EAAUC,EAAiBC,EAAW,MACjE,MAAMC,EAAiBJ,EAAMK,MAAM,KACnC,GAA0B,MAAtBL,EAAM3B,MAAM,EAAG,GAAY,CAC7B,GAAI+B,EAAezC,OAAS,GAAKyC,EAAezC,OAAS,EACvD,OAAO,KAETwC,EAAWC,EAAeE,QAAQjC,MAAM,EAC1C,CACA,GAAI+B,EAAezC,OAAS,IAAMyC,EAAezC,OAC/C,OAAO,KAET,GAAIyC,EAAezC,OAAS,EAAG,CAC7B,MAAM4C,EAAQH,EAAeI,MACvBC,EAASL,EAAeI,MACxBE,EAAS,CACbP,SAAUC,EAAezC,OAAS,EAAIyC,EAAe,GAAKD,EAC1DM,SACAE,KAAMJ,GAER,OAAON,IAAaW,EAAaF,GAAU,KAAOA,CACpD,CACA,MAAMC,EAAOP,EAAe,GACtBS,EAAgBF,EAAKN,MAAM,KACjC,GAAIQ,EAAclD,OAAS,EAAG,CAC5B,MAAM+C,EAAS,CACbP,WACAM,OAAQI,EAAcP,QACtBK,KAAME,EAAcC,KAAK,MAE3B,OAAOb,IAAaW,EAAaF,GAAU,KAAOA,CACpD,CACA,GAAIR,GAAgC,KAAbC,EAAiB,CACtC,MAAMO,EAAS,CACbP,WACAM,OAAQ,GACRE,QAEF,OAAOV,IAAaW,EAAaF,EAAQR,GAAmB,KAAOQ,CACrE,CACA,OAAO,IAAI,EAEPE,EAAe,CAACG,EAAMb,MACrBa,KAGwB,KAAlBA,EAAKZ,WAAmBY,EAAKZ,SAASa,MAAM7B,MAAgBe,GAAmC,KAAhBa,EAAKN,QAAiBM,EAAKN,OAAOO,MAAM7B,MAAe4B,EAAKJ,KAAKK,MAAM7B,IA6BnK,SAAS8B,EAAcnB,EAAMa,EAAMO,GAAO,GAuBxC,MAAMR,EAtBN,SAASS,EAAQZ,EAAOa,GACtB,QAA0B,IAAtBtB,EAAKuB,MAAMd,GACb,OAAOlB,OAAOiC,OAAO,CAAC,EAAGxB,EAAKuB,MAAMd,IAEtC,GAAIa,EAAY,EACd,OAAO,KAET,MAAMG,EAAUzB,EAAKyB,QACrB,GAAIA,QAA8B,IAAnBA,EAAQhB,GAAmB,CACxC,MAAMiB,EAAOD,EAAQhB,GACfkB,EAAUN,EAAQK,EAAKE,OAAQN,EAAY,GACjD,OAAIK,EAtCV,SAAuBV,EAAMY,GAC3B,MAAMjB,EAAS,IAAKK,GACpB,IAAK,MAAMa,KAAOxC,EAAc,CAC9B,MAAMyC,EAAOD,EACb,QAAoB,IAAhBD,EAAME,GAAkB,CAC1B,MAAM7B,EAAQ2B,EAAME,GACpB,QAAqB,IAAjBnB,EAAOmB,GAAkB,CAC3BnB,EAAOmB,GAAQ7B,EACf,QACF,CACA,OAAQ6B,GACN,IAAK,SACHnB,EAAOmB,IAASnB,EAAOmB,GAAQ7B,GAAS,EACxC,MACF,IAAK,QACL,IAAK,QACHU,EAAOmB,GAAQ7B,IAAUU,EAAOmB,GAChC,MACF,QACEnB,EAAOmB,GAAQ7B,EAErB,CACF,CACA,OAAOU,CACT,CAeeoB,CAAcL,EAASD,GAEzBC,CACT,CACA,MAAMM,EAAQjC,EAAKiC,MACnB,OAAKX,GAAaW,QAA0B,IAAjBA,EAAMxB,GACxBY,EAAQY,EAAMxB,GAAQa,EAAY,GAEpC,IACT,CACeD,CAAQR,EAAM,GAC7B,GAAID,EACF,IAAK,MAAMkB,KAAOxC,OACI,IAAhBsB,EAAOkB,SAAiC,IAAd9B,EAAK8B,KACjClB,EAAOkB,GAAO9B,EAAK8B,IAIzB,OAAOlB,GAAUQ,EAAOrB,EAASa,GAAUA,CAC7C,CAUA,SAASsB,EAAalC,EAAMmC,EAAUC,GACpCA,EAAUA,GAAW,CAAC,EACtB,MAAMC,EAAQ,GACd,GAAoB,iBAATrC,GAA2C,iBAAfA,EAAKuB,MAC1C,OAAOc,EAELrC,EAAKsC,qBAAqBC,OAC5BvC,EAAKsC,UAAUE,SAAS3B,IACtBsB,EAAStB,EAAM,MACfwB,EAAMI,KAAK5B,EAAK,IAGpB,MAAMU,EAAQvB,EAAKuB,MACnBhC,OAAOmD,KAAKnB,GAAOiB,SAAS3B,IAC1B,MAAM8B,EAAWxB,EAAcnB,EAAMa,GAAM,GACvC8B,IACFR,EAAStB,EAAM8B,GACfN,EAAMI,KAAK5B,GACb,IAEF,MAAM+B,EAAeR,EAAQX,SAAW,MACxC,GAAqB,SAAjBmB,GAAmD,iBAAjB5C,EAAKyB,QAAsB,CAC/D,MAAMA,EAAUzB,EAAKyB,QACrBlC,OAAOmD,KAAKjB,GAASe,SAAS3B,IAC5B,GAAqB,eAAjB+B,GAhCV,SAAqBlB,GACnB,IAAK,MAAMI,KAAOxC,EAChB,QAAkB,IAAdoC,EAAKI,GACP,OAAO,EAGX,OAAO,CACT,CAyB2Ce,CAAYpB,EAAQZ,IACvD,OAEF,MAAM8B,EAAWxB,EAAcnB,EAAMa,GAAM,GACvC8B,IACFR,EAAStB,EAAM8B,GACfN,EAAMI,KAAK5B,GACb,GAEJ,CACA,OAAOwB,CACT,CAEA,MAAMS,EAAqB,CACzBzC,SAAU,SACVoB,QAAS,SACTa,UAAW,UAEb,IAAK,MAAMP,MAAQzC,EACjBwD,EAAmBf,WAAezC,EAAayC,IAEjD,SAASgB,EAAuBC,GAC9B,GAAmB,iBAARA,GAA4B,OAARA,EAC7B,OAAO,KAET,MAAMhD,EAAOgD,EACb,GAA2B,iBAAhBhD,EAAKW,SAAwBqC,EAAIzB,OAA8B,iBAAdyB,EAAIzB,MAC9D,OAAO,KAET,IAAK,MAAMQ,KAAQe,EACjB,QAAkB,IAAdE,EAAIjB,WAA2BiB,EAAIjB,KAAUe,EAAmBf,GAClE,OAAO,KAGX,MAAMR,EAAQvB,EAAKuB,MACnB,IAAK,MAAMV,KAAQU,EAAO,CACxB,MAAMN,EAAOM,EAAMV,GACnB,IAAKA,EAAKK,MAAM7B,IAAmC,iBAAd4B,EAAKgC,KACxC,OAAO,KAET,IAAK,MAAMlB,KAAQzC,EACjB,QAAmB,IAAf2B,EAAKc,WAA2Bd,EAAKc,WAAiBzC,EAAayC,GACrE,OAAO,IAGb,CACA,MAAMN,EAAUzB,EAAKyB,QACrB,GAAIA,EACF,IAAK,MAAMZ,KAAQY,EAAS,CAC1B,MAAMR,EAAOQ,EAAQZ,GACfe,EAASX,EAAKW,OACpB,IAAKf,EAAKK,MAAM7B,IAAgC,iBAAXuC,IAAwBL,EAAMK,KAAYH,EAAQG,GACrF,OAAO,KAET,IAAK,MAAMG,KAAQzC,EACjB,QAAmB,IAAf2B,EAAKc,WAA2Bd,EAAKc,WAAiBzC,EAAayC,GACrE,OAAO,IAGb,CAEF,OAAO/B,CACT,CAGA,IAAIkD,EAA4B3D,OAAO4D,OAAO,MAC9C,IACE,MAAMC,EAAIC,QAAUC,KAChBF,GAJiB,IAIZA,EAAEG,gBAAgBC,UACzBN,EAAYE,EAAEG,gBAAgBE,QAElC,CAAE,MAAOC,IACT,CAqBA,SAASC,EAAWtD,EAAUM,QACA,IAAxBuC,EAAU7C,KACZ6C,EAAU7C,GAA4Bd,OAAO4D,OAAO,OAEtD,MAAMS,EAAkBV,EAAU7C,GAIlC,YAHgC,IAA5BuD,EAAgBjD,KAClBiD,EAAgBjD,GAdpB,SAAoBN,EAAUM,GAC5B,MAAO,CACLN,WACAM,SACAY,MAAuBhC,OAAO4D,OAAO,MACrCU,QAAyBtE,OAAO4D,OAAO,MAE3C,CAO8BW,CAAWzD,EAAUM,IAE1CiD,EAAgBjD,EACzB,CACA,SAASoD,EAAWC,EAAUhE,GAC5B,IAAK+C,EAAuB/C,GAC1B,MAAO,GAET,MAAM5C,EAAI6G,KAAKC,MACf,OAAOhC,EAAalC,GAAM,CAACa,EAAMI,KAC3BA,EACF+C,EAASzC,MAAMV,GAAQI,EAEvB+C,EAASH,QAAQhD,GAAQzD,CAC3B,GAEJ,CAWA,SAAS+G,EAAmBH,EAAUnD,GACpC,MAAMX,EAAQ8D,EAASzC,MAAMV,GAC7B,YAAiB,IAAVX,EAAmB,KAAOA,CACnC,CAyBA,IAAIkE,GAAc,EAClB,SAASC,EAAiBC,GAIxB,MAHqB,kBAAVA,IACTF,EAAcE,GAETF,CACT,CACA,SAASG,EAAY1D,GACnB,MAAMI,EAAuB,iBAATJ,EAAoBZ,EAAaY,GAAM,EAAMuD,GAAevD,EAChF,OAAOI,EAAOkD,EAAmBR,EAAW1C,EAAKZ,SAAUY,EAAKN,QAASM,EAAKJ,MAAQ,IACxF,CACA,SAAS2D,EAAQ3D,EAAMb,GACrB,MAAMiB,EAAOhB,EAAaY,GAAM,EAAMuD,GACtC,IAAKnD,EACH,OAAO,EAGT,OAvDF,SAA0B+C,EAAUnD,EAAMI,GACxC,IACE,GAAyB,iBAAdA,EAAKgC,KAEd,OADAe,EAASzC,MAAMV,GAAQtB,OAAOC,OAAOO,EAASkB,KACvC,CAEX,CAAE,MAAOyC,IACT,CACA,OAAO,CACT,CA8CSe,CADSd,EAAW1C,EAAKZ,SAAUY,EAAKN,QACdM,EAAKJ,KAAMb,EAC9C,CAsCA,MAAM0E,EAAWnF,OAAOC,OAAO,CAC7BmF,QAAQ,EACRjF,MAAO,KACPC,OAAQ,KACRiF,OAAQ,SACRC,OAAQ,SACRtG,OAAO,EACPuB,OAAO,EACPD,OAAO,EACPD,OAAQ,IAEV,SAASkF,EAAoBC,EAAWrD,GACtC,MAAMd,EAAS,CAAC,EAChB,IAAK,MAAMkB,KAAOiD,EAAW,CAC3B,MAAMC,EAAOlD,EAEb,GADAlB,EAAOoE,GAAQD,EAAUC,QACN,IAAftD,EAAKsD,GACP,SAEF,MAAM9E,EAAQwB,EAAKsD,GACnB,OAAQA,GACN,IAAK,SACL,IAAK,QACkB,kBAAV9E,IACTU,EAAOoE,GAAQ9E,GAEjB,MACF,IAAK,QACL,IAAK,SACW,IAAVA,IACFU,EAAOoE,IAASpE,EAAOoE,IAEzB,MACF,IAAK,SACL,IAAK,SACkB,iBAAV9E,GAAgC,KAAVA,IAC/BU,EAAOoE,GAAQ9E,GAEjB,MACF,IAAK,QACL,IAAK,UACkB,iBAAVA,GAAgC,KAAVA,GAAiC,iBAAVA,GAAsBA,GAAmB,OAAVA,KACrFU,EAAOoE,GAAQ9E,GAEjB,MACF,IAAK,SACkB,iBAAVA,IACTU,EAAOoE,IAAS9E,GAIxB,CACA,OAAOU,CACT,CAEA,MAAMqE,EAAa,4BACbC,GAAY,4BAClB,SAASC,GAAcC,EAAMC,EAAOC,GAClC,GAAc,IAAVD,EACF,OAAOD,EAGT,GADAE,OAA0B,IAAdA,EAAuB,IAAMA,EACrB,iBAATF,EACT,OAAOG,KAAKC,KAAKJ,EAAOC,EAAQC,GAAaA,EAE/C,GAAoB,iBAATF,EACT,OAAOA,EAET,MAAMK,EAAWL,EAAK7E,MAAM0E,GAC5B,GAAiB,OAAbQ,IAAsBA,EAAS5H,OACjC,OAAOuH,EAET,MAAMM,EAAW,GACjB,IAAIC,EAAOF,EAASjF,QAChBoF,EAAWV,GAAUW,KAAKF,GAC9B,OAAa,CACX,GAAIC,EAAU,CACZ,MAAME,EAAMC,WAAWJ,GACnBK,MAAMF,GACRJ,EAASjD,KAAKkD,GAEdD,EAASjD,KAAK8C,KAAKC,KAAKM,EAAMT,EAAQC,GAAaA,EAEvD,MACEI,EAASjD,KAAKkD,GAGhB,GADAA,EAAOF,EAASjF,aACH,IAATmF,EACF,OAAOD,EAAS1E,KAAK,IAEvB4E,GAAYA,CACd,CACF,CAEA,SAASK,GAAoBC,GAC3B,IAAItF,EAAS,GACb,OAAQsF,EAAMtB,QACZ,IAAK,OACHhE,GAAU,OACV,MACF,IAAK,QACHA,GAAU,OACV,MACF,QACEA,GAAU,OAEd,OAAQsF,EAAMrB,QACZ,IAAK,MACHjE,GAAU,OACV,MACF,IAAK,SACHA,GAAU,OACV,MACF,QACEA,GAAU,OAGd,OADAA,GAAUsF,EAAM3H,MAAQ,SAAW,QAC5BqC,CACT,CACA,SAASuF,GAAUlF,EAAMmF,GACvB,MAAMC,EAAM,CACVtI,KAAMkD,EAAKlD,KACX0B,IAAKwB,EAAKxB,IACVC,MAAOuB,EAAKvB,MACZC,OAAQsB,EAAKtB,QAEf,IAqDID,EAAOC,EArDPsD,EAAOhC,EAAKgC,KAChB,CAAChC,EAAMmF,GAAgB5D,SAAS0D,IAC9B,MAAMI,EAAkB,GAClBxG,EAAQoG,EAAMpG,MACdD,EAAQqG,EAAMrG,MACpB,IAcI0G,EAdAC,EAAWN,EAAMtG,OAmBrB,OAlBIE,EACED,EACF2G,GAAY,GAEZF,EAAgB7D,KAAK,cAAgB4D,EAAI3G,MAAQ2G,EAAItI,MAAM0I,WAAa,KAAO,EAAIJ,EAAI5G,KAAKgH,WAAa,KACzGH,EAAgB7D,KAAK,eACrB4D,EAAI5G,IAAM4G,EAAItI,KAAO,GAEd8B,IACTyG,EAAgB7D,KAAK,cAAgB,EAAI4D,EAAItI,MAAM0I,WAAa,KAAOJ,EAAI1G,OAAS0G,EAAI5G,KAAKgH,WAAa,KAC1GH,EAAgB7D,KAAK,eACrB4D,EAAI5G,IAAM4G,EAAItI,KAAO,GAGnByI,EAAW,IACbA,GAAuC,EAA3BjB,KAAKmB,MAAMF,EAAW,IAEpCA,GAAsB,EACdA,GACN,KAAK,EACHD,EAAYF,EAAI1G,OAAS,EAAI0G,EAAI5G,IACjC6G,EAAgBK,QAAQ,aAAeJ,EAAUE,WAAa,IAAMF,EAAUE,WAAa,KAC3F,MACF,KAAK,EACHH,EAAgBK,QAAQ,eAAiBN,EAAI3G,MAAQ,EAAI2G,EAAItI,MAAM0I,WAAa,KAAOJ,EAAI1G,OAAS,EAAI0G,EAAI5G,KAAKgH,WAAa,KAC9H,MACF,KAAK,EACHF,EAAYF,EAAI3G,MAAQ,EAAI2G,EAAItI,KAChCuI,EAAgBK,QAAQ,cAAgBJ,EAAUE,WAAa,IAAMF,EAAUE,WAAa,KAG5FD,EAAW,GAAM,IACF,IAAbH,EAAItI,MAA0B,IAAZsI,EAAI5G,MACxB8G,EAAYF,EAAItI,KAChBsI,EAAItI,KAAOsI,EAAI5G,IACf4G,EAAI5G,IAAM8G,GAERF,EAAI3G,QAAU2G,EAAI1G,SACpB4G,EAAYF,EAAI3G,MAChB2G,EAAI3G,MAAQ2G,EAAI1G,OAChB0G,EAAI1G,OAAS4G,IAGbD,EAAgBzI,SAClBoF,EAAO,iBAAmBqD,EAAgBtF,KAAK,KAAO,KAAOiC,EAAO,OACtE,IAG2B,OAAzBmD,EAAe1G,OAA4C,OAA1B0G,EAAezG,QAClDA,EAAS,MACTD,EAAQyF,GAAcxF,EAAQ0G,EAAI3G,MAAQ2G,EAAI1G,SACZ,OAAzByG,EAAe1G,OAA4C,OAA1B0G,EAAezG,QACzDD,EAAQ0G,EAAe1G,MACvBC,EAASyG,EAAezG,QACW,OAA1ByG,EAAezG,QACxBA,EAASyG,EAAezG,OACxBD,EAAQyF,GAAcxF,EAAQ0G,EAAI3G,MAAQ2G,EAAI1G,UAE9CD,EAAQ0G,EAAe1G,MACvBC,EAASwF,GAAczF,EAAO2G,EAAI1G,OAAS0G,EAAI3G,QAEnC,SAAVA,IACFA,EAAQ2G,EAAI3G,OAEC,SAAXC,IACFA,EAAS0G,EAAI1G,QAEfD,EAAyB,iBAAVA,EAAqBA,EAAQA,EAAM+G,WAAa,GAC/D9G,EAA2B,iBAAXA,EAAsBA,EAASA,EAAO8G,WAAa,GACnE,MAAM7F,EAAS,CACbgG,WAAY,CACVlH,QACAC,SACAsG,oBAAqBA,GAAoBG,GACzCS,QAASR,EAAItI,KAAK0I,WAAa,IAAMJ,EAAI5G,IAAIgH,WAAa,IAAMJ,EAAI3G,MAAM+G,WAAa,IAAMJ,EAAI1G,OAAO8G,YAE1GxD,QAKF,OAHImD,EAAezB,SACjB/D,EAAO+D,QAAS,GAEX/D,CACT,CAMA,MAAMkG,GAAQ,gBACRC,GAAe,YAAc9C,KAAKC,MAAMuC,SAAS,KAAuB,SAAhBlB,KAAKyB,SAAsB,GAAGP,SAAS,IACrG,IAAIQ,GAAU,EACd,SAASC,GAAWjE,EAAMtC,EAASoG,IACjC,MAAMI,EAAM,GACZ,IAAIjG,EACJ,KAAOA,EAAQ4F,GAAMM,KAAKnE,IACxBkE,EAAI1E,KAAKvB,EAAM,IAEjB,OAAKiG,EAAItJ,QAGTsJ,EAAI3E,SAAS6E,IACX,MAAMC,EAA0B,mBAAX3G,EAAwBA,EAAO0G,GAAM1G,GAAUsG,MAAWR,WACzEc,EAAYF,EAAGG,QAAQ,sBAAuB,QACpDvE,EAAOA,EAAKuE,QAAQ,IAAIC,OAAO,WAAaF,EAAY,mBAAoB,KAAM,KAAOD,EAAQ,KAAK,IAEjGrE,GAPEA,CAQX,CAEA,MAAMQ,GAA0BlE,OAAO4D,OAAO,MAC9C,SAASuE,GAAarH,EAAUqB,GAC9B+B,GAAQpD,GAAYqB,CACtB,CACA,SAASiG,GAAatH,GACpB,OAAOoD,GAAQpD,IAAaoD,GAAQ,GACtC,CAEA,SAASmE,GAAgBC,GACvB,IAAIC,EACJ,GAAgC,iBAArBD,EAAOC,UAChBA,EAAY,CAACD,EAAOC,gBAGpB,GADAA,EAAYD,EAAOC,YACbA,aAAqBvF,OAAWuF,EAAUjK,QAC9C,OAAO,KAaX,MAVe,CACbiK,YACAC,UAAsB,IAAhBF,EAAOE,KAAkB,IAAMF,EAAOE,KAC5CC,OAAQH,EAAOG,OAASH,EAAOG,OAAS,IACxCpI,OAAQiI,EAAOjI,OAASiI,EAAOjI,OAAS,IACxCqI,QAASJ,EAAOI,QAAUJ,EAAOI,QAAU,IAC3CjB,QAA0B,IAAlBa,EAAOb,OACfkB,MAAOL,EAAOK,MAAQL,EAAOK,MAAQ,EACrCC,kBAA8C,IAA5BN,EAAOM,iBAG7B,CACA,MAAMC,GAAgC7I,OAAO4D,OAAO,MAC9CkF,GAAqB,CACzB,4BACA,0BAEIC,GAAc,GACpB,KAAOD,GAAmBxK,OAAS,GACC,IAA9BwK,GAAmBxK,QAGjB0H,KAAKyB,SAAW,GAFpBsB,GAAY7F,KAAK4F,GAAmB7H,SAKlC8H,GAAY7F,KAAK4F,GAAmB3H,OAO1C,SAAS6H,GAAelI,EAAUmI,GAChC,MAAMC,EAASb,GAAgBY,GAC/B,OAAe,OAAXC,IAGJL,GAAc/H,GAAYoI,GACnB,EACT,CACA,SAASC,GAAarI,GACpB,OAAO+H,GAAc/H,EACvB,CAbA+H,GAAc,IAAMR,GAAgB,CAClCE,UAAW,CAAC,8BAA8Ba,OAAOL,MAiBnD,MAAMM,GAAc,CAACC,EAAMC,KACzB,IAAIlI,EAASiI,EAAME,GAAqC,IAAzBnI,EAAOoI,QAAQ,KAuB9C,OAVAzJ,OAAOmD,KAAKoG,GAAQtG,SAASV,IAC3B,IAAI5B,EACJ,IACEA,EAfJ,SAAuBA,GACrB,cAAeA,GACb,IAAK,UACH,OAAOA,EAAQ,OAAS,QAC1B,IAAK,SAEL,IAAK,SACH,OAAO+I,mBAAmB/I,GAC5B,QACE,MAAM,IAAIgJ,MAAM,qBAEtB,CAIYC,CAAcL,EAAOhH,GAC/B,CAAE,MAAO4B,IACP,MACF,CACA9C,IAAWmI,EAAY,IAAM,KAAOE,mBAAmBnH,GAAO,IAAM5B,EACpE6I,GAAY,CAAI,IAEXnI,CAAM,EAGTwI,GAAiB,CAAC,EAClBC,GAAY,CAAC,EAYnB,IAAIC,GAXgB,MAClB,IAAInH,EACJ,IAEE,GADAA,EAAWoH,MACa,mBAAbpH,EACT,OAAOA,CAEX,CAAE,MAAOuB,IACT,CACA,OAAO,IAAI,EAEK8F,GA8ElB,MAkDMC,GAAiB,CACrBC,QA/Fc,CAACrJ,EAAUM,EAAQY,KACjC,MAAMoI,EAAU,GAChB,IAAIC,EAAYR,GAAezI,QACb,IAAdiJ,IACFA,EA/BJ,SAA4BvJ,EAAUM,GACpC,MAAM8H,EAASC,GAAarI,GAC5B,IAAKoI,EACH,OAAO,EAET,IAAI7H,EACJ,GAAK6H,EAAOT,OAEL,CACL,IAAI6B,EAAgB,EACpBpB,EAAOX,UAAUtF,SAASd,IACxB,MAAMoI,EAAOpI,EACbmI,EAAgBtE,KAAKwE,IAAIF,EAAeC,EAAKjM,OAAO,IAEtD,MAAMmM,EAAMpB,GAAYjI,EAAS,QAAS,CACxCY,MAAO,KAETX,EAAS6H,EAAOT,OAAS6B,EAAgBpB,EAAOV,KAAKlK,OAASmM,EAAInM,MACpE,MAXE+C,EAAS,EAYX,MAAMqJ,EAAW5J,EAAW,IAAMM,EAGlC,OAFA0I,GAAUhJ,GAAYoI,EAAOV,KAC7BqB,GAAea,GAAYrJ,EACpBA,CACT,CAQgBsJ,CAAmB7J,EAAUM,IAE3C,MAAMwJ,EAAO,QACb,IAAIzI,EAAO,CACTyI,OACA9J,WACAM,SACAY,MAAO,IAEL1D,EAAS,EAgBb,OAfA0D,EAAMiB,SAAQ,CAAC3B,EAAMqH,KACnBrK,GAAUgD,EAAKhD,OAAS,EACpBA,GAAU+L,GAAa1B,EAAQ,IACjCyB,EAAQlH,KAAKf,GACbA,EAAO,CACLyI,OACA9J,WACAM,SACAY,MAAO,IAET1D,EAASgD,EAAKhD,QAEhB6D,EAAKH,MAAMkB,KAAK5B,EAAK,IAEvB8I,EAAQlH,KAAKf,GACNiI,CAAO,EAmEdS,KApDW,CAACN,EAAMhB,EAAQ3G,KAC1B,IAAKmH,GAEH,YADAnH,EAAS,QAAS,KAGpB,IAAI4F,EAlBN,SAAiB1H,GACf,GAAwB,iBAAbA,EAAuB,CAChC,QAA4B,IAAxBgJ,GAAUhJ,GAAsB,CAClC,MAAMoI,EAASC,GAAarI,GAC5B,IAAKoI,EACH,MAAO,IAETY,GAAUhJ,GAAYoI,EAAOV,IAC/B,CACA,OAAOsB,GAAUhJ,EACnB,CACA,MAAO,GACT,CAMagK,CAAQvB,EAAOzI,UAC1B,OAAQyI,EAAOqB,MACb,IAAK,QAAS,CACZ,MAAMxJ,EAASmI,EAAOnI,OAEhB2J,EADQxB,EAAOvH,MACGP,KAAK,KAC7B+G,GAAQa,GAAYjI,EAAS,QAAS,CACpCY,MAAO+I,IAET,KACF,CACA,IAAK,SAAU,CACb,MAAMC,EAAMzB,EAAOyB,IACnBxC,GAA4B,MAApBwC,EAAIhM,MAAM,EAAG,GAAagM,EAAIhM,MAAM,GAAKgM,EACjD,KACF,CACA,QAEE,YADApI,EAAS,QAAS,KAGtB,IAAIqI,EAAe,IACnBlB,GAAYQ,EAAO/B,GAAM0C,MAAMC,IAC7B,MAAMC,EAASD,EAASC,OACxB,GAAe,MAAXA,EAOJ,OADAH,EAAe,IACRE,EAASE,OANdC,YAAW,KACT1I,EA7ER,SAAqBwI,GACnB,OAAkB,MAAXA,CACT,CA2EiBG,CAAYH,GAAU,QAAU,OAAQA,EAAO,GAKtC,IACrBF,MAAMzK,IACa,iBAATA,GAA8B,OAATA,EAMhC6K,YAAW,KACT1I,EAAS,UAAWnC,EAAK,IANzB6K,YAAW,KACT1I,EAAS,OAAQqI,EAAa,GAMhC,IACDO,OAAM,KACP5I,EAAS,OAAQqI,EAAa,GAC9B,GA8DJ,MAAMQ,GAA4BzL,OAAO4D,OAAO,MAC1C8H,GAAiC1L,OAAO4D,OAAO,MACrD,SAAS+H,GAAeC,EAAS9D,GAC/B8D,EAAQ3I,SAASqF,IACf,MAAMxH,EAAWwH,EAAOxH,SACxB,QAA4B,IAAxB2K,GAAU3K,GACZ,OAEF,MAAM+K,EAAoBJ,GAAU3K,GAC9BM,EAASkH,EAAOlH,OAChB0K,EAAQD,EAAkBzK,GAC5B0K,IACFD,EAAkBzK,GAAU0K,EAAMC,QAAQC,GAAQA,EAAIlE,KAAOA,IAC/D,GAEJ,CA4DA,IAAImE,GAAY,EA4ChB,IAAIC,GAAgB,CAClB3D,UAAW,GACXI,MAAO,EACPD,QAAS,IACTrI,OAAQ,IACRoH,QAAQ,EACRmB,kBAAkB,GAIpB,SAASuD,GAAUjD,EAAQkD,EAASC,EAAOC,GACzC,MAAMC,EAAiBrD,EAAOX,UAAUjK,OAClCkO,EAAatD,EAAOzB,OAASzB,KAAKmB,MAAMnB,KAAKyB,SAAW8E,GAAkBrD,EAAOP,MACvF,IAAIJ,EACJ,GAAIW,EAAOzB,OAAQ,CACjB,IAAIgF,EAAOvD,EAAOX,UAAUvJ,MAAM,GAElC,IADAuJ,EAAY,GACLkE,EAAKnO,OAAS,GAAG,CACtB,MAAMoO,EAAY1G,KAAKmB,MAAMnB,KAAKyB,SAAWgF,EAAKnO,QAClDiK,EAAUrF,KAAKuJ,EAAKC,IACpBD,EAAOA,EAAKzN,MAAM,EAAG0N,GAAWtD,OAAOqD,EAAKzN,MAAM0N,EAAY,GAChE,CACAnE,EAAYA,EAAUa,OAAOqD,EAC/B,MACElE,EAAYW,EAAOX,UAAUvJ,MAAMwN,GAAYpD,OAAOF,EAAOX,UAAUvJ,MAAM,EAAGwN,IAElF,MAAMG,EAAYjI,KAAKC,MACvB,IAEIiI,EAFAxB,EAAS,UACTyB,EAAc,EAEdC,EAAQ,KACRC,EAAQ,GACRC,EAAgB,GAIpB,SAASC,IACHH,IACFI,aAAaJ,GACbA,EAAQ,KAEZ,CACA,SAASK,IACQ,YAAX/B,IACFA,EAAS,WAEX6B,IACAF,EAAM9J,SAASd,IACO,YAAhBA,EAAKiJ,SACPjJ,EAAKiJ,OAAS,UAChB,IAEF2B,EAAQ,EACV,CACA,SAASK,EAAUxK,EAAUyK,GACvBA,IACFL,EAAgB,IAEM,mBAAbpK,GACToK,EAAc9J,KAAKN,EAEvB,CAYA,SAAS0K,IACPlC,EAAS,SACT4B,EAAc/J,SAASL,IACrBA,OAAS,EAAQgK,EAAU,GAE/B,CACA,SAASW,IACPR,EAAM9J,SAASd,IACO,YAAhBA,EAAKiJ,SACPjJ,EAAKiJ,OAAS,UAChB,IAEF2B,EAAQ,EACV,CA4CA,SAASS,IACP,GAAe,YAAXpC,EACF,OAEF6B,IACA,MAAMQ,EAAWlF,EAAUtH,QAC3B,QAAiB,IAAbwM,EACF,OAAIV,EAAMzO,YACRwO,EAAQxB,YAAW,KACjB2B,IACe,YAAX7B,IACFmC,IACAD,IACF,GACCpE,EAAOR,eAGZ4E,IAGF,MAAMnL,EAAO,CACXiJ,OAAQ,UACRqC,WACA7K,SAAU,CAAC8K,EAASjN,MAlExB,SAAwB0B,EAAMgJ,EAAU1K,GACtC,MAAMkN,EAAuB,YAAbxC,EAEhB,OADA4B,EAAQA,EAAMhB,QAAQ6B,GAAWA,IAAWzL,IACpCiJ,GACN,IAAK,UACH,MACF,IAAK,SACH,GAAIuC,IAAYzE,EAAON,iBACrB,OAEF,MACF,QACE,OAEJ,GAAiB,UAAbuC,EAGF,OAFAyB,EAAYnM,OACZ6M,IAGF,GAAIK,EASF,OARAf,EAAYnM,OACPsM,EAAMzO,SACJiK,EAAUjK,OAGbkP,IAFAF,MASN,GAFAL,IACAM,KACKrE,EAAOzB,OAAQ,CAClB,MAAMkB,EAAQO,EAAOX,UAAUkB,QAAQtH,EAAKsL,WAC7B,IAAX9E,GAAgBA,IAAUO,EAAOP,QACnCO,EAAOP,MAAQA,EAEnB,CACAyC,EAAS,YACT4B,EAAc/J,SAASL,IACrBA,EAASnC,EAAK,GAElB,CAyBMoN,CAAe1L,EAAMuL,EAASjN,EAAK,GAGvCsM,EAAM7J,KAAKf,GACX0K,IACAC,EAAQxB,WAAWkC,EAAUtE,EAAO7I,QACpCgM,EAAMoB,EAAUrB,EAASjK,EAAKS,SAChC,CAEA,MAlIoB,mBAAT0J,GACTU,EAAc9J,KAAKoJ,GAgIrBhB,WAAWkC,GApGX,WACE,MAAO,CACLb,YACAP,UACAhB,SACAyB,cACAiB,eAAgBf,EAAMzO,OACtB8O,YACAD,QAEJ,CA4FF,CAkBA,SAASY,GAAeC,GACtB,MAAM9E,EAhBR,SAAmBA,GACjB,KAAsB,iBAAXA,GAAmD,iBAArBA,EAAOX,WAA4BW,EAAOX,qBAAqBvF,OAAWkG,EAAOX,UAAUjK,QAClI,MAAM,IAAIqL,MAAM,oCAElB,MAAMsE,EAA4BjO,OAAO4D,OAAO,MAChD,IAAIrB,EACJ,IAAKA,KAAO2J,QACU,IAAhBhD,EAAO3G,GACT0L,EAAU1L,GAAO2G,EAAO3G,GAExB0L,EAAU1L,GAAO2J,GAAc3J,GAGnC,OAAO0L,CACT,CAEiBC,CAAUF,GACzB,IAAIG,EAAU,GACd,SAASC,IACPD,EAAUA,EAAQpC,QAAQ5J,GAA2B,YAAlBA,IAAOiJ,QAC5C,CA0BA,MATiB,CACfiB,MAjBF,SAAeD,EAASiC,EAAeC,GACrC,MAAMC,EAASpC,GAAUjD,EAAQkD,EAASiC,GAAe,CAAC5N,EAAM+N,KAC9DJ,IACIE,GACFA,EAAa7N,EAAM+N,EACrB,IAGF,OADAL,EAAQjL,KAAKqL,GACNA,CACT,EASEE,KARF,SAAc7L,GACZ,MAAMvB,EAAS8M,EAAQM,MAAM9N,GACpBiC,EAASjC,KAElB,YAAkB,IAAXU,EAAoBA,EAAS,IACtC,EAIEqN,SAAW/F,IACTO,EAAOP,MAAQA,CAAK,EAEtBgG,SAAU,IAAMzF,EAAOP,MACvByF,UAGJ,CAEA,SAASQ,KACT,CACA,MAAMC,GAAkC7O,OAAO4D,OAAO,MAgBtD,SAASkL,GAAaC,EAAQ1C,EAAOzJ,GACnC,IAAIoM,EACAnE,EACJ,GAAsB,iBAAXkE,EAAqB,CAC9B,MAAME,EAAM7G,GAAa2G,GACzB,IAAKE,EAEH,OADArM,OAAS,EAAQ,KACVgM,GAET/D,EAAOoE,EAAIpE,KACX,MAAMqE,EAzBV,SAA4BpO,GAC1B,QAAkC,IAA9B+N,GAAgB/N,GAAsB,CACxC,MAAMoI,EAASC,GAAarI,GAC5B,IAAKoI,EACH,OAEF,MACMiG,EAAkB,CACtBjG,SACA8F,WAHiBjB,GAAe7E,IAKlC2F,GAAgB/N,GAAYqO,CAC9B,CACA,OAAON,GAAgB/N,EACzB,CAWmBsO,CAAmBL,GAC9BG,IACFF,EAAaE,EAAOF,WAExB,KAAO,CACL,MAAM9F,EAASb,GAAgB0G,GAC/B,GAAI7F,EAAQ,CACV8F,EAAajB,GAAe7E,GAC5B,MACM+F,EAAM7G,GADM2G,EAAOxG,UAAYwG,EAAOxG,UAAU,GAAK,IAEvD0G,IACFpE,EAAOoE,EAAIpE,KAEf,CACF,CACA,OAAKmE,GAAenE,EAIbmE,EAAW3C,MAAMA,EAAOxB,EAAMjI,EAA9BoM,GAA0C7B,OAH/CvK,OAAS,EAAQ,KACVgM,GAGX,CAEA,MAAMS,GAAQ,CAAC,EAEf,SAASC,KACT,CACA,MAAMC,GAA+BvP,OAAO4D,OAAO,MAC7C4L,GAA8BxP,OAAO4D,OAAO,MAC5C6L,GAA8BzP,OAAO4D,OAAO,MAC5C8L,GAA6B1P,OAAO4D,OAAO,MACjD,SAAS+L,GAAe7O,EAAUM,QACF,IAA1BqO,GAAY3O,KACd2O,GAAY3O,GAA4Bd,OAAO4D,OAAO,OAExD,MAAMgM,EAAsBH,GAAY3O,GACnC8O,EAAoBxO,KACvBwO,EAAoBxO,IAAU,EAC9BkK,YAAW,KACTsE,EAAoBxO,IAAU,EAjYpC,SAAyBN,EAAUM,QACA,IAA7BsK,GAAe5K,KACjB4K,GAAe5K,GAA4Bd,OAAO4D,OAAO,OAE3D,MAAMiM,EAAyBnE,GAAe5K,GACzC+O,EAAuBzO,KAC1ByO,EAAuBzO,IAAU,EACjCkK,YAAW,KAET,GADAuE,EAAuBzO,IAAU,OACL,IAAxBqK,GAAU3K,SAAwD,IAAhC2K,GAAU3K,GAAUM,GACxD,OAEF,MAAM0K,EAAQL,GAAU3K,GAAUM,GAAQpC,MAAM,GAChD,IAAK8M,EAAMxN,OACT,OAEF,MAAM4F,EAAUE,EAAWtD,EAAUM,GACrC,IAAI0O,GAAa,EACjBhE,EAAM7I,SAASd,IACb,MAAMH,EAAQG,EAAKH,MACb+N,EAAY/N,EAAMgO,QAAQ1R,OAChC0D,EAAMgO,QAAUhO,EAAMgO,QAAQjE,QAAQrK,IACpC,GAAIA,EAAKN,SAAWA,EAClB,OAAO,EAET,MAAME,EAAOI,EAAKJ,KAClB,QAA4B,IAAxB4C,EAAQlC,MAAMV,GAChBU,EAAMiO,OAAO/M,KAAK,CAChBpC,WACAM,SACAE,aAEG,SAA8B,IAA1B4C,EAAQI,QAAQhD,GAQzB,OADAwO,GAAa,GACN,EAPP9N,EAAMsC,QAAQpB,KAAK,CACjBpC,WACAM,SACAE,QAKJ,CACA,OAAO,CAAK,IAEVU,EAAMgO,QAAQ1R,SAAWyR,IACtBD,GACHnE,GAAe,CACb,CACE7K,WACAM,WAEDe,EAAK2F,IAEV3F,EAAKS,SAASZ,EAAMiO,OAAOjR,MAAM,GAAIgD,EAAMsC,QAAQtF,MAAM,GAAIgD,EAAMgO,QAAQhR,MAAM,GAAImD,EAAKgL,OAC5F,GACA,IAGR,CAwUM+C,CAAgBpP,EAAUM,EAAO,IAGvC,CACA,MAAM+O,GAA8BnQ,OAAO4D,OAAO,MAClD,SAASwM,GAAatP,EAAUM,EAAQY,QASR,IAA1BwN,GAAY1O,KACd0O,GAAY1O,GAA4Bd,OAAO4D,OAAO,OAExD,MAAMyM,EAAsBb,GAAY1O,QACX,IAAzB4O,GAAW5O,KACb4O,GAAW5O,GAA4Bd,OAAO4D,OAAO,OAEvD,MAAM0M,EAAqBZ,GAAW5O,QACP,IAA3ByO,GAAazO,KACfyO,GAAazO,GAA4Bd,OAAO4D,OAAO,OAEzD,MAAM2M,EAAuBhB,GAAazO,QACN,IAAhCuP,EAAoBjP,GACtBiP,EAAoBjP,GAAUY,EAE9BqO,EAAoBjP,GAAUiP,EAAoBjP,GAAQgI,OAAOpH,GAAOwO,OAErEF,EAAmBlP,KACtBkP,EAAmBlP,IAAU,EAC7BkK,YAAW,KACTgF,EAAmBlP,IAAU,EAC7B,MAAMqP,EAASJ,EAAoBjP,UAC5BiP,EAAoBjP,GAC3B,MAAM6N,EAAM7G,GAAatH,GACzB,IAAKmO,EAEH,YAlCN,WACE,MAAM1M,GAAoB,KAAbzB,EAAkB,GAAK,IAAMA,EAAW,KAAOM,EACtDsP,EAAO1K,KAAKmB,MAAMzC,KAAKC,MAAQ,KACjCwL,GAAY5N,GAAOmO,IACrBP,GAAY5N,GAAOmO,EACnBC,QAAQnC,MAAM,iCAAmCjM,EAAM,6CAE3D,CA0BM4B,GAGa8K,EAAI9E,QAAQrJ,EAAUM,EAAQqP,GACtCxN,SAASd,IACd2M,GAAahO,EAAUqB,GAAM,CAAC1B,EAAM+N,KAClC,MAAMtK,EAAUE,EAAWtD,EAAUM,GACrC,GAAoB,iBAATX,EAAmB,CAC5B,GAAc,MAAV+N,EACF,OAEF,MAAM3Q,EAAI6G,KAAKC,MACfxC,EAAKH,MAAMiB,SAAS3B,IAClB4C,EAAQI,QAAQhD,GAAQzD,CAAC,GAE7B,MACE,IACE,MAAM+S,EAASpM,EAAWN,EAASzD,GACnC,IAAKmQ,EAAOtS,OACV,OAEF,MAAM0R,EAAUO,EAAqBnP,GACrCwP,EAAO3N,SAAS3B,WACP0O,EAAQ1O,EAAK,IAElB+N,GAAMwB,OACRxB,GAAMwB,MAAM/P,EAAUL,EAE1B,CAAE,MAAOqQ,GACPH,QAAQnC,MAAMsC,EAChB,CAEFnB,GAAe7O,EAAUM,EAAO,GAChC,GACF,IAGR,CACA,MAAM2P,GAAY,CAAC/O,EAAOY,KACxB,MAAMoO,EAzXR,SAAqBvE,EAAM7L,GAAW,EAAMiE,GAAc,GACxD,MAAMxD,EAAS,GAWf,OAVAoL,EAAKxJ,SAASd,IACZ,MAAMT,EAAuB,iBAATS,EAAoBzB,EAAayB,GAAM,EAAO0C,GAAe1C,EAC5EvB,IAAYW,EAAaG,EAAMmD,IAClCxD,EAAO6B,KAAK,CACVpC,SAAUY,EAAKZ,SACfM,OAAQM,EAAKN,OACbE,KAAMI,EAAKJ,MAEf,IAEKD,CACT,CA4WuB4P,CAAYjP,GAAO,EAAM8C,KACxCoM,EAxhBR,SAAmBlP,GACjB,MAAMX,EAAS,CACb4O,OAAQ,GACR3L,QAAS,GACT0L,QAAS,IAEL9L,EAA0BlE,OAAO4D,OAAO,MAC9C5B,EAAMwO,MAAK,CAAC3T,EAAGsU,IACTtU,EAAEiE,WAAaqQ,EAAErQ,SACZjE,EAAEiE,SAASsQ,cAAcD,EAAErQ,UAEhCjE,EAAEuE,SAAW+P,EAAE/P,OACVvE,EAAEuE,OAAOgQ,cAAcD,EAAE/P,QAE3BvE,EAAEyE,KAAK8P,cAAcD,EAAE7P,QAEhC,IAAI+P,EAAW,CACbvQ,SAAU,GACVM,OAAQ,GACRE,KAAM,IAiCR,OA/BAU,EAAMiB,SAASvB,IACb,GAAI2P,EAAS/P,OAASI,EAAKJ,MAAQ+P,EAASjQ,SAAWM,EAAKN,QAAUiQ,EAASvQ,WAAaY,EAAKZ,SAC/F,OAEFuQ,EAAW3P,EACX,MAAMZ,EAAWY,EAAKZ,SAChBM,EAASM,EAAKN,OACdE,EAAOI,EAAKJ,UACQ,IAAtB4C,EAAQpD,KACVoD,EAAQpD,GAA4Bd,OAAO4D,OAAO,OAEpD,MAAMS,EAAkBH,EAAQpD,QACA,IAA5BuD,EAAgBjD,KAClBiD,EAAgBjD,GAAUgD,EAAWtD,EAAUM,IAEjD,MAAMkQ,EAAejN,EAAgBjD,GACrC,IAAIqL,EAEFA,OAD+B,IAA7B6E,EAAatP,MAAMV,GACdD,EAAO4O,OACM,KAAX7O,QAAgD,IAA/BkQ,EAAahN,QAAQhD,GACxCD,EAAOiD,QAEPjD,EAAO2O,QAEhB,MAAM7N,EAAO,CACXrB,WACAM,SACAE,QAEFmL,EAAKvJ,KAAKf,EAAK,IAEVd,CACT,CAmesBkQ,CAAUP,GAC9B,IAAKE,EAAYlB,QAAQ1R,OAAQ,CAC/B,IAAIkT,GAAe,EAQnB,OAPI5O,GACF0I,YAAW,KACLkG,GACF5O,EAASsO,EAAYjB,OAAQiB,EAAY5M,QAAS4M,EAAYlB,QAASV,GACzE,IAGG,KACLkC,GAAe,CAAK,CAExB,CACA,MAAMC,EAA2BzR,OAAO4D,OAAO,MACzCgI,EAAU,GAChB,IAAI8F,EAAcC,EAClBT,EAAYlB,QAAQ/M,SAASvB,IAC3B,MAAMZ,EAAWY,EAAKZ,SAChBM,EAASM,EAAKN,OACpB,GAAIA,IAAWuQ,GAAc7Q,IAAa4Q,EACxC,OAEFA,EAAe5Q,EACf6Q,EAAavQ,EACbwK,EAAQ1I,KAAK,CACXpC,WACAM,gBAE6B,IAA3BmO,GAAazO,KACfyO,GAAazO,GAA4Bd,OAAO4D,OAAO,OAEzD,MAAM2M,EAAuBhB,GAAazO,QACL,IAAjCyP,EAAqBnP,KACvBmP,EAAqBnP,GAA0BpB,OAAO4D,OAAO,YAEpC,IAAvB6N,EAAS3Q,KACX2Q,EAAS3Q,GAA4Bd,OAAO4D,OAAO,OAErD,MAAMgO,EAAmBH,EAAS3Q,QACD,IAA7B8Q,EAAiBxQ,KACnBwQ,EAAiBxQ,GAAU,GAC7B,IAEF,MAAMsP,EAAOhM,KAAKC,MAkBlB,OAjBAuM,EAAYlB,QAAQ/M,SAASvB,IAC3B,MAAMZ,EAAWY,EAAKZ,SAChBM,EAASM,EAAKN,OACdE,EAAOI,EAAKJ,KACZuQ,EAAetC,GAAazO,GAAUM,QACjB,IAAvByQ,EAAavQ,KACfuQ,EAAavQ,GAAQoP,EACrBe,EAAS3Q,GAAUM,GAAQ8B,KAAK5B,GAClC,IAEFsK,EAAQ3I,SAASqF,IACf,MAAMxH,EAAWwH,EAAOxH,SAClBM,EAASkH,EAAOlH,OAClBqQ,EAAS3Q,GAAUM,GAAQ9C,QAC7B8R,GAAatP,EAAUM,EAAQqQ,EAAS3Q,GAAUM,GACpD,IAEKwB,EAndT,SAAuBA,EAAUZ,EAAO8P,GACtC,MAAMhK,EAAKmE,KACLkB,EAAQxB,GAAeoG,KAAK,KAAMD,EAAgBhK,GACxD,IAAK9F,EAAMgO,QAAQ1R,OACjB,OAAO6O,EAET,MAAMhL,EAAO,CACX2F,KACA9F,QACAY,WACAuK,SAcF,OAZA2E,EAAe7O,SAASqF,IACtB,MAAMxH,EAAWwH,EAAOxH,SAClBM,EAASkH,EAAOlH,YACM,IAAxBqK,GAAU3K,KACZ2K,GAAU3K,GAA4Bd,OAAO4D,OAAO,OAEtD,MAAMiI,EAAoBJ,GAAU3K,QACF,IAA9B+K,EAAkBzK,KACpByK,EAAkBzK,GAAU,IAE9ByK,EAAkBzK,GAAQ8B,KAAKf,EAAK,IAE/BgL,CACT,CA0boB6E,CAAcpP,EAAUsO,EAAatF,GAAW0D,EAAa,EAmB3E2C,GAAe,WACfC,GAAc,UACdC,GAAWD,GAAc,SACzBE,GAAaF,GAAc,WAC3BG,GAAO,KAEPnJ,GAAS,CACboJ,OAAO,EACPC,SAAS,GAEX,IAAItC,IAAS,EACb,MAAMuC,GAAQ,CACZF,MAAO,EACPC,QAAS,GAELE,GAAY,CAChBH,MAAO,GACPC,QAAS,IAEX,IAAIG,GAA4B,oBAAX5O,OAAyB,CAAC,EAAIA,OACnD,SAAS6O,GAAUpQ,GACjB,MAAMkD,EAAOlD,EAAM,UACnB,IACE,GAAImQ,IAAWA,GAAQjN,IAAyC,iBAAzBiN,GAAQjN,GAAMnH,OACnD,OAAOoU,GAAQjN,EAEnB,CAAE,MAAOtB,IACT,CAEA,OADA+E,GAAO3G,IAAO,EACP,IACT,CACA,SAASqQ,GAAS1O,EAAS3B,EAAK5B,GAC9B,IAGE,OAFAuD,EAAQ2O,QAAQV,GAAUxR,EAAMuG,YAChCsL,GAAMjQ,GAAO5B,GACN,CACT,CAAE,MAAOwD,IACP,OAAO,CACT,CACF,CACA,SAAS2O,GAAS5O,GAChB,MAAM6O,EAAS7O,EAAQ8O,QAAQb,IAC/B,GAAIY,EAAQ,CACV,MAAME,EAAQC,SAASH,GACvB,OAAOE,GAAgB,CACzB,CACA,OAAO,CACT,CAiBA,MAAME,GAAY,KAChB,GAAIlD,GACF,OAEFA,IAAS,EACT,MAAMmD,EAAUpN,KAAKmB,MAAMzC,KAAKC,MAAQ0N,IAhElB,IAiEtB,SAASgB,EAAK9Q,GACZ,MAAM+Q,EAAOX,GAAUpQ,GACvB,IAAK+Q,EACH,OAEF,MAAMN,EAAWrK,IACf,MAAMrH,EAAO4Q,GAAcvJ,EAAMzB,WAC3B/E,EAAOmR,EAAKN,QAAQ1R,GAC1B,GAAoB,iBAATa,EACT,OAAO,EAET,IAAIoR,GAAQ,EACZ,IACE,MAAM9S,EAAO+S,KAAKC,MAAMtR,GACxB,GAAoB,iBAAT1B,GAA4C,iBAAhBA,EAAKyO,QAAuBzO,EAAKyO,OAASkE,GAAoC,iBAAlB3S,EAAKK,UAA8C,iBAAdL,EAAKA,MAAiD,iBAArBA,EAAKA,KAAKW,OACjLmS,GAAQ,MACH,CACL,MAAMzS,EAAWL,EAAKK,SAChBM,EAASX,EAAKA,KAAKW,OAEzBmS,EAAQ/O,EADQJ,EAAWtD,EAAUM,GACTX,EAAKA,MAAMnC,OAAS,CAClD,CACF,CAAE,MAAO6F,IACPoP,GAAQ,CACV,CAIA,OAHKA,GACHD,EAAKI,WAAWpS,GAEXiS,CAAK,EAEd,IACE,MAAMtP,EAAUqP,EAAKN,QAAQZ,IAC7B,GAAInO,IAAYgO,GAKd,OAJIhO,GAhDZ,SAAsBC,GACpB,IACE,MAAM+O,EAAQH,GAAS5O,GACvB,IAAK,IAAIyP,EAAI,EAAGA,EAAIV,EAAOU,IACzBzP,EAAQwP,WAAWxB,GAAcyB,EAAEzM,WAEvC,CAAE,MAAO/C,IACT,CACF,CAyCUyP,CAAaN,QAxDvB,SAAmBpP,EAAS3B,GAC1B,IACE2B,EAAQ2O,QAAQT,GAAYH,GAC9B,CAAE,MAAO9N,IACT,CACAyO,GAAS1O,EAAS3B,EAAK,EACzB,CAoDQsR,CAAUP,EAAM/Q,GAGlB,IAAI0Q,EAAQH,GAASQ,GACrB,IAAK,IAAIK,EAAIV,EAAQ,EAAGU,GAAK,EAAGA,IACzBX,EAAQW,KACPA,IAAMV,EAAQ,EAChBA,IAEAR,GAAUlQ,GAAKW,KAAKyQ,IAI1Bf,GAASU,EAAM/Q,EAAK0Q,EACtB,CAAE,MAAO9O,IACT,CACF,CACA,IAAK,MAAM5B,KAAO2G,GAChBmK,EAAK9Q,EACP,EAEIuR,GAAa,CAAChT,EAAUL,KAI5B,SAASoQ,EAAMtO,GACb,IAAK2G,GAAO3G,GACV,OAAO,EAET,MAAM+Q,EAAOX,GAAUpQ,GACvB,IAAK+Q,EACH,OAAO,EAET,IAAI3K,EAAQ8J,GAAUlQ,GAAKtB,QAC3B,QAAc,IAAV0H,IACFA,EAAQ6J,GAAMjQ,IACTqQ,GAASU,EAAM/Q,EAAKoG,EAAQ,IAC/B,OAAO,EAGX,IACE,MAAMxG,EAAO,CACX+M,OAAQlJ,KAAKmB,MAAMzC,KAAKC,MAAQ0N,IAChCvR,WACAL,QAEF6S,EAAKT,QAAQX,GAAcvJ,EAAMzB,WAAYsM,KAAKO,UAAU5R,GAC9D,CAAE,MAAOgC,IACP,OAAO,CACT,CACA,OAAO,CACT,CA7BK8L,IACHkD,KA6BGnT,OAAOmD,KAAK1C,EAAKuB,OAAO1D,SAGzBmC,EAAKsC,kBACPtC,EAAOT,OAAOiC,OAAO,CAAC,EAAGxB,IACbsC,UAET8N,EAAM,UACTA,EAAM,WACR,EAiBF,MAAMmD,GAAY,SAClB,SAASC,GAAeC,EAAQC,GAC9BA,EAAKnT,MAAMgT,IAAW/Q,SAASmR,IAE7B,OADcA,EAAIC,QAEhB,IAAK,aACHH,EAAO3T,OAAQ,EACf,MACF,IAAK,WACH2T,EAAO5T,OAAQ,EAEnB,GAEJ,CACA,SAASgU,GAAoBJ,EAAQK,GACnCA,EAAMvT,MAAMgT,IAAW/Q,SAASmR,IAC9B,MAAMzT,EAAQyT,EAAIC,OAClB,OAAQ1T,GACN,IAAK,OACL,IAAK,SACL,IAAK,QACHuT,EAAO7O,OAAS1E,EAChB,MACF,IAAK,MACL,IAAK,SACL,IAAK,SACHuT,EAAO5O,OAAS3E,EAChB,MACF,IAAK,QACL,IAAK,OACHuT,EAAOlV,OAAQ,EACf,MACF,IAAK,OACHkV,EAAOlV,OAAQ,EACnB,GAEJ,CAEA,SAASwV,GAAiB7T,EAAO8T,EAAe,GAC9C,MAAMC,EAAQ/T,EAAMsH,QAAQ,aAAc,IAC1C,SAASmG,EAAQuG,GACf,KAAOA,EAAS,GACdA,GAAU,EAEZ,OAAOA,EAAS,CAClB,CACA,GAAc,KAAVD,EAAc,CAChB,MAAMnO,EAAM2M,SAASvS,GACrB,OAAO8F,MAAMF,GAAO,EAAI6H,EAAQ7H,EAClC,CAAO,GAAImO,IAAU/T,EAAO,CAC1B,IAAIK,EAAQ,EACZ,OAAQ0T,GACN,IAAK,IACH1T,EAAQ,GACR,MACF,IAAK,MACHA,EAAQ,GAEZ,GAAIA,EAAO,CACT,IAAIuF,EAAMC,WAAW7F,EAAM3B,MAAM,EAAG2B,EAAMrC,OAASoW,EAAMpW,SACzD,OAAImI,MAAMF,GACD,GAETA,GAAYvF,EACLuF,EAAM,GAAM,EAAI6H,EAAQ7H,GAAO,EACxC,CACF,CACA,OAAOkO,CACT,CAKA,MAAMG,GAAc,CAChB,MAAS,6BACT,WAAc,+BACd,eAAe,EACf,KAAQ,MACR,MAAS,CAAC,GAKRC,GAAiB,IAAK1P,EAAUC,QAAQ,GAgI9C,GANAN,GAAiB,GAEjBqD,GAAa,GAAI+B,IAIO,oBAAb4K,UAA8C,oBAAXhR,OAAwB,CAElEuL,GAAMwB,MAAQiD,GACdX,KACA,MAAMT,EAAU5O,OAEhB,QAA+B,IAA3B4O,EAAQqC,eAA2B,CACnC,MAAMC,EAAUtC,EAAQqC,eAClB5Q,EAAM,iCACW,iBAAZ6Q,GAAoC,OAAZA,IAC9BA,aAAmBhS,MAAQgS,EAAU,CAACA,IAAU/R,SAASd,IACtD,KAGoB,iBAATA,GACM,OAATA,GACAA,aAAgBa,OAEM,iBAAfb,EAAKH,OACW,iBAAhBG,EAAKf,SA1gDpC,SAAuBX,EAAMK,GAC3B,GAAoB,iBAATL,EACT,OAAO,EAKT,GAHwB,iBAAbK,IACTA,EAAoC,iBAAlBL,EAAKK,SAAwBL,EAAKK,SAAW,IAE7D+D,GAA4B,KAAb/D,IAA2C,iBAAhBL,EAAKW,QAAuC,KAAhBX,EAAKW,QAAgB,CAC7F,IAAI6T,GAAQ,EASZ,OARIzR,EAAuB/C,KACzBA,EAAKW,OAAS,GACduB,EAAalC,GAAM,CAACa,EAAMI,KACpBA,GAAQuD,EAAQ3D,EAAMI,KACxBuT,GAAQ,EACV,KAGGA,CACT,CACA,QAA2B,iBAAhBxU,EAAKW,SAAwBG,EAAa,CACnDT,WACAM,OAAQX,EAAKW,OACbE,KAAM,UAKCkD,EADOJ,EAAWtD,EAAUL,EAAKW,QACbX,EAC/B,CAg/CyByU,CAAc/S,KACfwO,QAAQnC,MAAMrK,EAEtB,CACA,MAAOgR,GACHxE,QAAQnC,MAAMrK,EAClB,IAGZ,CAEA,QAAiC,IAA7BuO,EAAQ0C,iBAA6B,CACrC,MAAMC,EAAY3C,EAAQ0C,iBAC1B,GAAyB,iBAAdC,GAAwC,OAAdA,EACjC,IAAK,IAAI9S,KAAO8S,EAAW,CACvB,MAAMlR,EAAM,oBAAsB5B,EAAM,gBACxC,IACI,MAAM5B,EAAQ0U,EAAU9S,GACxB,GAAqB,iBAAV5B,IACNA,QACmB,IAApBA,EAAM4H,UACN,SAECS,GAAezG,EAAK5B,IACrBgQ,QAAQnC,MAAMrK,EAEtB,CACA,MAAOgR,IACHxE,QAAQnC,MAAMrK,EAClB,CACJ,CAER,CACJ,CACA,MAAMmR,WAAsB,YACxB,WAAAC,CAAY5O,GACR6O,MAAM7O,GACN8O,KAAKC,MAAQ,CAEThU,KAAM,KAEd,CAIA,aAAAiU,GACQF,KAAKG,WACLH,KAAKG,SAASzI,QACdsI,KAAKG,SAAW,KAExB,CAIA,QAAAC,CAASnU,GACD+T,KAAKC,MAAMhU,OAASA,GACpB+T,KAAKK,SAAS,CACVpU,QAGZ,CAIA,UAAAqU,CAAWC,GACP,MAAMN,EAAQD,KAAKC,MACbhU,EAAO+T,KAAK9O,MAAMjF,KAExB,GAAoB,iBAATA,GACE,OAATA,GACqB,iBAAdA,EAAKgC,KAUZ,OARA+R,KAAKQ,MAAQ,GACbR,KAAKE,sBACDK,GAA0B,OAAfN,EAAMhU,OAEjB+T,KAAKI,SAAS,CACVpV,KAAMD,EAASkB,MAM3B,IAAIwU,EACJ,GAAoB,iBAATxU,GAC0C,QAAhDwU,EAAWxV,EAAagB,GAAM,GAAO,IAGtC,OAFA+T,KAAKE,qBACLF,KAAKI,SAAS,MAIlB,MAAMpV,EAAOuE,EAAYkR,GACzB,GAAa,OAATzV,GAeJ,GAAIgV,KAAKQ,QAAUvU,GAAuB,OAAfgU,EAAMhU,KAAe,CAE5C+T,KAAKE,gBACLF,KAAKQ,MAAQvU,EAEb,MAAMyU,EAAU,CAAC,WACO,KAApBD,EAAS9U,QACT+U,EAAQjT,KAAK,YAAcgT,EAAS9U,QAEd,KAAtB8U,EAASpV,UACTqV,EAAQjT,KAAK,YAAcgT,EAASpV,UAGxC2U,KAAKI,SAAS,CACVpV,OACA0V,YAEAV,KAAK9O,MAAMyP,QACXX,KAAK9O,MAAMyP,OAAO1U,EAE1B,OAjCS+T,KAAKG,UAAYH,KAAKG,SAAStU,OAASI,IAEzC+T,KAAKE,gBACLF,KAAKQ,MAAQ,GACbR,KAAKI,SAAS,MACdJ,KAAKG,SAAW,CACZtU,KAAMI,EACNyL,MAAO4D,GAAU,CAACmF,GAAWT,KAAKM,WAAWhE,KAAK0D,MAAM,KA2BxE,CAIA,iBAAAY,GACIZ,KAAKM,YAAW,EACpB,CAIA,kBAAAO,CAAmBC,GACXA,EAAS7U,OAAS+T,KAAK9O,MAAMjF,MAC7B+T,KAAKM,YAAW,EAExB,CAIA,oBAAAS,GACIf,KAAKE,eACT,CAIA,MAAAc,GACI,MAAM9P,EAAQ8O,KAAK9O,MACbjF,EAAO+T,KAAKC,MAAMhU,KACxB,GAAa,OAATA,EAEA,OAAOiF,EAAMzL,SACPyL,EAAMzL,SACN,gBAAoB,OAAQ,CAAC,GAGvC,IAAIwb,EAAW/P,EAUf,OATIjF,EAAKyU,UACLO,EAAW,IACJ/P,EACHgQ,WAAuC,iBAApBhQ,EAAMgQ,UACnBhQ,EAAMgQ,UAAY,IAClB,IAAMjV,EAAKyU,QAAQ1U,KAAK,OAzT/B,EAEfC,EAEAiF,EAEAvB,EAEAwR,KAEI,MAAMC,EAAezR,EAASyP,GAAiB1P,EAEzC0B,EAAiBtB,EAAoBsR,EAAclQ,GAEnDmQ,EAA+B,iBAAhBnQ,EAAMmQ,OAAsC,OAAhBnQ,EAAMmQ,MACjDnQ,EAAMmQ,MACN,CAAC,EAEDC,EAAiB,IAAKnC,GAAagC,MAAKE,SAE9C,IAAK,IAAIvU,KAAOoE,EAAO,CACnB,MAAMhG,EAAQgG,EAAMpE,GACpB,QAAc,IAAV5B,EAGJ,OAAQ4B,GAEJ,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,UACD,MAEJ,IAAK,SACL,IAAK,QACL,IAAK,QACDsE,EAAetE,IACD,IAAV5B,GAA4B,SAAVA,GAA8B,IAAVA,EAC1C,MAEJ,IAAK,OACoB,iBAAVA,GACPsT,GAAepN,EAAgBlG,GAEnC,MAEJ,IAAK,QACoB,iBAAVA,GACP2T,GAAoBzN,EAAgBlG,GAExC,MAEJ,IAAK,QACDmW,EAAME,MAAQrW,EACd,MAEJ,IAAK,SACoB,iBAAVA,EACPkG,EAAetE,GAAOiS,GAAiB7T,GAEjB,iBAAVA,IACZkG,EAAetE,GAAO5B,GAE1B,MAEJ,IAAK,aACL,IAAK,eACa,IAAVA,GAA4B,SAAVA,UACXoW,EAAe,eAE1B,MAEJ,aAC8B,IAAtBF,EAAatU,KACbwU,EAAexU,GAAO5B,GAGtC,CAEA,MAAMwB,EAAOyE,GAAUlF,EAAMmF,GAE7B,IAAIoQ,EAAe,EACfnP,EAAKnB,EAAMmB,GACG,iBAAPA,IAEPA,EAAKA,EAAGG,QAAQ,KAAM,MAG1B8O,EAAeG,wBAA0B,CACrCC,OAAQxP,GAAWxF,EAAKuB,KAAMoE,EAAK,IAAMA,EAAK,KAAOmP,IAAiB,iBAE1E,IAAK,IAAI1U,KAAOJ,EAAKkF,WACjB0P,EAAexU,GAAOJ,EAAKkF,WAAW9E,GAK1C,OAHIJ,EAAKiD,aAAkC,IAAxB0R,EAAMM,gBACrBN,EAAMM,cAAgB,YAEnB,gBAAoB,MAAOL,EAAe,EA0NtCN,CAAO/U,EAAKjB,KAAMiW,EAAU/P,EAAM0Q,QAAS1Q,EAAMvM,KAC5D,EAOJ,MAAMkd,GAAO,cAAiB,SAAc3Q,EAAOiQ,GAC/C,MAAMF,EAAW,IACV/P,EACHvM,KAAMwc,EACNS,SAAS,GAEb,OAAO,gBAAoB/B,GAAeoB,EAC9C,IAMmB,cAAiB,SAAoB/P,EAAOiQ,GAC3D,MAAMF,EAAW,IAAK/P,EAAOvM,KAAMwc,EAAKS,SAAS,GACjD,OAAO,gBAAoB/B,GAAeoB,EAC9C,I,kJCzhEWa,GAAyB,SAAgCC,GAClE,OAAQA,GACN,IAAK,UAYL,QACE,MAAO,eAVT,IAAK,kBACH,MAAO,uBAET,IAAK,aACH,MAAO,kBAET,IAAK,qBACH,MAAO,0BAKb,EACWC,GAAU,SAAiBC,GACpC,OAAIA,aAAiBC,WACZD,EAAME,QAENF,EAAMG,QAAQ,GAAGD,OAE5B,EAEIE,GAAiB,SAAwBvR,GAC3C,OAAOA,EAAM,EAAIA,EAAIW,WAAa,IAAIkC,OAAO7C,EAC/C,EAEWwR,GAA0B,SAAiCC,EAASC,EAAcC,GAC3F,IAAKC,SAASH,GACZ,OAAO,KAGT,IAAII,EAAMpS,KAAKmB,MAAM6Q,EAAU,IAC3BK,EAASP,GAAeM,GACxBE,EAASR,GAAe9R,KAAKmB,MAAM6Q,EAAU,KAC7CO,EAAgBT,GAAe9R,KAAKmB,MAAMiR,EAAM,KAChDI,EAAUxS,KAAKmB,MAAMiR,EAAM,IAC3BK,EAAO,GAAGrP,OAAOiP,EAAQ,KAAKjP,OAAOkP,GACrCI,EAAS,GAAGtP,OAAOoP,EAAS,KAAKpP,OAAOmP,EAAe,KAAKnP,OAAOkP,GAEvE,MAAmB,SAAfJ,EACED,GAAgB,KACXS,EAEAD,EAEe,UAAfP,EACFO,EACiB,aAAfP,EACFQ,OADF,CAGT,EACO,SAASC,GAASrF,EAAMsF,GAC7B,IAAIC,GAAa,EACjB,OAAO,SAAUC,GACVD,IACHvF,EAAKwF,GACLD,GAAa,EACbvN,YAAW,WACT,OAAOuN,GAAa,CACtB,GAAGD,GAEP,CACF,CCzDA,SAASG,GAAaC,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOnE,IAAK,OAAO,CAAO,CAAE,CAFvQuE,GAA6B,OAAO,WAAkC,IAAsCrY,EAAlCsY,EAAQ,IAAgBX,GAAkB,GAAIC,EAA2B,CAAE,IAAIW,EAAY,IAAgBnE,MAAMF,YAAalU,EAAS6X,QAAQC,UAAUQ,EAAOE,UAAWD,EAAY,MAASvY,EAASsY,EAAMG,MAAMrE,KAAMoE,WAAc,OAAO,IAA2BpE,KAAMpU,EAAS,CAAG,CAOxa,IAAI0Y,GAAc,SAAUC,GAC1B,IAAUD,EAAaC,GAEvB,IAAIC,EAASlB,GAAagB,GAE1B,SAASA,IACP,IAAIG,EAEJ,IAAgBzE,KAAMsE,GAEtB,IAAK,IAAII,EAAON,UAAUvb,OAAQ8b,EAAO,IAAIpX,MAAMmX,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQR,UAAUQ,GAqMzB,OAlMAH,EAAQD,EAAOR,KAAKK,MAAMG,EAAQ,CAACxE,MAAMrM,OAAOgR,IAEhD,IAAgB,IAAuBF,GAAQ,aAAS,GAExD,IAAgB,IAAuBA,GAAQ,kBAAmB,GAElE,IAAgB,IAAuBA,GAAQ,8BAA8B,GAE7E,IAAgB,IAAuBA,GAAQ,sCAAkC,GAEjF,IAAgB,IAAuBA,GAAQ,QAAS,CACtDI,oBAAoB,EACpBC,eAAgB,KAChBC,8BAA8B,EAC9BC,oBAAqB,GACrBC,wBAAwB,IAG1B,IAAgB,IAAuBR,GAAQ,sBAAsB,SAAUxC,GAC7E,IAAIiD,EAAcT,EAAMvT,MACpBiU,EAAQD,EAAYC,MACpBC,EAAcF,EAAYE,YAG9B,GAFqE,IAA/BD,EAAME,IAAIrR,QAAQ,eAAqD,IAA5ByQ,EAAMvT,MAAMoU,eAEpDH,EAAME,MAAQ3C,SAASyC,EAAMI,eAAiBH,EAAYI,SACjG,MAAO,CACLD,YAAa,EACbT,eAAgB,MAIpB,IAAIW,EAAkBL,EAAYI,QAAQE,wBACtCC,EAAiBF,EAAgB/a,MACjCkb,EAAc5D,GAAQC,GAASwD,EAAgB1c,KAWnD,OATI6c,EAAc,EAChBA,EAAc,EACLA,EAAcD,IACvBC,EAAcD,GAMT,CACLJ,YAJad,EAAMoB,cAEQD,EAAcD,EAGzCb,eAAgB,GAAGnR,QAAQiS,EAAcD,EAAiB,KAAKG,QAAQ,GAAI,KAE/E,IAEA,IAAgB,IAAuBrB,GAAQ,qBAAqB,SAAUxC,GAC5EA,EAAM8D,gBACR,IAEA,IAAgB,IAAuBtB,GAAQ,0CAA0C,SAAUxC,GACjGA,EAAM+D,kBAEN,IAAIC,EAAwBxB,EAAMyB,mBAAmBjE,EAAMkE,aACvDZ,EAAcU,EAAsBV,YACpCT,EAAiBmB,EAAsBnB,eAEvCpC,SAAS6C,KACXd,EAAM2B,gBAAkBb,EAExBd,EAAMpE,SAAS,CACbwE,oBAAoB,EACpBC,eAAgBA,IAGd7C,EAAMkE,uBAAuBjE,YAC/B7T,OAAOgY,iBAAiB,YAAa5B,EAAM6B,8BAC3CjY,OAAOgY,iBAAiB,UAAW5B,EAAM8B,8BAEzClY,OAAOgY,iBAAiB,YAAa5B,EAAM6B,8BAC3CjY,OAAOgY,iBAAiB,WAAY5B,EAAM8B,6BAGhD,IAEA,IAAgB,IAAuB9B,GAAQ,gCAAgC,SAAUxC,GACnFA,aAAiBC,YACnBD,EAAM8D,iBAGR9D,EAAM+D,kBACN,IAAIQ,EAAkBnY,OAAOoY,eAQ7B,GANID,GAA4C,UAAzBA,EAAgBrR,MACrCqR,EAAgBE,QAGOjC,EAAMxE,MAAM4E,mBAEb,CACtB,IAAI8B,EAAyBlC,EAAMyB,mBAAmBjE,GAClDsD,EAAcoB,EAAuBpB,YACrCT,EAAiB6B,EAAuB7B,eAE5CL,EAAM2B,gBAAkBb,EAExBd,EAAMpE,SAAS,CACbyE,eAAgBA,GAEpB,CACF,IAEA,IAAgB,IAAuBL,GAAQ,8BAA8B,SAAUxC,GACrFA,EAAM+D,kBACN,IAAIY,EAAUnC,EAAM2B,gBAChBS,EAAepC,EAAMvT,MACrBiU,EAAQ0B,EAAa1B,MACrB2B,EAA2BD,EAAaC,yBACxCC,EAASF,EAAaE,OAE1B,GAAIA,EACFtC,EAAMpE,SAAS,CACbwE,oBAAoB,EACpBI,wBAAwB,IACvB,WACD8B,EAAO5B,EAAOyB,GAASnR,MAAK,WAC1B,OAAOgP,EAAMpE,SAAS,CACpB4E,wBAAwB,GAE5B,IAAG,SAAUvW,GACX,MAAM,IAAIwF,MAAMxF,EAClB,GACF,QACK,CACL,IAAIuS,EAAW,CACb4D,oBAAoB,GAGlBM,EAAM6B,aAAe7B,EAAM8B,cAAgB9B,EAAM6B,aAAe7B,EAAM+B,eAAkBxE,SAASkE,GAInGzB,EAAMI,YAAcqB,GAHpB3F,EAAS6D,eAAiB,KAC1BgC,GAA4BA,KAK9BrC,EAAMpE,SAASY,EACjB,CAEIgB,aAAiBC,YACnB7T,OAAO8Y,oBAAoB,YAAa1C,EAAM6B,8BAC9CjY,OAAO8Y,oBAAoB,UAAW1C,EAAM8B,8BAE5ClY,OAAO8Y,oBAAoB,YAAa1C,EAAM6B,8BAC9CjY,OAAO8Y,oBAAoB,WAAY1C,EAAM8B,4BAEjD,IAEA,IAAgB,IAAuB9B,GAAQ,wBAAyBvB,IAAS,SAAUxD,GACzF,IAAImF,EAAqBJ,EAAMxE,MAAM4E,mBACjCM,EAAQzF,EAAEpG,OACd,IAAIuL,IAA6D,IAAvCJ,EAAMxE,MAAMgF,uBAAtC,CACA,IAAIM,EAAcJ,EAAMI,YAEpB6B,EAAW3C,EAAMoB,cAErBpB,EAAMpE,SAAS,CACbyE,eAAgB,GAAGnR,QAAQ4R,EAAc6B,EAAW,KAAO,GAAGtB,QAAQ,GAAI,MANC,CAQ/E,GAAGrB,EAAMvT,MAAMmW,yBAEf,IAAgB,IAAuB5C,GAAQ,qCAAqC,SAAU/E,GAO5F,IANA,IAAIyF,EAAQzF,EAAEpG,OAEV8N,EAAW3C,EAAMoB,cAEjBb,EAAsB,GAEjB9G,EAAI,EAAGA,EAAIiH,EAAMmC,SAASze,OAAQqV,IAAK,CAC9C,IAAIqJ,EAAgBpC,EAAMmC,SAASE,MAAMtJ,GACrCuJ,EAActC,EAAMmC,SAASI,IAAIxJ,GACrC8G,EAAoBvX,KAAK,CACvB1E,KAAM,GAAG4K,OAAOpD,KAAKoX,MAAM,IAAMP,EAAWG,IAAkB,EAAG,KACjE7c,MAAO,GAAGiJ,OAAOpD,KAAKoX,MAAM,IAAMP,GAAYK,EAAcF,KAAmB,EAAG,MAEtF,CAEA9P,aAAagN,EAAMmD,gCAEnBnD,EAAMpE,SAAS,CACb2E,oBAAqBA,EACrBD,8BAA8B,IAGhCN,EAAMmD,+BAAiC/R,YAAW,WAChD4O,EAAMpE,SAAS,CACb0E,8BAA8B,GAElC,GAAG,IACL,IAEON,CACT,CAoFA,OAlFA,IAAaH,EAAa,CAAC,CACzBxX,IAAK,cACL5B,MAAO,WACL,IAAI2c,EAAe7H,KAAK9O,MACpBiU,EAAQ0C,EAAa1C,MACrBG,EAAcuC,EAAavC,YAC/B,YAA8B,IAAhBA,EAA8BH,EAAMiC,SAAW9B,CAC/D,GACC,CACDxY,IAAK,qBACL5B,MAAO,WACL,IAAIia,EAAQnF,KAAK9O,MAAMiU,MAEnBA,IAAUnF,KAAK8H,6BACjB9H,KAAKmF,MAAQA,EACbnF,KAAK8H,4BAA6B,EAClC3C,EAAMkB,iBAAiB,aAAcrG,KAAK+H,uBAC1C5C,EAAMkB,iBAAiB,WAAYrG,KAAKgI,mCAE5C,GACC,CACDlb,IAAK,uBACL5B,MAAO,WACD8U,KAAKmF,OAASnF,KAAK8H,6BACrB9H,KAAKmF,MAAMgC,oBAAoB,aAAcnH,KAAK+H,uBAClD/H,KAAKmF,MAAMgC,oBAAoB,WAAYnH,KAAKgI,oCAGlDvQ,aAAauI,KAAK4H,+BACpB,GACC,CACD9a,IAAK,SACL5B,MAAO,WACL,IAAI+c,EAAejI,KAAK9O,MACpBgX,EAAuBD,EAAaC,qBACpCC,EAAqBF,EAAaE,mBAClC/C,EAAc6C,EAAa7C,YAC3BgD,EAAkBH,EAAaG,gBAC/BC,EAAcrI,KAAKC,MACnB6E,EAAiBuD,EAAYvD,eAC7BE,EAAsBqD,EAAYrD,oBAClCD,EAA+BsD,EAAYtD,6BAC/C,OAAO,gBAAoB,MAAO,CAChC7D,UAAW,0BACXC,IAAKiE,EACL,aAAcgD,EACdE,KAAM,cACN,gBAAiB,EACjB,gBAAiB,IACjB,gBAAiBC,OAAOzD,EAAevZ,MAAM,KAAK,IAClDid,SAAU,EACVC,YAAazI,KAAK0I,uCAClBC,aAAc3I,KAAK0I,uCACnBE,cAAe5I,KAAK6I,mBACnB,gBAAoB,MAAO,CAC5B3H,UAAW,qBAAqBvN,OAAOuU,EAAuB,kCAAoC,KACjG,gBAAoB,MAAO,CAC5BhH,UAAW,0BACXG,MAAO,CACLtY,KAAM+b,KAENqD,GAAsB,gBAAoB,MAAO,CACnDjH,UAAW,uBACXG,MAAO,CACL3W,MAAOoa,KAEPoD,GAAwBlD,EAAoB8D,KAAI,SAAUnkB,EAAMuZ,GAClE,IAAInV,EAAOpE,EAAKoE,KACZ2B,EAAQ/F,EAAK+F,MACjB,OAAO,gBAAoB,MAAO,CAChCoC,IAAKoR,EACLgD,UAAW,yBACXG,MAAO,CACLtY,KAAMA,EACN2B,MAAOA,EACPqe,mBAAoBhE,EAA+B,MAAQ,OAGjE,KACF,KAGKT,CACT,CAtSkB,CAsShB,EAAA0E,WAQF,IAAe,IAAAC,aANa,SAA+B/X,EAAOiQ,GAChE,OAAO,gBAAoBmD,GAAa,KAAS,CAAC,EAAGpT,EAAO,CAC1DkU,YAAajE,IAEjB,ICpTA,SAAS,GAAaoC,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOnE,IAAK,OAAO,CAAO,CAAE,CAFvQ,GAA6B,OAAO,WAAkC,IAAsC9T,EAAlCsY,EAAQ,IAAgBX,GAAkB,GAAIC,EAA2B,CAAE,IAAIW,EAAY,IAAgBnE,MAAMF,YAAalU,EAAS6X,QAAQC,UAAUQ,EAAOE,UAAWD,EAAY,MAASvY,EAASsY,EAAMG,MAAMrE,KAAMoE,WAAc,OAAO,IAA2BpE,KAAMpU,EAAS,CAAG,CAOxa,IAuFA,GAvFkB,SAAUsd,GAC1B,IAAUC,EAAaD,GAEvB,IAAI1E,EAAS,GAAa2E,GAE1B,SAASA,EAAYjY,GACnB,IAAIuT,EAEJ,IAAgBzE,KAAMmJ,GAEtB1E,EAAQD,EAAOR,KAAKhE,KAAM9O,GAE1B,IAAgB,IAAuBuT,GAAQ,aAAS,GAExD,IAAgB,IAAuBA,GAAQ,8BAA8B,GAE7E,IAAgB,IAAuBA,GAAQ,QAAS,CACtDc,YAAad,EAAMvT,MAAMkY,qBAG3B,IAAgB,IAAuB3E,GAAQ,gCAAgC,SAAU/E,GACvF,IAAIyF,EAAQzF,EAAEpG,OACV4L,EAAcT,EAAMvT,MACpBmY,EAAanE,EAAYmE,WACzB5G,EAAayC,EAAYzC,WACzB2G,EAAqBlE,EAAYkE,mBAErC3E,EAAMpE,SAAS,CACbkF,YAAajD,GAAwB+G,EAAalE,EAAMiC,SAAWjC,EAAMI,YAAcJ,EAAMI,YAAaJ,EAAMiC,SAAU3E,IAAe2G,GAE7I,IAEA,IAAgB,IAAuB3E,GAAQ,0BAA0B,WACvE,IAAIU,EAAQV,EAAMvT,MAAMiU,MAEpBA,IAAUV,EAAMqD,6BAClBrD,EAAMU,MAAQA,EACdV,EAAMqD,4BAA6B,EACnC3C,EAAMkB,iBAAiB,aAAc5B,EAAM6E,8BAC3CnE,EAAMkB,iBAAiB,iBAAkB5B,EAAM6E,8BAEnD,IAEA,IAAIC,EAASrY,EAAMiU,MACfqE,EAAsBtY,EAAMkY,mBAC5BK,EAAcvY,EAAMmY,WACpBK,EAAcxY,EAAMuR,WACpB8C,EAAciE,EASlB,OAPID,IACFhE,EAAcjD,GAAwBmH,EAAcF,EAAOnC,SAAWmC,EAAOhE,YAAcgE,EAAOhE,YAAagE,EAAOnC,SAAUsC,IAGlIjF,EAAMxE,MAAQ,CACZsF,YAAaA,GAERd,CACT,CA2BA,OAzBA,IAAa0E,EAAa,CAAC,CACzBrc,IAAK,oBACL5B,MAAO,WACL8U,KAAK2J,wBACP,GACC,CACD7c,IAAK,qBACL5B,MAAO,WACL8U,KAAK2J,wBACP,GACC,CACD7c,IAAK,uBACL5B,MAAO,WACD8U,KAAKmF,OAASnF,KAAK8H,6BACrB9H,KAAKmF,MAAMgC,oBAAoB,aAAcnH,KAAKsJ,8BAClDtJ,KAAKmF,MAAMgC,oBAAoB,iBAAkBnH,KAAKsJ,8BAE1D,GACC,CACDxc,IAAK,SACL5B,MAAO,WACL,OAAO8U,KAAKC,MAAMsF,WACpB,KAGK4D,CACT,CArFkB,CAqFhB,EAAAS,eC5FF,SAAS,GAAarG,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOnE,IAAK,OAAO,CAAO,CAAE,CAFvQ,GAA6B,OAAO,WAAkC,IAAsC9T,EAAlCsY,EAAQ,IAAgBX,GAAkB,GAAIC,EAA2B,CAAE,IAAIW,EAAY,IAAgBnE,MAAMF,YAAalU,EAAS6X,QAAQC,UAAUQ,EAAOE,UAAWD,EAAY,MAASvY,EAASsY,EAAMG,MAAMrE,KAAMoE,WAAc,OAAO,IAA2BpE,KAAMpU,EAAS,CAAG,CAOxa,IA+EA,GA/Ee,SAAUsd,GACvB,IAAUW,EAAUX,GAEpB,IAAI1E,EAAS,GAAaqF,GAE1B,SAASA,EAAS3Y,GAChB,IAAIuT,EAEJ,IAAgBzE,KAAM6J,GAEtBpF,EAAQD,EAAOR,KAAKhE,KAAM9O,GAE1B,IAAgB,IAAuBuT,GAAQ,aAAS,GAExD,IAAgB,IAAuBA,GAAQ,8BAA8B,GAE7E,IAAgB,IAAuBA,GAAQ,QAAS,CACtD2C,SAAU3C,EAAMvT,MAAMiU,MAAQ7C,GAAwBmC,EAAMvT,MAAMiU,MAAMiC,SAAU3C,EAAMvT,MAAMiU,MAAMiC,SAAU3C,EAAMvT,MAAMuR,YAAcgC,EAAMvT,MAAM4Y,kBAGtJ,IAAgB,IAAuBrF,GAAQ,6BAA6B,SAAU/E,GACpF,IAAIyF,EAAQzF,EAAEpG,OACV4L,EAAcT,EAAMvT,MACpBuR,EAAayC,EAAYzC,WACzBqH,EAAkB5E,EAAY4E,gBAElCrF,EAAMpE,SAAS,CACb+G,SAAU9E,GAAwB6C,EAAMiC,SAAUjC,EAAMiC,SAAU3E,IAAeqH,GAErF,IAEA,IAAgB,IAAuBrF,GAAQ,0BAA0B,WACvE,IAAIU,EAAQV,EAAMvT,MAAMiU,MAEpBA,IAAUV,EAAMqD,6BAClBrD,EAAMU,MAAQA,EACdV,EAAMqD,4BAA6B,EACnC3C,EAAMkB,iBAAiB,iBAAkB5B,EAAMsF,2BAC/C5E,EAAMkB,iBAAiB,QAAS5B,EAAMsF,2BAE1C,IAEA,IAAIR,EAASrY,EAAMiU,MACfuE,EAAcxY,EAAMuR,WACpBuH,EAAmB9Y,EAAM4Y,gBAI7B,OAHArF,EAAMxE,MAAQ,CACZmH,SAAUmC,EAASjH,GAAwBiH,EAAOnC,SAAUmC,EAAOnC,SAAUsC,GAAeM,GAEvFvF,CACT,CA2BA,OAzBA,IAAaoF,EAAU,CAAC,CACtB/c,IAAK,oBACL5B,MAAO,WACL8U,KAAK2J,wBACP,GACC,CACD7c,IAAK,qBACL5B,MAAO,WACL8U,KAAK2J,wBACP,GACC,CACD7c,IAAK,uBACL5B,MAAO,WACD8U,KAAKmF,OAASnF,KAAK8H,6BACrB9H,KAAKmF,MAAMgC,oBAAoB,iBAAkBnH,KAAK+J,2BACtD/J,KAAKmF,MAAMgC,oBAAoB,QAASnH,KAAK+J,2BAEjD,GACC,CACDjd,IAAK,SACL5B,MAAO,WACL,OAAO8U,KAAKC,MAAMmH,QACpB,KAGKyC,CACT,CA7Ee,CA6Eb,EAAAD,eCpFF,SAAS,GAAarG,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOnE,IAAK,OAAO,CAAO,CAAE,CAFvQ,GAA6B,OAAO,WAAkC,IAAsC9T,EAAlCsY,EAAQ,IAAgBX,GAAkB,GAAIC,EAA2B,CAAE,IAAIW,EAAY,IAAgBnE,MAAMF,YAAalU,EAAS6X,QAAQC,UAAUQ,EAAOE,UAAWD,EAAY,MAASvY,EAASsY,EAAMG,MAAMrE,KAAMoE,WAAc,OAAO,IAA2BpE,KAAMpU,EAAS,CAAG,CAOxa,ICfWqe,GDePC,GAAiB,SAAU3F,GAC7B,IAAU2F,EAAgB3F,GAE1B,IAAIC,EAAS,GAAa0F,GAE1B,SAASA,IACP,IAAIzF,EAEJ,IAAgBzE,KAAMkK,GAEtB,IAAK,IAAIxF,EAAON,UAAUvb,OAAQ8b,EAAO,IAAIpX,MAAMmX,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQR,UAAUQ,GAmKzB,OAhKAH,EAAQD,EAAOR,KAAKK,MAAMG,EAAQ,CAACxE,MAAMrM,OAAOgR,IAEhD,IAAgB,IAAuBF,GAAQ,aAAS,GAExD,IAAgB,IAAuBA,GAAQ,8BAA8B,GAE7E,IAAgB,IAAuBA,GAAQ,aAAa,IAAA0F,cAE5D,IAAgB,IAAuB1F,GAAQ,uBAAwB,GAEvE,IAAgB,IAAuBA,GAAQ,aAAcA,EAAMvT,MAAMkZ,QAEzE,IAAgB,IAAuB3F,GAAQ,QAAS,CACtD4F,iBAAkB,GAAG1W,QAAQ8Q,EAAM6F,WAAa,EAAI,KAAO,GAAGxE,QAAQ,GAAI,KAC1EyE,oBAAoB,EACpBC,kBAAkB,IAGpB,IAAgB,IAAuB/F,GAAQ,oBAAoB,SAAUxC,GAC3E,IAAIkD,EAAQV,EAAMvT,MAAMiU,MAExB,IAAKV,EAAMgG,UAAUjF,QACnB,MAAO,CACLkF,cAAevF,EAAMiF,OACrBC,iBAAkB5F,EAAMxE,MAAMoK,kBAIlC,IAIIK,EACAL,EALAM,EAAgBlG,EAAMgG,UAAUjF,QAAQE,wBAExCC,EAAiBgF,EAAcjgB,MAC/Bkb,EAAc5D,GAAQC,GAAS0I,EAAc5hB,KAejD,OAXI6c,EAAc,GAChB8E,EAAgB,EAChBL,EAAmB,MACVzE,EAAc+E,EAAcjgB,OACrCggB,EAAgB,EAChBL,EAAmB,SAEnBK,EAAgB9E,EAAcD,EAC9B0E,EAAmB,GAAG1W,OAAOiS,EAAcD,EAAiB,IAAK,MAG5D,CACL+E,cAAeA,EACfL,iBAAkBA,EAEtB,IAEA,IAAgB,IAAuB5F,GAAQ,qBAAqB,SAAUxC,GAC5EA,EAAM8D,gBACR,IAEA,IAAgB,IAAuBtB,GAAQ,2BAA2B,WACxE,IAAIU,EAAQV,EAAMvT,MAAMiU,MAEpBA,EAAMiF,OAAS,GACjB3F,EAAM6F,WAAanF,EAAMiF,OACzBjF,EAAMiF,OAAS,GAEfjF,EAAMiF,OAAS3F,EAAM6F,UAEzB,IAEA,IAAgB,IAAuB7F,GAAQ,uCAAuC,SAAUxC,GAC9FA,EAAM+D,kBACN,IAAIb,EAAQV,EAAMvT,MAAMiU,MAEpByF,EAAwBnG,EAAMoG,iBAAiB5I,EAAMkE,aACrDuE,EAAgBE,EAAsBF,cACtCL,EAAmBO,EAAsBP,iBAE7ClF,EAAMiF,OAASM,EAEfjG,EAAMpE,SAAS,CACbmK,kBAAkB,EAClBH,iBAAkBA,IAGhBpI,EAAMkE,uBAAuBjE,YAC/B7T,OAAOgY,iBAAiB,YAAa5B,EAAM6B,8BAC3CjY,OAAOgY,iBAAiB,UAAW5B,EAAM8B,8BAEzClY,OAAOgY,iBAAiB,YAAa5B,EAAM6B,8BAC3CjY,OAAOgY,iBAAiB,WAAY5B,EAAM8B,4BAE9C,IAEA,IAAgB,IAAuB9B,GAAQ,gCAAgC,SAAUxC,GACnFA,aAAiBC,YACnBD,EAAM8D,iBAGR9D,EAAM+D,kBACN,IAAIb,EAAQV,EAAMvT,MAAMiU,MACpBqB,EAAkBnY,OAAOoY,eAQ7B,GANID,GAA4C,UAAzBA,EAAgBrR,MACrCqR,EAAgBE,QAGKjC,EAAMxE,MAAMuK,iBAEb,CACpB,IAAIM,EAAyBrG,EAAMoG,iBAAiB5I,GAChDyI,EAAgBI,EAAuBJ,cACvCL,EAAmBS,EAAuBT,iBAE9ClF,EAAMiF,OAASM,EAEfjG,EAAMpE,SAAS,CACbgK,iBAAkBA,GAEtB,CACF,IAEA,IAAgB,IAAuB5F,GAAQ,8BAA8B,SAAUxC,GACrFA,EAAM+D,kBAENvB,EAAMpE,SAAS,CACbmK,kBAAkB,IAGhBvI,aAAiBC,YACnB7T,OAAO8Y,oBAAoB,YAAa1C,EAAM6B,8BAC9CjY,OAAO8Y,oBAAoB,UAAW1C,EAAM8B,8BAE5ClY,OAAO8Y,oBAAoB,YAAa1C,EAAM6B,8BAC9CjY,OAAO8Y,oBAAoB,WAAY1C,EAAM8B,4BAEjD,IAEA,IAAgB,IAAuB9B,GAAQ,2BAA2B,SAAU/E,GAClF,IAAI8K,EAAmB/F,EAAMxE,MAAMuK,iBAE/BJ,EADO1K,EAAEpG,OACK8Q,QAEd3F,EAAM6F,WAAa,GAAgB,IAAXF,GAAqC,IAArB3F,EAAM6F,YAAoBF,EAAS,IAC7E3F,EAAMvT,MAAM6Z,eAGdtG,EAAM6F,WAAaF,EACfI,IAEJ/F,EAAMpE,SAAS,CACbkK,oBAAoB,EACpBF,iBAAkB,GAAG1W,QAAQyW,EAAS,EAAI,KAAO,GAAGtE,QAAQ,GAAI,OAGlErO,aAAagN,EAAMuG,sBACnBvG,EAAMuG,qBAAuBnV,YAAW,WACtC4O,EAAMpE,SAAS,CACbkK,oBAAoB,GAExB,GAAG,KACL,IAEO9F,CACT,CAiEA,OA/DA,IAAayF,EAAgB,CAAC,CAC5Bpd,IAAK,qBACL5B,MAAO,WACL,IAAIia,EAAQnF,KAAK9O,MAAMiU,MAEnBA,IAAUnF,KAAK8H,6BACjB9H,KAAKmF,MAAQA,EACbnF,KAAK8H,4BAA6B,EAClC3C,EAAMkB,iBAAiB,eAAgBrG,KAAKiL,yBAEhD,GACC,CACDne,IAAK,uBACL5B,MAAO,WACD8U,KAAKmF,OAASnF,KAAK8H,4BACrB9H,KAAKmF,MAAMgC,oBAAoB,eAAgBnH,KAAKiL,yBAGtDxT,aAAauI,KAAKgL,qBACpB,GACC,CACDle,IAAK,SACL5B,MAAO,WACL,IAAIga,EAAclF,KAAK9O,MACnBiU,EAAQD,EAAYC,MACpB+F,EAAmBhG,EAAYgG,iBAC/BC,EAAoBjG,EAAYiG,kBAChC9C,EAAcrI,KAAKC,MACnBoK,EAAmBhC,EAAYgC,iBAC/BE,EAAqBlC,EAAYkC,mBAGjCH,GADQjF,GAAS,CAAC,GACHiF,OAEnB,OAAO,gBAAoB,MAAO,CAChCjJ,IAAKnB,KAAKyK,UACVhC,YAAazI,KAAKoL,oCAClBzC,aAAc3I,KAAKoL,oCACnBxC,cAAe5I,KAAK6I,kBACpBP,KAAM,cACN,aAAc6C,EACd,gBAAiB,EACjB,gBAAiB,IACjB,gBAAiB5C,QAAiB,IAAT6B,GAActE,QAAQ,IAC/C0C,SAAU,EACVtH,UAAW,wBACV,gBAAoB,MAAO,CAC5BA,UAAW,mBACV,gBAAoB,MAAO,CAC5BA,UAAW,wBACXG,MAAO,CACLtY,KAAMshB,EACNtB,mBAAoBwB,EAAqB,MAAQ,QAEjDW,GAAoB,gBAAoB,MAAO,CACjDhK,UAAW,qBACXG,MAAO,CACL3W,MAAO2f,MAGb,KAGKH,CACT,CAjPqB,CAiPnB,EAAAlB,WAEF,ME1PA,SAAS,GAAazF,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQC,KAAKP,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOnE,IAAK,OAAO,CAAO,CAAE,CAFvQ,GAA6B,OAAO,WAAkC,IAAsC9T,EAAlCsY,EAAQ,IAAgBX,GAAkB,GAAIC,EAA2B,CAAE,IAAIW,EAAY,IAAgBnE,MAAMF,YAAalU,EAAS6X,QAAQC,UAAUQ,EAAOE,UAAWD,EAAY,MAASvY,EAASsY,EAAMG,MAAMrE,KAAMoE,WAAc,OAAO,IAA2BpE,KAAMpU,EAAS,CAAG,EDNxa,SAAWqe,GACTA,EAAsB,aAAI,eAC1BA,EAA2B,kBAAI,oBAC/BA,EAAsB,aAAI,eAC1BA,EAAkB,SAAI,WACtBA,EAA6B,oBAAI,sBACjCA,EAAuB,cAAI,gBAC3BA,EAAyB,gBAAI,kBAC7BA,EAAc,KAAI,OAClBA,EAAgB,OAAI,QACrB,CAVD,CAUGA,KAAYA,GAAU,CAAC,ICmB1B,IAAIoB,GAAgB,SAAU9G,GAC5B,IAAU8G,EAAe9G,GAEzB,IAAIC,EAAS,GAAa6G,GAE1B,SAASA,IACP,IAAI5G,EAEJ,IAAgBzE,KAAMqL,GAEtB,IAAK,IAAI3G,EAAON,UAAUvb,OAAQ8b,EAAO,IAAIpX,MAAMmX,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQR,UAAUQ,GAsZzB,OAnZAH,EAAQD,EAAOR,KAAKK,MAAMG,EAAQ,CAACxE,MAAMrM,OAAOgR,IAEhD,IAAgB,IAAuBF,GAAQ,SAAS,IAAA0F,cAExD,IAAgB,IAAuB1F,GAAQ,eAAe,IAAA0F,cAE9D,IAAgB,IAAuB1F,GAAQ,aAAa,IAAA0F,cAE5D,IAAgB,IAAuB1F,GAAQ,aAAcA,EAAMvT,MAAMkZ,QAEzE,IAAgB,IAAuB3F,GAAQ,qBAAiB,GAEhE,IAAgB,IAAuBA,GAAQ,4BAAwB,GAEvE,IAAgB,IAAuBA,GAAQ,sCAAkC,GAEjF,IAAgB,IAAuBA,GAAQ,cAAc,SAAU/E,GACrEA,EAAEsG,kBACF,IAAIb,EAAQV,EAAMU,MAAMK,SAEnBL,EAAMmG,QAAUnG,EAAMoG,QAAUpG,EAAME,IACzCZ,EAAM+G,mBACIrG,EAAMmG,QAChBnG,EAAMsG,OAEV,IAEA,IAAgB,IAAuBhH,GAAQ,oBAAoB,WACjE,IAAIiH,EAAcjH,EAAMU,MAAMK,QAAQmG,OAElCD,EACFA,EAAYjW,KAAK,MAAMM,OAAM,SAAUrH,GACrC,IAAIkd,EAAcnH,EAAMvT,MAAM0a,YAC9BA,GAAeA,EAAY,IAAI1X,MAAMxF,GACvC,IAEA+V,EAAMoH,aAEV,IAEA,IAAgB,IAAuBpH,GAAQ,aAAa,WAC1D,IAAIU,EAAQV,EAAMU,MAAMK,QACxB,QAAKL,KACGA,EAAMmG,SAAWnG,EAAMoG,MACjC,IAEA,IAAgB,IAAuB9G,GAAQ,cAAc,SAAU/E,GACrE+E,EAAMoH,cAENpH,EAAMvT,MAAM4a,QAAUrH,EAAMvT,MAAM4a,OAAOpM,EAC3C,IAEA,IAAgB,IAAuB+E,GAAQ,eAAe,SAAU/E,GACjE+E,EAAMU,QAEXV,EAAMoH,cAENpH,EAAMvT,MAAM6a,SAAWtH,EAAMvT,MAAM6a,QAAQrM,GAC7C,IAEA,IAAgB,IAAuB+E,GAAQ,eAAe,SAAU/E,GACjE+E,EAAMU,QAEXV,EAAMoH,cAENpH,EAAMvT,MAAM8a,SAAWvH,EAAMvT,MAAM8a,QAAQtM,GAC7C,IAEA,IAAgB,IAAuB+E,GAAQ,eAAe,SAAU/E,GACtE+E,EAAMvT,MAAM+a,SAAWxH,EAAMvT,MAAM+a,QAAQvM,EAC7C,IAEA,IAAgB,IAAuB+E,GAAQ,2BAA2B,WACxE,IAAIU,EAAQV,EAAMU,MAAMK,QAEpBL,EAAMiF,OAAS,GACjB3F,EAAM6F,WAAanF,EAAMiF,OACzBjF,EAAMiF,OAAS,GAEfjF,EAAMiF,OAAS3F,EAAM6F,UAEzB,IAEA,IAAgB,IAAuB7F,GAAQ,oBAAoB,WACjEA,EAAMoH,aACR,IAEA,IAAgB,IAAuBpH,GAAQ,yBAAyB,WACtEA,EAAMU,MAAMK,QAAQ0G,MAAQzH,EAAMU,MAAMK,QAAQ0G,KAEhDzH,EAAMoH,aACR,IAEA,IAAgB,IAAuBpH,GAAQ,qBAAqB,WAClE,IAAIS,EAAcT,EAAMvT,MACpBib,EAAoBjH,EAAYiH,kBAChCC,EAAmBlH,EAAYkH,iBAC/BC,EAAWF,EAAkBG,UAAYF,EAE7C3H,EAAM8H,aAAaF,EACrB,IAEA,IAAgB,IAAuB5H,GAAQ,sBAAsB,WACnE,IAAIoC,EAAepC,EAAMvT,MACrBib,EAAoBtF,EAAasF,kBACjCC,EAAmBvF,EAAauF,iBAChCC,EAAWF,EAAkBK,SAAWJ,EAE5C3H,EAAM8H,YAAYF,EACpB,IAEA,IAAgB,IAAuB5H,GAAQ,eAAe,SAAUxJ,GACtE,IAAIkK,EAAQV,EAAMU,MAAMK,QACpB4B,EAAWjC,EAAMiC,SACjBqF,EAAWtH,EAAMI,YAErB,GAAIJ,EAAM6B,aAAe7B,EAAM8B,cAAgB9B,EAAM6B,aAAe7B,EAAM+B,gBAAkBxE,SAAS0E,KAAc1E,SAAS+J,GAC1H,OAAOhI,EAAMvT,MAAM4V,0BAA4BrC,EAAMvT,MAAM4V,2BAG7D,IAAIvB,EAAckH,EAAWxR,EAAO,IAEhCsK,EAAc,GAChBJ,EAAMI,YAAc,EACpBA,EAAc,GACLA,EAAc6B,GACvBjC,EAAMI,YAAc6B,EACpB7B,EAAc6B,GAEdjC,EAAMI,YAAcA,CAExB,IAEA,IAAgB,IAAuBd,GAAQ,iBAAiB,SAAU2F,GACxE,IAAIsC,EAAYjI,EAAMU,MAAMK,QAAQ4E,OAASA,EACzCsC,EAAY,EAAGA,EAAY,EAAWA,EAAY,IAAGA,EAAY,GACrEjI,EAAMU,MAAMK,QAAQ4E,OAASsC,CAC/B,IAEA,IAAgB,IAAuBjI,GAAQ,iBAAiB,SAAU/E,GACxE,GAAI+E,EAAMvT,MAAMyb,sBACd,OAAQjN,EAAE5S,KACR,IAAK,IACC4S,EAAEpG,SAAWmL,EAAMmI,UAAUpH,SAAW9F,EAAEpG,SAAWmL,EAAMW,YAAYI,UACzE9F,EAAEqG,iBAEFtB,EAAMoI,WAAWnN,IAGnB,MAEF,IAAK,YACH+E,EAAMqI,oBAEN,MAEF,IAAK,aACHrI,EAAMsI,qBAEN,MAEF,IAAK,UACHrN,EAAEqG,iBAEFtB,EAAMuI,cAAcvI,EAAMvT,MAAM+b,gBAEhC,MAEF,IAAK,YACHvN,EAAEqG,iBAEFtB,EAAMuI,eAAevI,EAAMvT,MAAM+b,gBAEjC,MAEF,IAAK,IACHxI,EAAMyI,wBAEN,MAEF,IAAK,IACHzI,EAAM0I,0BAKd,IAEA,IAAgB,IAAuB1I,GAAQ,mBAAmB,SAAU2I,GAC1E,OAAOA,EAAQtE,KAAI,SAAUuE,EAAMnP,GACjC,OAAOuG,EAAM6I,eAAeD,EAAMnP,EACpC,GACF,IAEA,IAAgB,IAAuBuG,GAAQ,kBAAkB,SAAU4I,EAAMvgB,GAC/E,IAAI+a,EAAepD,EAAMvT,MACrBkY,EAAqBvB,EAAauB,mBAClC/B,EAAyBQ,EAAaR,uBACtCa,EAAuBL,EAAaK,qBACpCC,EAAqBN,EAAaM,mBAClC+C,EAAmBrD,EAAaqD,iBAChCpB,EAAkBjC,EAAaiC,gBAC/ByD,EAAc1F,EAAa0F,YAC3BC,EAAmB3F,EAAa2F,iBAChCC,EAAkB5F,EAAa4F,gBAC/BC,EAAc7F,EAAa6F,YAC3B5G,EAA2Be,EAAaf,yBACxC6G,EAAmB9F,EAAa8F,iBAChCC,EAA2B/F,EAAa+F,yBACxCC,EAAuBhG,EAAagG,qBACpCC,EAAQjG,EAAaiG,MACrBrL,EAAaoF,EAAapF,WAC1BsL,EAAalG,EAAauC,OAC1B4D,EAAWnG,EAAaqE,KACxB+B,EAAMpG,EAAaoG,IACnBC,EAAiBrG,EAAaqG,eAElC,OAAQb,GACN,KAAKpD,GAAQkE,aACX,OAAO,gBAAoB,MAAO,CAChCrhB,IAAKA,EACLuF,GAAI,oBACJ6O,UAAW,+BACV,gBAAoB,GAAa,CAClCiE,MAAOV,EAAMU,MAAMK,QACnB6D,YAAY,EACZD,mBAAoBA,EACpB3G,WAAYA,KAGhB,KAAKwH,GAAQmE,kBACX,OAAO,gBAAoB,MAAO,CAChCthB,IAAKA,EACLuF,GAAI,yBACJ6O,UAAW,oCACV,gBAAoB,GAAa,CAClCiE,MAAOV,EAAMU,MAAMK,QACnB6D,YAAY,EACZD,mBAAoBA,EACpB3G,WAAYA,KAGhB,KAAKwH,GAAQoE,aACX,OAAO,gBAAoB,GAAa,CACtCvhB,IAAKA,EACLqU,IAAKsD,EAAMW,YACXD,MAAOV,EAAMU,MAAMK,QACnB6B,uBAAwBA,EACxBa,qBAAsBA,EACtBC,mBAAoBA,EACpBpB,OAAQkH,GAAOA,EAAIlH,OACnBD,yBAA0BA,EAC1BxB,YAAa2I,GAAOA,EAAI3I,YACxB8C,gBAAiB8F,EAAeI,kBAGpC,KAAKrE,GAAQsE,SACX,OAAO,gBAAoB,MAAO,CAChCzhB,IAAKA,EACLoU,UAAW,6BACV+M,GAAOA,EAAI3I,YAAchD,GAAwB2L,EAAI3I,YAAa2I,EAAI3I,YAAab,EAAMvT,MAAMuR,YAAc,gBAAoB,GAAU,CAC5I0C,MAAOV,EAAMU,MAAMK,QACnBsE,gBAAiBA,EACjBrH,WAAYA,KAGhB,KAAKwH,GAAQuE,oBACX,OAAO,gBAAoB,MAAO,CAChC1hB,IAAKA,EACLoU,UAAW,4BACVuD,EAAMgK,gBAAgBb,IAE3B,KAAK3D,GAAQyE,cAET,IAEIC,EAFAC,EAAYnK,EAAMmK,YActB,OATED,EADEC,EACWrB,EAAY9B,MAAQ8B,EAAY9B,MAAQ,gBAAoB5J,GAAM,CAC7E5V,KAAM,OAGKshB,EAAY5B,KAAO4B,EAAY5B,KAAO,gBAAoB9J,GAAM,CAC3E5V,KAAM,OAIH,gBAAoB,MAAO,CAChCa,IAAKA,EACLoU,UAAW,sBACVsM,GAAoB,gBAAoB,SAAU,CACnD,aAAcU,EAAeW,SAC7B3N,UAAW,+DACX/L,KAAM,SACN1M,QAASglB,GACRF,EAAYsB,SAAWtB,EAAYsB,SAAW,gBAAoBhN,GAAM,CACzE5V,KAAM,QACH0hB,GAAoB,gBAAoB,SAAU,CACrD,aAAcO,EAAeY,OAC7B5N,UAAW,iEACX/L,KAAM,SACN1M,QAASgc,EAAMqI,mBACdS,EAAYuB,OAASvB,EAAYuB,OAAS,gBAAoBjN,GAAM,CACrE5V,KAAM6iB,GAAA,KACH,gBAAoB,SAAU,CACjC,aAAcF,EAAYV,EAAezC,MAAQyC,EAAevC,KAChEzK,UAAW,qEACX/L,KAAM,SACN1M,QAASgc,EAAMoI,YACd8B,GAAahB,GAAoB,gBAAoB,SAAU,CAChE,aAAcO,EAAe1B,QAC7BtL,UAAW,kEACX/L,KAAM,SACN1M,QAASgc,EAAMsI,oBACdQ,EAAYf,QAAUe,EAAYf,QAAU,gBAAoB3K,GAAM,CACvE5V,KAAM,QACHuhB,GAAoB,gBAAoB,SAAU,CACrD,aAAcU,EAAea,KAC7B7N,UAAW,+DACX/L,KAAM,SACN1M,QAASilB,GACRH,EAAYwB,KAAOxB,EAAYwB,KAAO,gBAAoBlN,GAAM,CACjE5V,KAAM,SAIZ,KAAKge,GAAQ+E,gBACX,OAAO,gBAAoB,MAAO,CAChCliB,IAAKA,EACLoU,UAAW,wBACVuD,EAAMgK,gBAAgBZ,IAE3B,KAAK5D,GAAQgF,KAET,IACIC,EADAhD,EAAOzH,EAAMU,MAAMK,QAAUf,EAAMU,MAAMK,QAAQ0G,KAAO8B,EAa5D,OATEkB,EADEhD,EACSqB,EAAYrB,KAAOqB,EAAYrB,KAAO,gBAAoBrK,GAAM,CACzE5V,KAAMkjB,GAAA,IAGG5B,EAAY6B,QAAU7B,EAAY6B,QAAU,gBAAoBvN,GAAM,CAC/E5V,KAAM,OAIH,gBAAoB,SAAU,CACnCa,IAAKA,EACL,aAAcof,EAAOgC,EAAehC,KAAOgC,EAAekB,QAC1DlO,UAAW,uCACX/L,KAAM,SACN1M,QAASgc,EAAMyI,uBACdgC,GAGP,KAAKjF,GAAQoF,OAET,IAIIC,EAHAC,GADO9K,EAAMU,MAAMK,SAAW,CAAC,GACZ4E,OACnBA,OAAyB,IAAhBmF,EAAyBzB,EAAQ,EAAIC,EAAawB,EAc/D,OATED,EADElF,EACWmD,EAAYnD,OAASmD,EAAYnD,OAAS,gBAAoBvI,GAAM,CAC/E5V,KAAM,OAGKshB,EAAYnD,OAASmD,EAAYiC,WAAa,gBAAoB3N,GAAM,CACnF5V,KAAM,OAIH,gBAAoB,MAAO,CAChCa,IAAKA,EACLoU,UAAW,yBACV,gBAAoB,SAAU,CAC/B,aAAckJ,EAAS8D,EAAe9D,OAAS8D,EAAesB,WAC9D/mB,QAASgc,EAAM0I,wBACfhY,KAAM,SACN+L,UAAW,wCACVoO,GAAa,gBAAoBG,GAAW,CAC7CtK,MAAOV,EAAMU,MAAMK,QACnB4E,OAAQA,EACRW,aAActG,EAAMiL,iBACpBxE,iBAAkBA,EAClBC,kBAAmB+C,EAAeyB,iBAIxC,QACE,OAAK,IAAAC,gBAAevC,GAIbA,EAAKvgB,IAAMugB,GAAO,IAAAwC,cAAaxC,EAAM,CAC1CvgB,IAAKA,IAJE,KAOf,IAEO2X,CACT,CA0IA,OAxIA,IAAa4G,EAAe,CAAC,CAC3Bve,IAAK,oBACL5B,MAAO,WACL,IAAI4kB,EAAS9P,KAEbA,KAAK6L,cACL,IAAI1G,EAAQnF,KAAKmF,MAAMK,QAEnBxF,KAAK9O,MAAM4c,MACb3I,EAAMiF,OAAS,EAEfjF,EAAMiF,OAASpK,KAAKsK,WAGtBnF,EAAMkB,iBAAiB,SAAS,SAAU3G,GACxCoQ,EAAO5e,MAAM6e,SAAWD,EAAO5e,MAAM6e,QAAQrQ,EAC/C,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAM8e,WAAaF,EAAO5e,MAAM8e,UAAUtQ,EACnD,IACAyF,EAAMkB,iBAAiB,kBAAkB,SAAU3G,GACjDoQ,EAAO5e,MAAM+e,kBAAoBH,EAAO5e,MAAM+e,iBAAiBvQ,EACjE,IACAyF,EAAMkB,iBAAiB,OAAQrG,KAAKkQ,YACpC/K,EAAMkB,iBAAiB,QAASrG,KAAKmQ,aACrChL,EAAMkB,iBAAiB,QAASrG,KAAKoQ,aACrCjL,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMmf,WAAaP,EAAO5e,MAAMmf,UAAU3Q,EACnD,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMof,WAAaR,EAAO5e,MAAMof,UAAU5Q,EACnD,IACAyF,EAAMkB,iBAAiB,UAAU,SAAU3G,GACzCoQ,EAAO5e,MAAMqf,UAAYT,EAAO5e,MAAMqf,SAAS7Q,EACjD,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMsf,WAAaV,EAAO5e,MAAMsf,UAAU9Q,EACnD,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMuf,WAAaX,EAAO5e,MAAMuf,UAAU/Q,EACnD,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMwf,WAAaZ,EAAO5e,MAAMwf,UAAUhR,EACnD,IACAyF,EAAMkB,iBAAiB,WAAW,SAAU3G,GAC1CoQ,EAAO5e,MAAMyf,WAAab,EAAO5e,MAAMyf,UAAUjR,EACnD,IACAyF,EAAMkB,iBAAiB,aAAa,SAAU3G,GAC5CoQ,EAAO5e,MAAM0f,aAAed,EAAO5e,MAAM0f,YAAYlR,EACvD,IACAyF,EAAMkB,iBAAiB,kBAAkB,SAAU3G,GACjDoQ,EAAO5e,MAAM2f,kBAAoBf,EAAO5e,MAAM2f,iBAAiBnR,EACjE,IACAyF,EAAMkB,iBAAiB,cAAc,SAAU3G,GAC7CoQ,EAAO5e,MAAM4f,cAAgBhB,EAAO5e,MAAM4f,aAAapR,EACzD,IACAyF,EAAMkB,iBAAiB,QAASrG,KAAK+Q,aACrC5L,EAAMkB,iBAAiB,aAAcnD,IAAS,SAAUxD,GACtDoQ,EAAO5e,MAAM8f,UAAYlB,EAAO5e,MAAM8f,SAAStR,EACjD,GAAGM,KAAK9O,MAAM+f,iBACd9L,EAAMkB,iBAAiB,gBAAgB,SAAU3G,GAC/CoQ,EAAO5e,MAAMggB,gBAAkBpB,EAAO5e,MAAMggB,eAAexR,EAC7D,IACAyF,EAAMkB,iBAAiB,aAAa,SAAU3G,GAC5C,IAAIuO,EAAM6B,EAAO5e,MAAM+c,IACvBA,GAAOA,EAAIkD,YAAclD,EAAIkD,WAAWzR,EAC1C,GACF,GACC,CACD5S,IAAK,qBACL5B,MAAO,SAA4BkmB,GACjC,IAAInJ,EAAejI,KAAK9O,MACpBmU,EAAM4C,EAAa5C,IACnBgM,EAAyBpJ,EAAaoJ,uBAEtCD,EAAU/L,MAAQA,IAChBgM,EACFrR,KAAKwL,mBAELxL,KAAK6L,cAGX,GACC,CACD/e,IAAK,SACL5B,MAAO,WACL,IAAIomB,EAAetR,KAAK9O,MACpBgQ,EAAYoQ,EAAapQ,UACzBmE,EAAMiM,EAAajM,IACnB2I,EAAWsD,EAAapF,KACxB3M,EAAU+R,EAAa/R,QACvBgS,EAAWD,EAAaC,SACxBC,EAAcF,EAAaE,YAC3BC,EAAaH,EAAaG,WAC1BC,EAASJ,EAAaI,OACtBC,EAASL,EAAaK,OACtB5P,EAASuP,EAAavP,OACtB6P,EAA2BN,EAAaM,yBACxCC,EAAwBP,EAAaO,sBACrCpsB,EAAW6rB,EAAa7rB,SACxB4b,EAAQiQ,EAAajQ,MACrB6M,EAAiBoD,EAAapD,eAC9BhC,EAAOlM,KAAKmF,MAAMK,QAAUxF,KAAKmF,MAAMK,QAAQ0G,KAAO8B,EACtD8D,EAAY5F,EAAO,gBAAkB,iBACrC6F,EAAiB/R,KAAK4O,YAAc,4BAA8B,2BACtE,OAAO,gBAAoB,MAAO,CAChCtG,KAAM,QACNE,SAAU,EACV,aAAc0F,EAAe8D,OAC7B9Q,UAAW,kBAAkBvN,OAAOme,EAAW,KAAKne,OAAOoe,EAAgB,KAAKpe,OAAOuN,GACvF+Q,UAAWjS,KAAKkS,cAChB/Q,IAAKnB,KAAK4M,UACVvL,MAAOA,GACN,gBAAoB,QAAS,CAC9BgE,IAAKA,EACL8M,UAAU,EACVjG,KAAMA,EACNqF,SAAUA,EACVhS,QAASA,EACTiS,YAAaA,EACbC,WAAYA,EACZtQ,IAAKnB,KAAKmF,OACT1f,GAAWisB,GAAU,gBAAoB,MAAO,CACjDxQ,UAAW,eACVwQ,GAAS,gBAAoB,MAAO,CACrCxQ,UAAW,aAAavN,OAAOmO,GAAuBC,KACrD,gBAAoB,MAAO,CAC5Bb,UAAW,yBACVlB,KAAKyO,gBAAgBmD,IAA4B,gBAAoB,MAAO,CAC7E1Q,UAAW,yBACVlB,KAAKyO,gBAAgBoD,KAA0BF,GAAU,gBAAoB,MAAO,CACrFzQ,UAAW,eACVyQ,GACL,KAGKtG,CACT,CA7iBoB,CA6iBlB,EAAArC,WAEF,IAAgBqC,GAAe,eAAgB,CAC7CkG,UAAU,EACVF,wBAAwB,EACxBJ,eAAgB,IAChB7E,iBAAkB,IAClBD,kBAAmB,CAAC,EACpBc,eAAgB,GAChBf,MAAM,EACN4B,OAAO,EACPvO,QAAS,OACT8H,uBAAwB,GACxB+B,mBAAoB,QACpBU,gBAAiB,QACjBrH,WAAY,OACZ2H,OAAQ,EACRlJ,UAAW,GACXyM,kBAAkB,EAClBH,kBAAkB,EAClBtF,sBAAsB,EACtBC,oBAAoB,EACpB+C,kBAAkB,EAClBqC,YAAa,CAAC,EACdqE,yBAA0B,CAAC3H,GAAQkE,aAAclE,GAAQoE,aAAcpE,GAAQsE,UAC/EsD,sBAAuB,CAAC5H,GAAQuE,oBAAqBvE,GAAQyE,cAAezE,GAAQ+E,iBACpFpB,yBAA0B,CAAC3D,GAAQgF,MACnCpB,qBAAsB,CAAC5D,GAAQoF,QAC/BtN,OAAQ,UACR4K,uBAAuB,EACvBuB,eAAgB,CACd8D,OAAQ,eACR1D,gBAAiB,yBACjBqB,cAAe,iBACfhE,KAAM,OACNF,MAAO,QACPqD,OAAQ,SACRtC,QAAS,UACTqC,SAAU,WACVE,KAAM,OACN7C,KAAM,eACNkD,QAAS,cACThF,OAAQ,OACRoF,WAAY,YAIhB,U,wBCzmBe,SAAS4C,GAAOztB,GAMV,IANW,UAC9B0tB,EAAS,MACTC,EAAK,MACLC,EAAK,SACLC,EAAQ,IACRC,GACgB9tB,EAChB,OACEiB,EAAAA,GAAAA,KAACJ,GAAO,CAAAC,UACNF,EAAAA,GAAAA,MAACmtB,GAAW,CAAAjtB,SAAA,EACVG,EAAAA,GAAAA,KAAC+sB,GAAU,CAAAltB,UACTG,EAAAA,GAAAA,KAACgtB,EAAAA,EAAW,CAACN,MAAOA,EAAOG,IAAKA,EAAKI,QAAQ,YAE/CttB,EAAAA,GAAAA,MAACutB,GAAI,CAAArtB,SAAA,EACHG,EAAAA,GAAAA,KAACwD,GAAK,CAAA3D,SAAE8sB,KACR3sB,EAAAA,GAAAA,KAACmtB,GAAQ,CAAAttB,SAAE+sB,KACX5sB,EAAAA,GAAAA,KAACotB,GAAW,CACVpF,yBAA0B,GAC1B2D,UAAQ,EACRlM,IAAKgN,WAMjB,CAEA,MAAM7sB,GAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,mBAAAC,YAAA,gBAAVJ,CAAU,2RAMtBM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAKNF,GAAAA,GAAMG,QAOJ4rB,GAAcrsB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAVJ,CAAU,oKAUxBssB,GAAatsB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,sBAAAC,YAAA,gBAAVJ,CAAU,2IAMzBM,GAAAA,GAAME,QASJisB,GAAOzsB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,gBAAAC,YAAA,gBAAVJ,CAAU,6HAMjBM,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAKNsC,GAAQ/C,EAAAA,QAAOoD,GAAElD,WAAA,CAAAC,YAAA,iBAAAC,YAAA,gBAATJ,CAAS,kHAKnBM,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAIJisB,GAAW1sB,EAAAA,QAAOwD,GAAEtD,WAAA,CAAAC,YAAA,oBAAAC,YAAA,gBAATJ,CAAS,6CACtBM,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QC/HV,IAAIosB,GACJ,SAASC,KAAiS,OAApRA,GAAW5oB,OAAOiC,OAASjC,OAAOiC,OAAO8P,OAAS,SAAUhD,GAAU,IAAK,IAAI4E,EAAI,EAAGA,EAAIkG,UAAUvb,OAAQqV,IAAK,CAAE,IAAIrL,EAASuR,UAAUlG,GAAI,IAAK,IAAIpR,KAAO+F,EAActI,OAAOuZ,UAAUsP,eAAepP,KAAKnR,EAAQ/F,KAAQwM,EAAOxM,GAAO+F,EAAO/F,GAAU,CAAE,OAAOwM,CAAQ,EAAU6Z,GAAS9O,MAAMrE,KAAMoE,UAAY,CAGlV,ICJI,GDIAiP,GAAe,SAAsBniB,EAAOiQ,GAC9C,OAAoB,gBAAoB,MAAOgS,GAAS,CACtDG,KAAM,OACNC,MAAO,6BACP1hB,QAAS,YACTsP,IAAKA,GACJjQ,GAAQgiB,KAAUA,GAAqB,gBAAoB,OAAQ,CACpEM,QAAS,GACTC,EAAG,mpBACHH,KAAM,aAEV,EACII,IAA0B,IAAAzK,YAAWoK,IACrCM,IAAoB,IAAAC,MAAKF,IChB7B,SAAS,KAAiS,OAApR,GAAWnpB,OAAOiC,OAASjC,OAAOiC,OAAO8P,OAAS,SAAUhD,GAAU,IAAK,IAAI4E,EAAI,EAAGA,EAAIkG,UAAUvb,OAAQqV,IAAK,CAAE,IAAIrL,EAASuR,UAAUlG,GAAI,IAAK,IAAIpR,KAAO+F,EAActI,OAAOuZ,UAAUsP,eAAepP,KAAKnR,EAAQ/F,KAAQwM,EAAOxM,GAAO+F,EAAO/F,GAAU,CAAE,OAAOwM,CAAQ,EAAU,GAAS+K,MAAMrE,KAAMoE,UAAY,CAGlV,IAAIyP,GAAgB,SAAuB3iB,EAAOiQ,GAChD,OAAoB,gBAAoB,MAAO,GAAS,CACtDmS,KAAM,OACNC,MAAO,6BACP1hB,QAAS,YACTsP,IAAKA,GACJjQ,GAAQ,KAAU,GAAqB,gBAAoB,OAAQ,CACpEsiB,QAAS,GACTC,EAAG,ooBACHH,KAAM,aAEV,EACI,IAA0B,IAAArK,YAAW4K,IACrC,IAAoB,IAAAD,MAAK,I,gGCWd,SAASE,GAAWnvB,GAc/B,IAADovB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAdiC,gBAClCC,EAAe,KACfC,EAAI,YACJC,EAAW,SACX7vB,EAAQ,MACRsO,EAAK,aACLrO,GAQDF,EACC,MAAM,QAAE+vB,IAAYC,EAAAA,EAAAA,YAAWC,EAAAA,KAEzB,OAAE9tB,IAAW6tB,EAAAA,EAAAA,YAAWE,EAAAA,KACxB,EAACC,IAAY9vB,EAAAA,EAAAA,UAAS,KACtB,EAAC+vB,EAAK,EAACC,IAAWhwB,EAAAA,EAAAA,UAAiB,IAEnCoI,GAAmB6nB,EAAAA,EAAAA,UACvB,MACEC,WAAY,CACV,CAACC,EAAAA,OAAOC,WAAY,CAACC,EAAM5vB,KAClBG,EAAAA,GAAAA,KAAC0vB,GAAS,CAAA7vB,SAAEA,IAErB,CAAC0vB,EAAAA,OAAOI,IAAK,KACJ3vB,EAAAA,GAAAA,KAAC4vB,GAAO,CAACC,OAAQlB,EAAgB3vB,GAAU,MAEpD,CAACuwB,EAAAA,OAAOO,SAAU,CAACL,EAAM5vB,KAAaG,EAAAA,GAAAA,KAAC+vB,GAAS,CAAAlwB,SAAEA,IAClD,CAAC0vB,EAAAA,OAAOS,SAAU,CAACP,EAAM5vB,KAAaG,EAAAA,GAAAA,KAACiwB,GAAO,CAAApwB,SAAEA,IAChD,CAAC0vB,EAAAA,OAAOW,OAAQ,CAACT,EAAM5vB,KACrBG,EAAAA,GAAAA,KAACmwB,GAAK,CAACN,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAAEA,IAElD,CAACuwB,EAAAA,QAAQC,WAAY,CAACZ,EAAM5vB,KAC1B,MACEuF,MAAM,IAAEuK,IACN8f,EAEJ,MAAmB,iBAAR9f,EAAyB,MAGlC3P,EAAAA,GAAAA,KAACswB,GAAI,CACHlwB,KAAMuP,EACN+D,OAAQ/D,EAAI4gB,SAAS,QAAU,SAAW,QAC1CV,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAEtCA,GACI,EAGX,CAACuwB,EAAAA,QAAQI,gBAAiBf,IAAS,IAADgB,EAAAC,EAChC,MACEtrB,MACEsO,QACEid,KAAK,GAAElkB,MAGTgjB,EACEmB,EAAQhC,SAAgB,QAAZ6B,EAAJ7B,EAAMiC,kBAAU,IAAAJ,GAAY,QAAZC,EAAhBD,EAAkBI,kBAAU,IAAAH,OAAxB,EAAJA,EAA8BhgB,QAC1CogB,IAASA,aAAK,EAALA,EAAOC,iBAAkBtkB,IAClC,GACF,GAAImkB,EAAO,CAAC,IAADI,EACT,GAAI,SAAUJ,GAAwB,UAAfA,EAAMrhB,MAAoBqhB,EAAMxvB,KACrD,OAAOpB,EAAAA,GAAAA,KAACixB,GAAW,CAAApxB,SAAE+wB,EAAMxvB,OAE7B,GAAI,SAAUwvB,GAAwB,QAAfA,EAAMrhB,KAC3B,OAAOvP,EAAAA,GAAAA,KAACkxB,GAAS,CAAArxB,SAAE+wB,EAAMxvB,OAG3B,MAAM+vB,EAAa,eAAgBP,EAC7BQ,EAAc,gBAAiBR,EAE/BS,EAAY,cAAeT,IAAwB,QAAnBI,EAAIJ,EAAMS,iBAAS,IAAAL,OAAA,EAAfA,EAAiBK,WAC3D,OACE1xB,EAAAA,GAAAA,MAAC2xB,GAAa,CAAAzxB,SAAA,EACZF,EAAAA,GAAAA,MAAC4xB,GAAiB,CAAA1xB,SAAA,EAChBG,EAAAA,GAAAA,KAACwxB,GAAM,CAAC3B,OAAQlB,EAAgB3vB,GAAU,OACzCqyB,GACDrxB,EAAAA,GAAAA,KAACyxB,GAAM,CAAC5B,OAAQlB,EAAgB3vB,GAAU,WAE5CgB,EAAAA,GAAAA,KAAC0xB,GAAuB,CACtB7B,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAEtCsxB,KAEHnxB,EAAAA,GAAAA,KAAC2xB,GAAwB,CACvB9B,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAEtCuxB,MAIT,GAEF,CAAC7B,EAAAA,OAAOiB,gBAAiBf,IAAS,IAADmC,EAAAC,EAAAC,EAAAC,EAAAC,EAC/B,MACE5sB,MACEsO,QACEid,KAAK,GAAElkB,MAGTgjB,EACEmB,EAGA,QAHKgB,EACThD,SAAgB,QAAZiD,EAAJjD,EAAMiC,kBAAU,IAAAgB,GAAY,QAAZC,EAAhBD,EAAkBhB,kBAAU,IAAAiB,OAAxB,EAAJA,EAA8BphB,QAC5BogB,IAASA,aAAK,EAALA,EAAOC,iBAAkBtkB,IAClC,UAAE,IAAAmlB,EAAAA,EAAI,KACJK,EAAarD,SAAgB,QAAZmD,EAAJnD,EAAMiC,kBAAU,IAAAkB,GAAY,QAAZC,EAAhBD,EAAkBlB,kBAAU,IAAAmB,OAAxB,EAAJA,EAA8B5jB,QAAQwiB,GACzD,GAAIA,EAAO,CAAC,IAADsB,EAsDPC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA0EqDC,EAiBrDC,EAAAC,EAAAC,EAhJF,GAAI,SAAU1C,GAAwB,UAAfA,EAAMrhB,KAC3B,OAAOvP,EAAAA,GAAAA,KAACixB,GAAW,CAAApxB,SAAE+wB,EAAMxvB,OAE7B,GAAI,SAAUwvB,GAAwB,QAAfA,EAAMrhB,KAC3B,OAAOvP,EAAAA,GAAAA,KAACkxB,GAAS,CAAArxB,SAAE+wB,EAAMxvB,OAE3B,GAAIwvB,GAAS,eAAgBA,EAC3B,OAAO5wB,EAAAA,GAAAA,KAAA,KAAGyM,GAAImkB,EAAM2C,YAAc,eAEpC,GAAI,cAAe3C,GAASA,EAAMS,UAAW,CAC3C,MAAM,WAAEF,EAAU,YAAEC,GAAgBR,GAC9B,UAAES,GAAcT,EAAMS,UAC5B,OACE1xB,EAAAA,GAAAA,MAAC2xB,GAAa,CAAAzxB,SAAA,EACZF,EAAAA,GAAAA,MAAC4xB,GAAiB,CAAA1xB,SAAA,EAChBG,EAAAA,GAAAA,KAACwxB,GAAM,CAAC3B,OAAQlB,EAAgB3vB,GAAU,OACzCqyB,GACDrxB,EAAAA,GAAAA,KAACyxB,GAAM,CAAC5B,OAAQlB,EAAgB3vB,GAAU,WAE5CgB,EAAAA,GAAAA,KAAC0xB,GAAuB,CACtB7B,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAEtCsxB,KAEHnxB,EAAAA,GAAAA,KAAC2xB,GAAwB,CACvB9B,OAAQlB,EAAgB3vB,GAAU,KAAKa,SAEtCuxB,MAIT,CACA,GAAI,mBAAoBR,GAASA,EAAM4C,eAAgB,CAAC,IAADC,EAAAC,EACrD,MAAMC,EAAa/C,EAAM4C,eAAejD,SAAS,QAC7CK,EAAM4C,eACN,IAAI5C,EAAM4C,iBAEd,OACExzB,EAAAA,GAAAA,KAAC4zB,GAAAA,EAAa,CAACC,GAAIF,EAAW9zB,UAChB,QAAX4zB,EAAA7C,EAAMlE,aAAK,IAAA+G,OAAA,EAAXA,EAAaK,mBACZ9zB,EAAAA,GAAAA,KAAC+zB,GAAS,CACRrH,MAAOkE,EAAMlE,MAAMoH,gBACnBjH,IAA4B,QAAzB6G,EAAE9C,EAAMlE,MAAMsH,mBAAW,IAAAN,EAAAA,EAAI,6BAK1C,CACA,GACE,WAAY9C,GACZA,EAAMqD,QACQ,iBAAPxnB,GACe,iBAAfwlB,EAEP,OACEtyB,EAAAA,GAAAA,MAAAu0B,GAAAA,SAAA,CAAAr0B,SAAA,EACEF,EAAAA,GAAAA,MAACw0B,GAAW,CACVC,SAAUjF,IAAS,GAAG1iB,MAAS0iB,IAAS,GAAG1iB,KAAM5M,SAAA,EAEjDF,EAAAA,GAAAA,MAAC00B,GAAK,CAAC/Y,UAAW,WAAW2W,IAAapyB,SAAA,EACxB,QAAfsyB,EAAAvB,EAAMqD,OAAO,UAAE,IAAA9B,OAAA,EAAfA,EAAiB2B,mBAChB9zB,EAAAA,GAAAA,KAACgtB,EAAAA,EAAW,CACVN,MAAsB,QAAjB0F,EAAExB,EAAMqD,OAAO,UAAE,IAAA7B,OAAA,EAAfA,EAAiB0B,gBACxBjH,IAA2B,QAAxBwF,EAAiB,QAAjBC,EAAE1B,EAAMqD,OAAO,UAAE,IAAA3B,OAAA,EAAfA,EAAiB3F,aAAK,IAAA0F,EAAAA,EAAI,aAC/BpF,QAAQ,SAGX2D,EAAM0D,qBACLt0B,EAAAA,GAAAA,KAAC4C,EAAAA,EAAW,CACV2xB,QAAM,EACNC,MAAI,EACJ3xB,QAASA,KACPusB,EAAQ,GAAG3iB,MACXqiB,GAAQ,EAAM,QAKtBnvB,EAAAA,GAAAA,MAAC00B,GAAK,CAAC/Y,UAAW,WAAWhO,IAAQzN,SAAA,EACnB,QAAf0yB,EAAA3B,EAAMqD,OAAO,UAAE,IAAA1B,OAAA,EAAfA,EAAiBuB,mBAChB9zB,EAAAA,GAAAA,KAACgtB,EAAAA,EAAW,CACVN,MAAsB,QAAjB8F,EAAE5B,EAAMqD,OAAO,UAAE,IAAAzB,OAAA,EAAfA,EAAiBsB,gBACxBjH,IAA2B,QAAxB4F,EAAiB,QAAjBC,EAAE9B,EAAMqD,OAAO,UAAE,IAAAvB,OAAA,EAAfA,EAAiB/F,aAAK,IAAA8F,EAAAA,EAAI,aAC/BxF,QAAQ,SAGX2D,EAAM6D,qBACLz0B,EAAAA,GAAAA,KAAC4C,EAAAA,EAAW,CACV2xB,QAAM,EACNC,MAAI,EACJ3xB,QAASA,KACPusB,EAAQ,GAAG3iB,MACXqiB,GAAQ,EAAM,WAMxB9uB,EAAAA,GAAAA,KAAC00B,EAAAA,EAAK,CACJ5F,QAASA,EACTK,KAAM,GAAG1iB,OAAU0iB,EACnBC,QAASA,EAAQvvB,UAED,QAAf8yB,EAAA/B,EAAMqD,OAAO,UAAE,IAAAtB,OAAA,EAAfA,EAAiBmB,mBAChB9zB,EAAAA,GAAAA,KAAC20B,GAAa,CACZjI,MAAsB,QAAjBkG,EAAEhC,EAAMqD,OAAO,UAAE,IAAArB,OAAA,EAAfA,EAAiBkB,gBACxBjH,IAA2B,QAAxBgG,EAAiB,QAAjBC,EAAElC,EAAMqD,OAAO,UAAE,IAAAnB,OAAA,EAAfA,EAAiBnG,aAAK,IAAAkG,EAAAA,EAAI,aAC/B5F,QAAQ,YAIdjtB,EAAAA,GAAAA,KAAC00B,EAAAA,EAAK,CACJ5F,QAASA,EACTK,KAAM,GAAG1iB,OAAU0iB,EACnBC,QAASA,EAAQvvB,UAED,QAAfkzB,EAAAnC,EAAMqD,OAAO,UAAE,IAAAlB,OAAA,EAAfA,EAAiBe,mBAChB9zB,EAAAA,GAAAA,KAAC20B,GAAa,CACZjI,MAAsB,QAAjBsG,EAAEpC,EAAMqD,OAAO,UAAE,IAAAjB,OAAA,EAAfA,EAAiBc,gBACxBjH,IAA2B,QAAxBoG,EAAiB,QAAjBC,EAAEtC,EAAMqD,OAAO,UAAE,IAAAf,OAAA,EAAfA,EAAiBvG,aAAK,IAAAsG,EAAAA,EAAI,aAC/BhG,QAAQ,cAOpB,GAAI,mBAAoB2D,GAASA,EAAMgE,eACrC,OACE50B,EAAAA,GAAAA,KAAC60B,GAAW,CACVnrB,MAAM,cACNijB,MAAsB,QAAjBwG,EAAEvC,EAAMkE,iBAAS,IAAA3B,EAAAA,EAAI,gBAC1B1T,IAAK,iCAAiCmR,EAAMgE,iBAC5C9vB,MAAM,OACNC,OAAO,OAAMlF,SAEZ,MAIP,GACE,aAAc+wB,GACdA,EAAMmE,UACK,QADG7C,EACdtB,EAAMlE,aAAK,IAAAwF,GAAXA,EAAa4B,gBAEb,OACE9zB,EAAAA,GAAAA,KAACwsB,GAAO,CACNG,MAAkB,QAAbyG,EAAExC,EAAMjE,aAAK,IAAAyG,EAAAA,EAAI,gBACtBxG,SAAwB,QAAhByG,EAAEzC,EAAMhE,gBAAQ,IAAAyG,EAAAA,EAAI,mBAC5B5G,UAAW,GAAGmE,EAAMmE,WACpBrI,MAAOkE,EAAMlE,MAAMoH,gBACnBjH,IAAsB,QAAnByG,EAAE1C,EAAMlE,MAAMC,aAAK,IAAA2G,EAAAA,EAAI,iBAIhC,GACE,2BAA4B1C,GAC5BA,EAAMoE,yBAEFpE,EAAMqE,eAAiBrE,EAAMsE,kBAC/B,OACEl1B,EAAAA,GAAAA,KAACm1B,GAAa,CAAAt1B,SACX+wB,EAAMoE,uBAAuB9R,KAAI,CAACpc,EAAMwR,KAAO,IAAD8c,EAC7C,GAAIxE,EAAMsE,iBAAkB,CAG1B,MAAM5vB,EAAQuS,SAAS+Y,EAAMsE,iBAAkB,IAE/C,OAEEv1B,EAAAA,GAAAA,MAAC01B,GAAiB,CAAAx1B,SAAA,EAChBG,EAAAA,GAAAA,KAACs1B,GAAQ,CAAAz1B,SAAE01B,OAAOC,cAAclwB,KAC/BwB,IAFqB,OAAOwR,IAKnC,CACA,OAEE3Y,EAAAA,GAAAA,MAAC01B,GAAiB,CAAAx1B,SAAA,EACI,QAAnBu1B,EAAAxE,EAAMqE,qBAAa,IAAAG,OAAA,EAAnBA,EAAqBtB,mBACpB9zB,EAAAA,GAAAA,KAACy1B,GAAU,CACT/I,MAAOkE,EAAMqE,cAAcnB,gBAC3BjH,IAAI,SAIP/lB,IARqB,OAAOwR,IAYtB,MAMrB,GAAI,cAAesY,GAASA,EAAM8E,UAChC,OACE11B,EAAAA,GAAAA,KAACm1B,GAAa,CAAAt1B,SACX+wB,EAAM8E,UAAUxS,KAAIpc,IAAS,IAAD6uB,EAC3B,GAAI7uB,SAAAA,EAAM8uB,qBAAsB,CAC9B,MAAMtwB,EAAQuS,SAAS/Q,EAAK8uB,qBAAsB,IAElD,OACEj2B,EAAAA,GAAAA,MAAC01B,GAAiB,CAAAx1B,SAAA,EAChBG,EAAAA,GAAAA,KAACs1B,GAAQ,CAAAz1B,SAAE01B,OAAOC,cAAclwB,KAE/BwB,EAAK+uB,WAHgB/uB,EAAKiqB,cAMjC,CACA,OACEpxB,EAAAA,GAAAA,MAAC01B,GAAiB,CAAAx1B,SAAA,EACfiH,SAAU,QAAN6uB,EAAJ7uB,EAAMT,YAAI,IAAAsvB,OAAN,EAAJA,EAAY7B,mBACX9zB,EAAAA,GAAAA,KAACy1B,GAAU,CACT/I,MAAO5lB,EAAKT,KAAKytB,gBACjBjH,IAAI,SAIP/lB,aAAI,EAAJA,EAAM+uB,WARe/uB,aAAI,EAAJA,EAAMiqB,cASV,KAMhC,GAEF,CAACxB,EAAAA,OAAOuG,gBAAiB,CAACrG,EAAM5vB,KAAc,IAADk2B,EAAAC,EAAAC,EAAAC,EAC3C,MACE9wB,MACEsO,QACEid,KAAK,GAAElkB,MAGTgjB,EAEEmB,EAAQhC,SAAgB,QAAZmH,EAAJnH,EAAMiC,kBAAU,IAAAkF,GAAY,QAAZC,EAAhBD,EAAkBlF,kBAAU,IAAAmF,OAAxB,EAAJA,EAA8BtlB,QAC1CogB,IAASA,aAAK,EAALA,EAAOC,iBAAkBtkB,IAClC,GACIwlB,EAAarD,SAAgB,QAAZqH,EAAJrH,EAAMiC,kBAAU,IAAAoF,GAAY,QAAZC,EAAhBD,EAAkBpF,kBAAU,IAAAqF,OAAxB,EAAJA,EAA8B9nB,QAC/CwiB,QAAAA,EAAS,MAEX,GAAIA,GACE,SAAUA,GAASA,EAAMuF,KAAM,CACY,IAADC,EAWhBC,EAAAC,EAX5B,GAA+B,cAA3B1F,EAAMuF,KAAKI,YACb,OACEv2B,EAAAA,GAAAA,KAAC60B,GAAW,CACVnrB,MAAM,cACNijB,MAAOiE,EAAMG,cACbtR,IAAmB,QAAhB2W,EAAExF,EAAMuF,KAAK/mB,WAAG,IAAAgnB,EAAAA,EAAI,GACvBtxB,MAAM,OACNC,OAAO,SAIb,GAAI,gBAAiB6rB,EACnB,OACEjxB,EAAAA,GAAAA,MAAAu0B,GAAAA,SAAA,CAAAr0B,SAAA,EACEF,EAAAA,GAAAA,MAAC62B,GAAQ,CACPpC,SAAUjF,IAAS1iB,EACnB6O,UAAW,aAAa2W,QAAAA,EAAc,IAAIpyB,SAAA,CAEzCA,EAEA+wB,EAAMkD,kBACL9zB,EAAAA,GAAAA,KAACgtB,EAAAA,EAAW,CACVN,MAAOkE,EAAMkD,gBACbjH,IAAgB,QAAbwJ,EAAEzF,EAAMjE,aAAK,IAAA0J,EAAAA,EAAI,0BACpBpJ,QAAQ,SAGG,iBAAPxgB,IACNzM,EAAAA,GAAAA,KAAC4C,EAAAA,EAAW,CACV2xB,QAAM,EACNC,MAAI,EACJ3xB,QAASA,KACPusB,EAAQ3iB,GACRqiB,GAAQ,EAAM,OAKrB8B,EAAMoD,cACLh0B,EAAAA,GAAAA,KAACy2B,GAAW,CAAA52B,SAAE+wB,EAAMoD,eAEtBh0B,EAAAA,GAAAA,KAAC00B,EAAAA,EAAK,CACJ5F,QAASA,EACTK,KAAM1iB,IAAO0iB,EACbC,QAASA,EAAQvvB,SAEhB+wB,EAAMkD,kBACL9zB,EAAAA,GAAAA,KAAC02B,GAAgB,CACfhK,MAAOkE,EAAMkD,gBACbjH,IAAgB,QAAbyJ,EAAE1F,EAAMjE,aAAK,IAAA2J,EAAAA,EAAI,GACpBrJ,QAAQ,aAOtB,CACF,EAEF,CAACsC,EAAAA,OAAOoH,WAAY,CAAClH,EAAM5vB,KAAaG,EAAAA,GAAAA,KAAC42B,GAAE,CAAA/2B,SAAEA,IAC7C,CAAC0vB,EAAAA,OAAOsH,WAAY,CAACpH,EAAM5vB,KAAaG,EAAAA,GAAAA,KAAC82B,GAAE,CAAAj3B,SAAEA,IAC7C,CAAC0vB,EAAAA,OAAOwH,WAAY,CAACtH,EAAM5vB,KACzBG,EAAAA,GAAAA,KAACg3B,GAAE,CAACnH,OAAQlB,EAAgB3vB,GAAUi4B,SAASp3B,SAAEA,IAEnD,CAAC0vB,EAAAA,OAAO2H,WAAY,CAACzH,EAAM5vB,KAAaG,EAAAA,GAAAA,KAAC42B,GAAE,CAAA/2B,SAAEA,IAC7C,CAAC0vB,EAAAA,OAAO4H,WAAY,CAAC1H,EAAM5vB,KAAaG,EAAAA,GAAAA,KAAC82B,GAAE,CAAAj3B,SAAEA,IAC7C,CAAC0vB,EAAAA,OAAO6H,WAAY,CAAC3H,EAAM5vB,KACzBG,EAAAA,GAAAA,KAACg3B,GAAE,CAACnH,OAAQlB,EAAgB3vB,GAAUi4B,SAASp3B,SAAEA,QAIvD,CACE8uB,EACAG,EACAxhB,EACAtO,EACA4vB,SAAgB,QAAZT,EAAJS,EAAMiC,kBAAU,IAAA1C,OAAZ,EAAJA,EAAkB0C,WAClB1B,IAIEkI,EACuB,MAA3BxI,EAAYvhB,EAAQ,GACM,QADI8gB,EAC1BS,EAAYvhB,EAAQ,UAAE,IAAA8gB,OAAA,EAAtBA,EAAwBzqB,MAAM,GAC9BkrB,EAAYvhB,EAAQ,GAEpB6b,EACuB,MAA3B0F,EAAYvhB,EAAQ,GACM,QADI+gB,EAC1BQ,EAAYvhB,EAAQ,UAAE,IAAA+gB,OAAA,EAAtBA,EAAwB1qB,MAAM,GAC9BkrB,EAAYvhB,EAAQ,GAE1B,OACE3N,EAAAA,GAAAA,MAAC23B,GAAgB,CAAAz3B,SAAA,EACfG,EAAAA,GAAAA,KAACu3B,GAAO,CAACh0B,UAAWorB,EAAgB3vB,GAAU,KAAKa,UAChD+uB,aAAI,EAAJA,EAAM4I,kBAAkBC,EAAAA,GAAAA,GAAc7I,EAAK4I,eAAgBhwB,MAE9DxH,EAAAA,GAAAA,KAAC4vB,GAAO,CAACC,OAAQlB,EAAgB3vB,GAAU,OAC3CW,EAAAA,GAAAA,MAAC+3B,GAAY,CAAA73B,SAAA,EACXG,EAAAA,GAAAA,KAAC23B,GAAQ,CAACC,KAAmB,UAAb54B,GAAwBsO,EAAQ,EAAEzN,SAC/B,iBAATw3B,IACNr3B,EAAAA,GAAAA,KAAC63B,EAAAA,EAAU,CACTC,aAA2B,SAAb94B,GAAoC,WAAbA,EACrC+4B,gBAA8B,UAAb/4B,EACjBg5B,aAA2B,SAAbh5B,EACd8Z,MAAI,EACJmf,KAAMZ,EAAKx3B,SAEVZ,EAAa04B,cAIpBh4B,EAAAA,GAAAA,MAACu4B,GAAQ,CAACC,UAAWxJ,EAAgB3vB,GAAU,KAAKa,SAAA,EAClDF,EAAAA,GAAAA,MAACy4B,GAAS,CAAAv4B,SAAA,CAAC,IAAEZ,EAAao5B,UAC1B14B,EAAAA,GAAAA,MAAC24B,GAAO,CAAAz4B,SAAA,EACNG,EAAAA,GAAAA,KAACu4B,GAAC,CACA7kB,OAAO,SACPtT,KAAM,wCAAwCiO,mBAC5C6gB,WAC8B,QAA/BZ,EAASM,SAAa,QAATL,EAAJK,EAAM4J,eAAO,IAAAjK,OAAT,EAAJA,EAAeiK,eAAO,IAAAlK,EAAAA,EAAI,UAAUzuB,UAE9CG,EAAAA,GAAAA,KAACK,GAAO,OAEVL,EAAAA,GAAAA,KAACu4B,GAAC,CACA7kB,OAAO,SACPtT,KAAM,6CAA6CiO,mBACjD,mCACoB,QAArBmgB,EAAUI,aAAI,EAAJA,EAAMjC,aAAK,IAAA6B,EAAAA,EAAI,kBACF,QADQC,EAC9BG,SAAa,QAATF,EAAJE,EAAM4J,eAAO,IAAA9J,OAAT,EAAJA,EAAe8J,eAAO,IAAA/J,EAAAA,EAAI,qDAE5B5uB,UAEAG,EAAAA,GAAAA,KAACO,GAAQ,aAIfP,EAAAA,GAAAA,KAACy4B,GAAI,CAACb,KAAmB,UAAb54B,GAAwB6vB,EAAY5rB,OAAS,EAAIqK,EAAMzN,SAChD,iBAATspB,IACNnpB,EAAAA,GAAAA,KAAC63B,EAAAA,EAAU,CACTC,aAA2B,SAAb94B,GAAoC,WAAbA,EACrC+4B,gBAA8B,UAAb/4B,EACjBg5B,aAA2B,SAAbh5B,EACdi5B,KAAM9O,EAAKtpB,SAEVZ,EAAaw5B,YAMrBv3B,IAAUlB,EAAAA,GAAAA,KAAClB,EAAAA,EAAU,CAACE,SAAUA,EAAUC,aAAcA,MAG/D,CAEA,MAAMywB,GAAYjvB,EAAAA,QAAOmD,EAACjD,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAARJ,CAAQ,eACtBW,GAAAA,GAAK4C,MAEH5C,GAAAA,GAAKs3B,WAIL9I,GAAUnvB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,gBAAVJ,CAAU,gOAEtBM,GAAAA,GAAMC,WACqBsK,GAASA,EAAMukB,QAG1C9uB,GAAAA,GAAMssB,SACwB/hB,GAASA,EAAMukB,QAG7C9uB,GAAAA,GAAME,QACyBqK,GAASA,EAAMukB,QAG9C9uB,GAAAA,GAAMG,QACyBoK,GAASA,EAAMukB,SAI5CE,GAAYtvB,EAAAA,QAAOk4B,GAAEh4B,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAATJ,CAAS,0GACvBW,GAAAA,GAAK4C,MACLjD,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAIJ+uB,GAAUxvB,EAAAA,QAAOm4B,GAAEj4B,WAAA,CAAAC,YAAA,4BAAAC,YAAA,gBAATJ,CAAS,0GACrBW,GAAAA,GAAK4C,MAELjD,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAKJivB,GAAQ1vB,EAAAA,QAAOo4B,WAAUl4B,WAAA,CAAAC,YAAA,0BAAAC,YAAA,gBAAjBJ,CAAiB,sSAEzBW,GAAAA,GAAK03B,OACExtB,GAASA,EAAMukB,SACCvkB,GAASA,EAAMukB,QAEtC9uB,GAAAA,GAAMC,UAMND,GAAAA,GAAMssB,QAKNtsB,GAAAA,GAAME,OAKNF,GAAAA,GAAMG,QAONovB,GAAO7vB,EAAAA,QAAOe,EAACb,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAARJ,CAAQ,0CACV6K,GAASA,EAAMukB,SAIpBoB,GAAcxwB,EAAAA,QAAOs4B,IAAGp4B,WAAA,CAAAC,YAAA,gCAAAC,YAAA,gBAAVJ,CAAU,QAC1BW,GAAAA,GAAK43B,QAGH9H,GAAYzwB,EAAAA,QAAOw4B,IAAGt4B,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAAVJ,CAAU,QACxBW,GAAAA,GAAK43B,QAGH1H,GAAgB7wB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAVJ,CAAU,mVAM5BM,GAAAA,GAAMC,UAKND,GAAAA,GAAMssB,QAKNtsB,GAAAA,GAAME,OAKNF,GAAAA,GAAMG,QAOJqwB,GAAoB9wB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,sCAAAC,YAAA,gBAAVJ,CAAU,iJAEhCW,GAAAA,GAAK03B,MAGL/3B,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAENF,GAAAA,GAAMG,QAOJswB,IAAS/wB,EAAAA,EAAAA,SAAOy4B,IAAUv4B,WAAA,CAAAC,YAAA,2BAAAC,YAAA,iBAAjBJ,CAAiB,0QAGpB6K,GAASA,EAAMukB,QAGvB9uB,GAAAA,GAAMC,UAMND,GAAAA,GAAMssB,QAMNtsB,GAAAA,GAAME,OAMNF,GAAAA,GAAMG,QAQJuwB,IAAShxB,EAAAA,EAAAA,SAAO04B,IAAUx4B,WAAA,CAAAC,YAAA,2BAAAC,YAAA,iBAAjBJ,CAAiB,+OAGpB6K,GAASA,EAAMukB,QAGvB9uB,GAAAA,GAAMC,UAMND,GAAAA,GAAMssB,QAMNtsB,GAAAA,GAAME,OAMNF,GAAAA,GAAMG,QAKJwwB,GAA0BjxB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,4CAAAC,YAAA,iBAAVJ,CAAU,6HACtCW,GAAAA,GAAKg4B,SACE9tB,GAASA,EAAMukB,QACtB9uB,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAMJywB,GAA2BlxB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,6CAAAC,YAAA,iBAAVJ,CAAU,mIAChC6K,GAASA,EAAMukB,QACtBzuB,GAAAA,GAAKi4B,cACLt4B,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAMJ6yB,IAAYtzB,EAAAA,EAAAA,SAAOusB,EAAAA,GAAYrsB,WAAA,CAAAC,YAAA,8BAAAC,YAAA,iBAAnBJ,CAAmB,kDAIjC64B,EAAAA,GAAAA,KAAYC,EAAAA,EAAAA,KAAG,2BAKbpF,GAAc1zB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,gCAAAC,YAAA,iBAAVJ,CAAU,8MAMjBU,IAAA,IAAC,SAAEizB,GAAUjzB,EAAA,OAAMizB,EAAW,IAAM,GAAG,IAC1CtwB,IAAA,IAAC,SAAEswB,GAAUtwB,EAAA,OAAMswB,EAAW,IAAM,OAAO,GAEjDrzB,GAAAA,GAAMC,UAGND,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAMJmzB,GAAQ5zB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,0BAAAC,YAAA,iBAAVJ,CAAU,u7BAgBQ4D,GAAAA,EAAOC,KAQnCvD,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAKNF,GAAAA,GAAMG,OAWwBmD,GAAAA,EAAOm1B,OAGrCz4B,GAAAA,GAAMY,MAUNZ,GAAAA,GAAMC,UAKND,GAAAA,GAAME,OAaNF,GAAAA,GAAMG,OAW0BmD,GAAAA,EAAOm1B,QAKrC7E,IAAgBl0B,EAAAA,EAAAA,SAAOusB,EAAAA,GAAYrsB,WAAA,CAAAC,YAAA,kCAAAC,YAAA,iBAAnBJ,CAAmB,mVAKT4D,GAAAA,EAAOC,KAOnCvD,GAAAA,GAAME,OAMNF,GAAAA,GAAMG,QASJ2zB,GAAcp0B,EAAAA,QAAOg5B,OAAM94B,WAAA,CAAAC,YAAA,gCAAAC,YAAA,iBAAbJ,CAAa,8PAQ7BM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAMJi0B,GAAgB10B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,kCAAAC,YAAA,iBAAVJ,CAAU,sKAI5BM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAKJm0B,GAAoB50B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,sCAAAC,YAAA,iBAAVJ,CAAU,0GAIhCW,GAAAA,GAAK4C,MAELjD,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAKJo0B,GAAW70B,EAAAA,QAAOi5B,KAAI/4B,WAAA,CAAAC,YAAA,6BAAAC,YAAA,iBAAXJ,CAAW,0GAGxBM,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAKJu0B,IAAah1B,EAAAA,EAAAA,SAAOusB,EAAAA,GAAYrsB,WAAA,CAAAC,YAAA,+BAAAC,YAAA,iBAAnBJ,CAAmB,yIAClCM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAMJs1B,GAAW/1B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,6BAAAC,YAAA,iBAAVJ,CAAU,srBAcd2D,IAAA,IAAC,SAAEgwB,GAAUhwB,EAAA,OAAMgwB,EAAW,IAAM,GAAG,GAUlB/vB,GAAAA,EAAOm1B,OAGrCz4B,GAAAA,GAAMY,MAUNZ,GAAAA,GAAMC,UAGND,GAAAA,GAAME,OAUNF,GAAAA,GAAMG,OAS0BmD,GAAAA,EAAOm1B,QAKrC/C,GAAch2B,EAAAA,QAAOmD,EAACjD,WAAA,CAAAC,YAAA,gCAAAC,YAAA,iBAARJ,CAAQ,2BACxBW,GAAAA,GAAK43B,QAIHtC,IAAmBj2B,EAAAA,EAAAA,SAAOusB,EAAAA,GAAYrsB,WAAA,CAAAC,YAAA,qCAAAC,YAAA,iBAAnBJ,CAAmB,mPAaxCM,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAMJ01B,GAAKn2B,EAAAA,QAAOwD,GAAEtD,WAAA,CAAAC,YAAA,uBAAAC,YAAA,iBAATJ,CAAS,2BAChBW,GAAAA,GAAK6C,GACLlD,GAAAA,GAAMC,UAEND,GAAAA,GAAMssB,QAENtsB,GAAAA,GAAMG,OACJE,GAAAA,GAAKu4B,UAIL7C,GAAKr2B,EAAAA,QAAOoD,GAAElD,WAAA,CAAAC,YAAA,uBAAAC,YAAA,iBAATJ,CAAS,iBAChBW,GAAAA,GAAKyC,GACL9C,GAAAA,GAAMG,OACJE,GAAAA,GAAKu4B,UAIL3C,GAAKv2B,EAAAA,QAAOsD,GAAEpD,WAAA,CAAAC,YAAA,uBAAAC,YAAA,iBAATJ,CAAS,8GAChBW,GAAAA,GAAKi4B,eACO/tB,GAASA,EAAMukB,SAMzByH,GAAmB72B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,qCAAAC,YAAA,iBAAVJ,CAAU,2QAK/BM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAQJq2B,GAAU92B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,iBAAVJ,CAAU,qKAIf6K,GAASA,EAAM/H,WAEtBxC,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAQJw2B,GAAej3B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,iCAAAC,YAAA,iBAAVJ,CAAU,sLAQ3BM,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAGNF,GAAAA,GAAMG,QAKJy2B,GAAWl3B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,6BAAAC,YAAA,iBAAVJ,CAAU,iDACvB6K,GAAUA,EAAMssB,KAAO,KAAO,kBAG9B72B,GAAAA,GAAMG,QAKJg3B,GAAWz3B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,6BAAAC,YAAA,iBAAVJ,CAAU,4PAIb6K,GAASA,EAAM6sB,WASzBp3B,GAAAA,GAAMC,UAGND,GAAAA,GAAMssB,QAGNtsB,GAAAA,GAAME,OAINF,GAAAA,GAAMG,QAOJk3B,GAAY33B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,iBAAVJ,CAAU,QACxBW,GAAAA,GAAKg4B,SAGHd,GAAU73B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,iBAAVJ,CAAU,gNAGtBM,GAAAA,GAAMC,UAIND,GAAAA,GAAMssB,QAINtsB,GAAAA,GAAME,OAKNF,GAAAA,GAAMG,QAQJq3B,GAAI93B,EAAAA,QAAOe,EAACb,WAAA,CAAAC,YAAA,sBAAAC,YAAA,iBAARJ,CAAQ,kDAMZJ,IAAUI,EAAAA,EAAAA,SAAOm5B,GAAAA,GAAWj5B,WAAA,CAAAC,YAAA,4BAAAC,YAAA,iBAAlBJ,CAAkB,4IAGtBpB,GAAAA,EAAOyB,MAGfC,GAAAA,GAAMY,MAIMtC,GAAAA,EAAOuC,QAIPvC,GAAAA,EAAOyB,OAOjBP,IAAWE,EAAAA,EAAAA,SAAOo5B,GAAAA,GAAYl5B,WAAA,CAAAC,YAAA,6BAAAC,YAAA,iBAAnBJ,CAAmB,4IAGxBpB,GAAAA,EAAOyB,MAGfC,GAAAA,GAAMY,MAIMtC,GAAAA,EAAOuC,QAIPvC,GAAAA,EAAOyB,OAOjB23B,GAAOh4B,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,yBAAAC,YAAA,iBAAVJ,CAAU,kDACnB6K,GAAUA,EAAMssB,KAAO,KAAO,kBAG9B72B,GAAAA,GAAMG,Q,wCCzyCV,MAAM44B,GAA4C,CAChDC,WAAY,CACVC,QAAS36B,GAAAA,EAAOuC,QAChBD,MAAOtC,GAAAA,EAAOyB,MACdm5B,OAAQ56B,GAAAA,EAAO66B,OACfl3B,SAAU,eAEZm3B,IAAK,CACHH,QAAS36B,GAAAA,EAAOyB,MAChBa,MAAOtC,GAAAA,EAAOuC,QACdq4B,OAAQ56B,GAAAA,EAAOuC,QACfoB,SAAU,gBAIRo3B,GAAgD,CACpDL,WAAY,CACVC,QAAS36B,GAAAA,EAAOG,OAChBmC,MAAOtC,GAAAA,EAAOG,OACdy6B,OAAQ56B,GAAAA,EAAO66B,OACfl3B,SAAU,eAEZm3B,IAAK,CACHH,QAAS36B,GAAAA,EAAOuC,QAChBD,MAAOtC,GAAAA,EAAOyB,MACdm5B,OAAQ56B,GAAAA,EAAOuC,QACfoB,SAAU,gBAIRq3B,GAA4C,CAChDN,WAAY,CACVC,QAAS36B,GAAAA,EAAOi7B,QAChB34B,MAAOtC,GAAAA,EAAOyB,MACdm5B,OAAQ56B,GAAAA,EAAOI,OACfuD,SAAU,eAEZm3B,IAAK,CACHH,QAAS36B,GAAAA,EAAOyB,MAChBa,MAAOtC,GAAAA,EAAOi7B,QACdL,OAAQ56B,GAAAA,EAAOi7B,QACft3B,SAAU,gBAIRu3B,GAAgD,CACpDR,WAAY,CACVC,QAAS,cACTr4B,MAAO,cACPs4B,OAAQ56B,GAAAA,EAAOI,OACfuD,SAAU,eAEZm3B,IAAK,CACHH,QAAS36B,GAAAA,EAAOi7B,QAChB34B,MAAOtC,GAAAA,EAAOyB,MACdm5B,OAAQ56B,GAAAA,EAAOi7B,QACft3B,SAAU,gBAIC,SAASw3B,GAAoBz7B,GAGL,IAAA07B,EAAAC,EAAAC,EAAAC,EAAA,IAFrCx1B,MAAM,KAAEwpB,EAAI,SAAEiM,EAAQ,aAAEC,GAAc,SACtC5L,GACmCnwB,EACnC,MAAMg8B,GAAQx4B,EAAAA,GAAAA,IAAS,GAAO,GAAO,GAAO,GACtCy4B,GAAaz4B,EAAAA,GAAAA,GAAS,QAAS,WAAY,WAAY,YACvDgN,EAAOqf,SAAU,QAAN6L,EAAJ7L,EAAMrf,YAAI,IAAAkrB,OAAN,EAAJA,EAAa,GACpBQ,EAAkBrM,SAAAA,EAAMsM,qBAC1BtM,EAAKsM,qBACLtM,aAAI,EAAJA,EAAMuM,UACJC,EAAc,IAAI/xB,KAAK4xB,QAAAA,EAAmB,GAAGI,UAC7CC,EAAwB,IAAIC,KAAKC,eAAe5M,aAAI,EAAJA,EAAM6M,YAAa,CACvEC,KAAM,UACNC,MAAO,OACPC,IAAK,UACLC,SAAU,QACTC,OAAOV,GAEJW,EAAmBjB,SAA6B,QAAjBJ,EAAZI,EAAckB,uBAAe,IAAAtB,OAAjB,EAAZA,EAA+B5G,gBAClD9xB,EAAc64B,EAASoB,MAC1BvrB,QACCwrB,IAAO,IAAAC,EAAA,OACO,QAAZA,EAAAD,EAAQ3sB,YAAI,IAAA4sB,OAAA,EAAZA,EAAe,MAAO5sB,GAAQ2sB,EAAQT,eAAgB7M,aAAI,EAAJA,EAAM6M,YAAW,IAE1E93B,MAAM,EAAG,IAEN,sBAAEy4B,IAA0BrN,EAAAA,EAAAA,YAAWsN,EAAAA,IACvCC,GAA2BC,EAAAA,GAAAA,GACtB,SAAThtB,EAAkB,OAAS,OAC3Bqf,aAAI,EAAJA,EAAM6M,aAGFe,GAAenN,EAAAA,EAAAA,UAAQ,IACTwL,EAASoB,MACxBvrB,QAAOwrB,IAAO,IAAAO,EAAA,OAAgB,QAAZA,EAAAP,EAAQ3sB,YAAI,IAAAktB,OAAA,EAAZA,EAAe,MAAOltB,GAAQ2sB,EAAQT,eAAgB7M,aAAI,EAAJA,EAAM6M,YAAY,IAC1FiB,WAAUjN,GAAQA,EAAKkN,WAAY/N,aAAI,EAAJA,EAAM+N,YAE3C,CAAC9B,EAASoB,MAAOrN,aAAI,EAAJA,EAAM+N,QAASptB,EAAMqf,aAAI,EAAJA,EAAM6M,eAE/Cl8B,EAAAA,EAAAA,YAAU,KACR,IAAIq9B,EAAAA,GAAAA,OAAehO,EAAM,KAAAJ,EACvB4N,EAAsBxN,EAAKmC,eAC3B,MAAM8L,EAAOjO,EAAKsM,qBACdtM,EAAKsM,qBACLtM,EAAKuM,UAET1yB,OAAOq0B,UAAUj1B,KAAK,CACpBk1B,mBAAoB,GAAa,QAAbvO,EAAGI,EAAKjC,aAAK,IAAA6B,EAAAA,EAAI,YACnCqO,QAAAA,EAAQ,iBAGd,IACC,CAACjO,EAAMwN,IAEV,MAAMY,GAAO3N,EAAAA,EAAAA,UAAQ,IAEZwL,EAASoB,MACbvrB,QAAOwrB,IAAO,IAAAe,EAAA,OAAgB,QAAZA,EAAAf,EAAQ3sB,YAAI,IAAA0tB,OAAA,EAAZA,EAAe,MAAO1tB,GAAQ2sB,EAAQT,eAAgB7M,aAAI,EAAJA,EAAM6M,YAAY,IAC1FvY,KAAIga,IAAS,IAAAC,EAAAC,EACZ,MAAMC,EAAqB,QAAbF,EAAGD,EAAM3tB,YAAI,IAAA4tB,GAAK,QAALC,EAAVD,EAAa,UAAE,IAAAC,OAAL,EAAVA,EAAiBE,cAC5BC,EAAUL,EAAMP,QAGtB,MAAO,GAFiC,OAAtBO,EAAMzB,YAAuB,GAAK,IAAIyB,EAAMzB,iBAEvC4B,QAAAA,EAAY,WAAWE,QAAAA,EAAW,SAAS,KAErE,CAAC1C,EAASoB,MAAO1sB,EAAMqf,aAAI,EAAJA,EAAM6M,cAE1B+B,GAAiBnO,EAAAA,EAAAA,UAAQ,KAC7B,IAAK9f,EAAM,OAAO,KAyClB,OAvC2BvN,EAExBkhB,KAAKua,IAAmB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACvB,MAAMC,EACJR,EAAWS,UAAoC,SAAxBT,EAAWS,SAC9BrB,EAAOY,EAAWvC,qBACpBuC,EAAWvC,qBACS,QADWwC,EAC/BD,EAAWtC,iBAAS,IAAAuC,EAAAA,EAAI,eACtBS,EAAW,IAAI90B,KAAKwzB,GAAMxB,UAE1B+C,EAAa,IAAI7C,KAAKC,eAAe5M,EAAK6M,YAAa,CAC3DC,KAAM,UACNC,MAAO,OACPC,IAAK,UACLC,SAAU,QACTC,OAAOqC,GAEJE,EACuB,OAA3BZ,EAAWhC,YAAuB,GAAK,IAAIgC,EAAWhC,cAClD6C,EAA0B,QAAlBX,EAAGF,EAAWluB,YAAI,IAAAouB,GAAK,QAALC,EAAfD,EAAkB,UAAE,IAAAC,OAAL,EAAfA,EAAsBN,cACjCiB,EAAUd,EAAWd,QAErB6B,EAAO,GAAGH,KAAaC,QAAAA,EAAY,WAAWC,QAAAA,EAAW,UAC/D,MAAO,CACL7R,MAA4C,QAAvCmR,EAAsB,QAAtBC,EAAEL,EAAWgB,iBAAS,IAAAX,OAAA,EAApBA,EAAsBhK,uBAAe,IAAA+J,EAAAA,EAAI9B,EAChDlP,IAAyB,QAAtBkR,EAAEN,EAAWgB,iBAAS,IAAAV,OAAA,EAApBA,EAAsB/J,YAC3BkK,SAAmB,SAAT3uB,EAAkB+sB,EAAamB,aAAU,EAAVA,EAAYiB,cAAgBT,GAAe3B,EAAamB,EAAWS,UAC5GrB,KAAMuB,EACND,WACAxB,QAAS6B,EACT7R,MAAO8Q,EAAW9Q,MAClB6L,QAA2B,QAApBwF,EAAEP,EAAWjF,eAAO,IAAAwF,OAAA,EAAlBA,EAAoBxF,QAC7BmG,SAAUlB,EAAWkB,SACtB,IAEFxpB,MAAK,CAAC3T,EAAGsU,IACDA,EAAEqoB,SAAW38B,EAAE28B,WAGAjb,KAAI0b,IAAW,IAAAC,EACvC,OACE7+B,EAAAA,GAAAA,KAAC8+B,EAAAA,EAAY,CAEXlQ,KAAMgQ,EACNG,SAAS,EACTC,YAAarQ,GAAAA,EAAgBpf,GAAM,KACnC0vB,cAAetQ,GAAAA,EAAgBpf,GAAM,KACrCrQ,aAAcyvB,GAAAA,EAAgBpf,GAAM,IACpC2vB,UAAWvQ,GAAAA,EAAgBpf,GAAM,KACjC4vB,aAAcxQ,GAAAA,EAAgBpf,GAAM,MAP/B,aAA0B,QAA1BsvB,EAAaD,EAAQjS,aAAK,IAAAkS,EAAAA,EAAI,UAQnC,GAEJ,GACD,CAAC9C,EAAkB/5B,EAAauN,EAAMqf,aAAI,EAAJA,EAAM6M,eAEzC,aAAE2D,IAAiBrQ,EAAAA,EAAAA,YAAWsQ,EAAAA,KAEpC9/B,EAAAA,EAAAA,YAAU,MACJq9B,EAAAA,GAAAA,OACFwC,GAAa,EACf,GACC,CAACA,IAEJ,MAAME,EAA8B,CAClCtL,YAAa,eACbrH,MAAO,aACPmH,gBAAiBiI,GAMnB,OACE/7B,EAAAA,GAAAA,KAACu/B,EAAAA,EAAM,CACL9yB,GAAG,oBACH+yB,gBAAiBngC,GAAAA,EAAOogC,QACxBC,cAAY,EACZC,SAAUzQ,EAASyQ,SACnBC,iBAAkBhR,aAAI,EAAJA,EAAM6M,YAAY57B,SAEnC0P,IACC5P,EAAAA,GAAAA,MAACC,GAAO,CAACigC,iBAAkBlR,GAAAA,EAAgBpf,GAAM,KAAK1P,SAAA,EACpDG,EAAAA,GAAAA,KAAC8/B,EAAAA,EAAU,CACTvwB,KAAMA,EACNof,gBAAiBA,GAAAA,EACjBhC,MAAiB,QAAZgO,EAAE/L,EAAKjC,aAAK,IAAAgO,EAAAA,EAAI,UACrBoF,SAAUnR,EAAK6M,YACfx8B,aAAcq9B,KAGhB38B,EAAAA,GAAAA,MAACqgC,EAAAA,EAAY,CAACC,QAAM,EAACC,QAAM,EAACC,SAAUnF,EAAYD,MAAOA,EAAMl7B,SAAA,EAC7DG,EAAAA,GAAAA,KAACogC,EAAAA,EAAI,CACHzT,MAAiB,QAAZiO,EAAEhM,EAAKjC,aAAK,IAAAiO,EAAAA,EAAI,kBACrByF,YAAa/E,EACb4C,UAAUtP,aAAI,EAAJA,EAAM8P,eAAiB9P,EAAKsP,UAAY,GAClDoC,MAAO3R,GAAAA,EAAgBpf,GAAM,IAC7BgxB,OAAQ5R,GAAAA,EAAgBpf,GAAM,KAC9BixB,OAAQ7R,GAAAA,EAAgBpf,GAAM,KAC9BvQ,SAAUuQ,EACVkxB,IAAK7R,EAAK6P,UAAY7P,EAAK6P,UAAYa,EACvCrgC,aAAcq9B,KAEhBt8B,EAAAA,GAAAA,KAACkuB,GAAW,CACVlvB,SAAUuQ,EACVof,gBAAiBA,GAAAA,EACjBC,KAAMA,EACNC,YAAamO,EACb1vB,MAAOkvB,EACPv9B,aAAcq9B,OAGjBkB,IACCx9B,EAAAA,GAAAA,KAAC+B,EAAAA,EAAW,CACVI,QAASwsB,GAAAA,EAAgBpf,GAAM,IAC/BtN,aACW,SAATsN,EAAkB8qB,GAAmBP,GAEvC53B,iBACW,SAATqN,EAAkBgrB,GAAuBH,GAE3Cp4B,YAAaw7B,EAAe75B,MAC1B,EACA3B,EAAYiB,OAAS,EAAI,EAAIjB,EAAYiB,OAAS,GAEpDhE,aAAcq9B,QAO5B,CAEO,SAASoE,GAAIv/B,GAGmB,IAAAw/B,EAAAC,EAAAtS,EAAAC,EAAAsS,EAAAC,EAAAC,EAAA,IAHlB,SACnB7R,EACA9pB,MAAM,KAAEwpB,IAC2BztB,EAC/B6/B,EAAe,KAInB,OAHGpS,SAAkB,QAAd+R,EAAJ/R,EAAMoS,oBAAY,IAAAL,GAAlBA,EAAoBK,eACrBA,EAAe7oB,KAAKC,MAAMwW,EAAKoS,aAAaA,gBAG5ChhC,EAAAA,GAAAA,KAACihC,EAAAA,EAAG,CACFC,eAAgB,CACdvU,MAAkB,QAAbiU,EAAEhS,aAAI,EAAJA,EAAMjC,aAAK,IAAAiU,EAAAA,EAAI,kBACtB5M,YAAmC,QAAxB1F,EAAEM,SAAa,QAATL,EAAJK,EAAM4J,eAAO,IAAAjK,OAAT,EAAJA,EAAeiK,eAAO,IAAAlK,EAAAA,EAAI,yBACvC7hB,GAAI,oBACJigB,MAAiC,QAA5BmU,EAAEjS,SAAe,QAAXkS,EAAJlS,EAAM6P,iBAAS,IAAAqC,GAAM,QAANC,EAAfD,EAAiB3K,YAAI,IAAA4K,OAAjB,EAAJA,EAAuB3xB,WAAG,IAAAyxB,EAAAA,EAAIM,EAAAA,EACrC/xB,IAAK8f,EAASyQ,SACdyB,KAAM,KACNC,aAAcnS,EAASyQ,SACvBqB,aAAcA,IAItB,CAEA,MAAMphC,GAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAAVJ,CAAU,4HAEJpB,GAAAA,EAAOiiC,WAKlBh2B,GAASA,EAAMu0B,kB,yEC5TtBvS,E,2CACJ,SAASC,IAAiS,OAApRA,EAAW5oB,OAAOiC,OAASjC,OAAOiC,OAAO8P,OAAS,SAAUhD,GAAU,IAAK,IAAI4E,EAAI,EAAGA,EAAIkG,UAAUvb,OAAQqV,IAAK,CAAE,IAAIrL,EAASuR,UAAUlG,GAAI,IAAK,IAAIpR,KAAO+F,EAActI,OAAOuZ,UAAUsP,eAAepP,KAAKnR,EAAQ/F,KAAQwM,EAAOxM,GAAO+F,EAAO/F,GAAU,CAAE,OAAOwM,CAAQ,EAAU6Z,EAAS9O,MAAMrE,KAAMoE,UAAY,CAGlV,IAAI+iB,EAAkB,SAAyBj2B,EAAOiQ,GACpD,OAAoB,gBAAoB,MAAOgS,EAAS,CACtDG,KAAM,OACNC,MAAO,6BACP1hB,QAAS,WACTsP,IAAKA,GACJjQ,GAAQgiB,IAAUA,EAAqB,gBAAoB,OAAQ,CACpEO,EAAG,sBACH2T,OAAQ,UACRC,cAAe,QACfC,eAAgB,WAEpB,EACI5T,GAA0B,IAAAzK,YAAWke,GACrCxT,GAAoB,IAAAC,MAAKF,G,uDCNd,SAASgS,EAAU/gC,GAY9B,IAZ+B,MACjC4tB,EAAK,KACLpd,EAAI,gBACJof,EAAe,SACfoR,EAAQ,aACR9gC,GAODF,EACC,MAAMi8B,GAAaz4B,EAAAA,EAAAA,GAAS,SAAU,WAAY,WAAY,IACxDo/B,EAA4B,OAAb5B,EAAoB,GAAK,IAAIA,IAE5C6B,EAAaC,GACE,UAAfA,EACK,SAEU,YAAfA,EACK,UAEU,WAAfA,EACK,OAEFA,EAAWC,oBAGpB,OACE9hC,EAAAA,EAAAA,KAACJ,EAAO,CAAAC,UACNF,EAAAA,EAAAA,MAACqgC,EAAAA,EAAY,CACXG,SAAUnF,EACV+G,MAAMx/B,EAAAA,EAAAA,IAAS,GAAM,GAAM,GAAO,GAAO1C,SAAA,EAEzCG,EAAAA,EAAAA,KAACgiC,EAAI,CAAAniC,UACHG,EAAAA,EAAAA,KAACiiC,EAAAA,EAAQ,CAACrC,iBAAkBG,EAAUmC,WAAS,OAEjDviC,EAAAA,EAAAA,MAACwiC,EAAU,CAACtS,OAAQlB,EAAgBpf,GAAM,KAAK1P,SAAA,EAC7CF,EAAAA,EAAAA,MAACO,EAAG,CAAAL,SAAA,EACFG,EAAAA,EAAAA,KAAC4zB,EAAAA,EAAa,CAACC,GAAI,GAAG8N,KAAgB9hC,SACnCZ,EAAamjC,QAEhBpiC,EAAAA,EAAAA,KAACqiC,EAAO,CAACxS,OAAQlB,EAAgBpf,GAAM,QACvCvP,EAAAA,EAAAA,KAAC4zB,EAAAA,EAAa,CAACC,GAAI,GAAG8N,KAAgBC,EAAUryB,KAAQ1P,SAC5C,UAAT0P,EACG,SACAqyB,EAAUryB,GAAM+yB,uBAEtBtiC,EAAAA,EAAAA,KAACqiC,EAAO,CAACxS,OAAQlB,EAAgBpf,GAAM,WAEzCvP,EAAAA,EAAAA,KAACuiC,EAAQ,CAAA1iC,SAAE8sB,EAAM6V,uBAK3B,CAEA,MAAM5iC,EAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,eAAVJ,CAAU,+QAMtBM,EAAAA,GAAMC,UAIND,EAAAA,GAAMssB,QAINtsB,EAAAA,GAAME,OAMNF,EAAAA,GAAMG,QAQJ8gC,EAAOvhC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAVJ,CAAU,2KACnBM,EAAAA,GAAMC,UAIND,EAAAA,GAAMssB,QAINtsB,EAAAA,GAAME,OAINF,EAAAA,GAAMG,QAOJihC,EAAa1hC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAVJ,CAAU,6RAKzBW,EAAAA,GAAKi4B,eACE/tB,GAASA,EAAMukB,SAKbvkB,GAASA,EAAMukB,QAExB9uB,EAAAA,GAAME,OAKNF,EAAAA,GAAMG,QASJhB,EAAMO,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAVJ,CAAU,6DAMhB4hC,GAAU5hC,EAAAA,EAAAA,SAAOgiC,GAAW9hC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,eAAlBJ,CAAkB,+PAEpB6K,GAASA,EAAMukB,QAEzB9uB,EAAAA,GAAMC,UAMND,EAAAA,GAAMssB,QAKNtsB,EAAAA,GAAME,OAKNF,EAAAA,GAAMG,QAOJqhC,EAAW9hC,EAAAA,QAAOi5B,KAAI/4B,WAAA,CAAAC,YAAA,4BAAAC,YAAA,eAAXJ,CAAW,wJAIxBM,EAAAA,GAAMC,UAGND,EAAAA,GAAMssB,QAGNtsB,EAAAA,GAAME,OAGNF,EAAAA,GAAMG,O,4KChLK,SAASk/B,EAAIrhC,GAoBxB,IAAD2jC,EAAA,IApB0B,MAC3B/V,EAAK,YACL0T,EAAW,SACXnC,EAAQ,MACRoC,EAAK,OACLC,EAAM,OACNC,EAAM,IACNC,EAAG,SACHzhC,EAAQ,aACRC,GAWDF,EACC,MAAM,OAAEmC,IAAW6tB,EAAAA,EAAAA,YAAWE,EAAAA,IAE9B,OACEtvB,EAAAA,EAAAA,MAACC,EAAO,CAAAC,SAAA,EACNG,EAAAA,EAAAA,KAACwD,EAAK,CAAA3D,SAAE8sB,KACRhtB,EAAAA,EAAAA,MAACgjC,EAAO,CAAA9iC,SAAA,CACLq+B,GAAuC,SAA3BA,EAASZ,gBACpB39B,EAAAA,EAAAA,MAAAu0B,EAAAA,SAAA,CAAAr0B,SAAA,EACEG,EAAAA,EAAAA,KAAC4iC,EAAQ,CAAC/S,OAAQ2Q,EAAO3gC,SAAEZ,EAAai/B,MACxCl+B,EAAAA,EAAAA,KAAC6iC,EAAI,CAAChT,OAAQyQ,QAGlBtgC,EAAAA,EAAAA,KAAC8iC,EAAW,CAACjT,OAAQ0Q,EAAO1gC,SAAEwgC,QAEhC1gC,EAAAA,EAAAA,MAACotB,EAAU,CAAAltB,SAAA,EACR4gC,aAAG,EAAHA,EAAK3M,mBACJ9zB,EAAAA,EAAAA,KAACq0B,EAAK,CAAC3H,MAAO+T,EAAI3M,gBAAiBjH,IAAoB,QAAjB6V,EAAEjC,EAAIzM,mBAAW,IAAA0O,EAAAA,EAAI,WAE3DxhC,IACAlB,EAAAA,EAAAA,KAAClB,EAAAA,EAAU,CAACE,SAAUA,EAAUC,aAAcA,SAKxD,CAEA,MAAMW,EAAUa,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,qBAAAC,YAAA,gBAAVJ,CAAU,gIAKtBM,EAAAA,GAAMC,UAEND,EAAAA,GAAMssB,QAENtsB,EAAAA,GAAME,OAGNF,EAAAA,GAAMG,QAKJsC,EAAQ/C,EAAAA,QAAO0D,GAAExD,WAAA,CAAAC,YAAA,mBAAAC,YAAA,gBAATJ,CAAS,yBACnBW,EAAAA,GAAK+C,GAGLpD,EAAAA,GAAME,OACJG,EAAAA,GAAK6C,GAEPlD,EAAAA,GAAMG,OACJE,EAAAA,GAAKyC,IAGL8+B,EAAUliC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,qBAAAC,YAAA,gBAAVJ,CAAU,mKAEtBM,EAAAA,GAAMC,UAIND,EAAAA,GAAMssB,QAINtsB,EAAAA,GAAME,OAINF,EAAAA,GAAMG,QAKJ0hC,EAAWniC,EAAAA,QAAO0D,GAAExD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,gBAATJ,CAAS,mBACtBW,EAAAA,GAAKE,OACEgK,GAASA,EAAMukB,SAEpBgT,EAAOpiC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,kBAAAC,YAAA,gBAAVJ,CAAU,mIACI6K,GAASA,EAAMukB,QACtC9uB,EAAAA,GAAMC,UAGND,EAAAA,GAAMssB,QAGNtsB,EAAAA,GAAME,OAGNF,EAAAA,GAAMG,QAIJ4hC,EAAcriC,EAAAA,QAAO0D,GAAExD,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAATJ,CAAS,mBACzBW,EAAAA,GAAKE,OACEgK,GAASA,EAAMukB,SAGpB9C,EAAatsB,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,gBAAVJ,CAAU,yUAIzBM,EAAAA,GAAMC,UAMND,EAAAA,GAAMssB,QAQNtsB,EAAAA,GAAME,OAONF,EAAAA,GAAMG,QAKJmzB,GAAQ5zB,EAAAA,EAAAA,SAAOusB,EAAAA,GAAYrsB,WAAA,CAAAC,YAAA,mBAAAC,YAAA,gBAAnBJ,CAAmB,uOAC7BsiC,EAAAA,EAAQC,uBAIRjiC,EAAAA,GAAMC,UAIND,EAAAA,GAAMssB,QAINtsB,EAAAA,GAAME,OAKNF,EAAAA,GAAMG,O","sources":["webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/fast-forward.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/pause-circle.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/play-circle.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/repeat-off.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/repeat.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/rewind.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/skip-next.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/skip-previous.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/volume-high.js","webpack://reform-gatsby-starter/./node_modules/@iconify/icons-mdi/volume-mute.js","webpack://reform-gatsby-starter/./src/components/Cards/FollowCard.tsx","webpack://reform-gatsby-starter/./src/components/blog/RecentPosts.tsx","webpack://reform-gatsby-starter/./node_modules/@iconify/react/dist/iconify.mjs","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/utils.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/ProgressBar.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/CurrentTime.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/Duration.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/VolumeBar.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/constants.js","webpack://reform-gatsby-starter/./node_modules/react-h5-audio-player/es/index.js","webpack://reform-gatsby-starter/./src/components/Podcast/Podcast.tsx","webpack://reform-gatsby-starter/./src/images/article/quoteLeft.svg","webpack://reform-gatsby-starter/./src/images/article/quoteRight.svg","webpack://reform-gatsby-starter/./src/sections/blog-template/2-BlogDetails.tsx","webpack://reform-gatsby-starter/./src/pages/BlogOrNewsTemplate.tsx","webpack://reform-gatsby-starter/./src/images/article/breadChevron.svg","webpack://reform-gatsby-starter/./src/sections/blog-template/0-Navigation.tsx","webpack://reform-gatsby-starter/./src/sections/blog-template/1-Hero.tsx"],"sourcesContent":["var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","var data = {\n\t\"body\": \"\",\n\t\"width\": 24,\n\t\"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;\n","import { useState, useEffect } from \"react\"\n\nimport styled from \"styled-components\"\n\nimport NavSignup from \"components/Form/NavSignup\"\nimport { ReactComponent as LI } from \"images/global/LinkedIn.svg\"\nimport { ReactComponent as Twit } from \"images/global/Twitter.svg\"\nimport { ReactComponent as YT } from \"images/global/Youtube.svg\"\nimport colors from \"styles/colors\"\nimport media from \"styles/media\"\nimport text from \"styles/text\"\nimport { LocaleData } from \"types/gatsby-alias\"\n\nexport default function FollowCard({\n pageType,\n translations,\n}: {\n pageType: string\n translations: LocaleData\n}) {\n const [dividerColor, setDividerColor] = useState(`${colors.blue800}`)\n\n useEffect(() => {\n if (pageType === \"People\" || pageType === \"Blog\") {\n setDividerColor(`${colors.blue10}`)\n } else if (pageType === \"News\") {\n setDividerColor(`${colors.turq50}`)\n } else {\n setDividerColor(`${colors.magenta10}`)\n }\n }, [pageType])\n\n return (\n \n \n \n {translations[\"Follow Galileo\"]}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {translations[\"Follow Galileo LatAm\"]}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst Wrapper = styled.div`\n position: absolute;\n display: flex;\n flex-direction: column;\n\n /* height: 25.181vw; */\n width: 13.253vw;\n\n /* bottom: 2.349vw; */\n left: 54.458vw;\n border-radius: 1.205vw;\n padding: 1.807vw 1.205vw;\n background-color: ${colors.white};\n z-index: 15;\n\n ${media.fullWidth} {\n width: 220px;\n /* height: 418px; */\n left: 904px;\n border-radius: 20px;\n padding: 30px 20px;\n /* bottom: 39px; */\n }\n\n ${media.tablet} {\n position: initial;\n width: 21.484vw;\n left: initial;\n\n /* height: 32.617vw; */\n bottom: initial;\n padding: 1.953vw;\n }\n ${media.mobile} {\n position: initial;\n align-items: center;\n padding: 8vw 5.333vw;\n left: unset;\n width: 89.333vw;\n height: auto;\n border-radius: 5.333vw;\n margin-top: 10.667vw;\n }\n`\n\nconst SocialContainer = styled.div<{ dividerColor: string }>`\n border-bottom: ${({ dividerColor }) =>\n dividerColor ? `1px solid ${dividerColor}` : \"black\"};\n margin-bottom: 1.807vw;\n ${media.fullWidth} {\n margin-bottom: 30px;\n }\n ${media.tablet} {\n margin-bottom: 0.488vw;\n }\n ${media.mobile} {\n display: flex;\n gap: 4vw;\n width: 100%;\n margin-bottom: 8.533vw;\n }\n`\n\nconst FollowDiv = styled.div`\n width: auto;\n height: auto;\n margin-bottom: 1.928vw;\n display: flex;\n flex-direction: column;\n\n ${media.fullWidth} {\n margin-bottom: 32px;\n }\n ${media.tablet} {\n margin-bottom: 0.977vw;\n }\n ${media.mobile} {\n margin-bottom: 8.533vw;\n }\n`\n\nconst FollowHeader = styled.div`\n ${text.buttonR};\n color: ${colors.blue800};\n margin-bottom: 0.602vw;\n\n ${media.fullWidth} {\n margin-bottom: 10px;\n }\n ${media.tablet} {\n ${text.bodyS};\n margin-bottom: 0.977vw;\n }\n ${media.mobile} {\n ${text.buttonS};\n white-space: pre;\n margin-bottom: 5.333vw;\n }\n`\n\nconst Row = styled.div`\n display: flex;\n`\n\nconst SocialLink = styled.a`\n display: flex;\n margin-right: 0.602vw;\n height: 2.108vw;\n ${media.fullWidth} {\n margin-right: 10px;\n height: 35px;\n }\n\n ${media.tablet} {\n margin-right: 0.977vw;\n height: 1.27vw;\n }\n\n ${media.mobile} {\n margin-right: 2.667vw;\n height: 9.333vw;\n }\n svg {\n height: 100%;\n }\n`\n\nconst Twitter = styled(Twit)`\n rect {\n fill: ${colors.black};\n }\n\n path {\n fill: ${colors.white};\n }\n\n ${media.hover} {\n :hover {\n cursor: pointer;\n rect {\n fill: ${colors.blue400};\n transition-duration: 0.3s;\n }\n path {\n fill: ${colors.white};\n transition-duration: 0.3s;\n }\n }\n }\n`\n\nconst Youtube = styled(YT)`\n rect {\n fill: ${colors.black};\n }\n\n path {\n fill: ${colors.white};\n }\n ${media.hover} {\n :hover {\n cursor: pointer;\n rect {\n fill: ${colors.blue400};\n transition-duration: 0.3s;\n }\n path {\n fill: ${colors.white};\n transition-duration: 0.3s;\n }\n }\n }\n`\n\nconst LinkedIn = styled(LI)`\n rect {\n fill: ${colors.black};\n }\n\n path {\n fill: ${colors.white};\n }\n ${media.hover} {\n :hover {\n cursor: pointer;\n rect {\n fill: ${colors.blue400};\n transition-duration: 0.3s;\n }\n path {\n fill: ${colors.white};\n transition-duration: 0.3s;\n }\n }\n }\n`\n","import { useState } from \"react\"\n\nimport { useI18next } from \"gatsby-plugin-react-i18next\"\nimport styled from \"styled-components\"\n\nimport RoundButton from \"components/buttons/RoundButton\"\nimport colors from \"styles/colors\"\nimport easing from \"styles/easing\"\nimport media from \"styles/media\"\nimport text from \"styles/text\"\nimport { CustomRoundButtonColors } from \"types\"\nimport { LocaleData } from \"types/gatsby-alias\"\nimport useMedia from \"utils/useMedia\"\n\nexport default function RecentPosts({\n recentPosts,\n buttonColors,\n buttonColorsLeft,\n bGColor,\n translations,\n}: {\n recentPosts: JSX.Element[]\n buttonColors: CustomRoundButtonColors\n buttonColorsLeft: CustomRoundButtonColors\n bGColor: string\n translations?: LocaleData\n}) {\n const [activeCard, setActiveCard] = useState(0)\n const buttonIndex = useMedia(3, 3, 2, 1)\n const mobile = useMedia(false, false, false, true)\n const { t } = useI18next()\n\n const moveCardsBack = (card: number) => {\n if (activeCard > 0) {\n setActiveCard(card)\n }\n }\n\n const moveCardsForward = (card: number) => {\n if (activeCard < recentPosts.length - buttonIndex) {\n setActiveCard(card)\n }\n }\n\n return (\n \n \n \n moveCardsBack(activeCard - 1)}\n disabled={activeCard <= 0 || recentPosts.length < 5}\n customColors={buttonColorsLeft}\n left\n />\n recentPosts.length - (buttonIndex + 1) ||\n recentPosts.length < 5\n }\n customColors={buttonColors}\n onClick={() => moveCardsForward(activeCard + 1)}\n right\n />\n \n \n {translations\n ? translations[\"Enjoy our Insights?\"]\n : t(\"Enjoy our Insights?\")}\n \n \n {translations ? translations[\"Recent Posts\"] : t(\"Recent Posts\")}\n \n \n {!mobile ? recentPosts : recentPosts.slice(0, 3)}\n \n \n \n )\n}\n\nconst Wrapper = styled.div`\n position: relative;\n overflow: hidden;\n width: 100%;\n`\n\nconst Content = styled.div<{ bGColor: string }>`\n height: 77.771vw;\n margin-left: 9.036vw;\n padding: 6.024vw 0 9.036vw 9.036vw;\n background: ${({ bGColor }) => bGColor};\n border-radius: 80px 0 0 0;\n position: relative;\n overflow: hidden;\n ${media.fullWidth} {\n height: 1291px;\n margin-left: 150px;\n padding: 100px 0 150px 150px;\n }\n ${media.tablet} {\n margin-left: 9.277vw;\n height: 101.27vw;\n }\n ${media.mobile} {\n height: auto;\n padding: 13.333vw 0 105.333vw 0;\n border-radius: 10.667vw 0 0 0;\n margin-left: 0;\n }\n`\n\nconst Buttons = styled.div`\n position: absolute;\n display: flex;\n top: 12.229vw;\n right: 6.627vw;\n gap: 0.602vw;\n ${media.fullWidth} {\n top: 203px;\n right: 110px;\n gap: 10px;\n }\n ${media.mobile} {\n display: none;\n }\n`\n\nconst Kicker = styled.p<{ textColor: string }>`\n ${text.h5};\n color: ${({ textColor }) => textColor};\n margin-bottom: 1.205vw;\n ${media.fullWidth} {\n margin-bottom: 20px;\n }\n ${media.tablet} {\n ${text.h6};\n margin-bottom: 0.977vw;\n }\n\n ${media.mobile} {\n ${text.bodyR};\n margin: 0 0 0 5.333vw;\n }\n`\n\nconst Title = styled.h4`\n ${text.h2};\n color: ${colors.blue800};\n margin-bottom: 1.807vw;\n ${media.fullWidth} {\n margin-bottom: 30px;\n }\n ${media.tablet} {\n ${text.h3};\n margin-bottom: 3.906vw;\n margin-left: -0.4vw;\n }\n ${media.mobile} {\n ${text.h4};\n margin: 0 0 40px 5.333vw;\n }\n`\n\nconst RecentPostsWrapper = styled.div<{ position: number }>`\n display: flex;\n gap: 1.205vw;\n transform: translateX(${({ position }) => `calc(${position} * -22.711vw)`});\n transition: 0.4s;\n transition-timing-function: ${easing.main};\n ${media.fullWidth} {\n gap: 20px;\n transform: translateX(${({ position }) => `calc(${position} * -377px)`});\n }\n ${media.tablet} {\n gap: 1.953vw;\n transform: translateX(${({ position }) => `calc(${position} * -36.816vw)`});\n }\n ${media.mobile} {\n flex-direction: column;\n align-items: center;\n gap: 5.333vw;\n }\n`\n","import React from 'react';\n\nconst matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst iconDefaults = Object.freeze({\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nfunction fullIcon(data) {\n return { ...iconDefaults, ...data };\n}\n\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIcon(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIcon(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIcon(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIcon = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchName)) && icon.name.match(matchName));\n};\n\nfunction mergeIconData(icon, alias) {\n const result = { ...icon };\n for (const key in iconDefaults) {\n const prop = key;\n if (alias[prop] !== void 0) {\n const value = alias[prop];\n if (result[prop] === void 0) {\n result[prop] = value;\n continue;\n }\n switch (prop) {\n case \"rotate\":\n result[prop] = (result[prop] + value) % 4;\n break;\n case \"hFlip\":\n case \"vFlip\":\n result[prop] = value !== result[prop];\n break;\n default:\n result[prop] = value;\n }\n }\n }\n return result;\n}\n\nfunction getIconData$1(data, name, full = false) {\n function getIcon(name2, iteration) {\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n if (iteration > 5) {\n return null;\n }\n const aliases = data.aliases;\n if (aliases && aliases[name2] !== void 0) {\n const item = aliases[name2];\n const result2 = getIcon(item.parent, iteration + 1);\n if (result2) {\n return mergeIconData(result2, item);\n }\n return result2;\n }\n const chars = data.chars;\n if (!iteration && chars && chars[name2] !== void 0) {\n return getIcon(chars[name2], iteration + 1);\n }\n return null;\n }\n const result = getIcon(name, 0);\n if (result) {\n for (const key in iconDefaults) {\n if (result[key] === void 0 && data[key] !== void 0) {\n result[key] = data[key];\n }\n }\n }\n return result && full ? fullIcon(result) : result;\n}\n\nfunction isVariation(item) {\n for (const key in iconDefaults) {\n if (item[key] !== void 0) {\n return true;\n }\n }\n return false;\n}\nfunction parseIconSet(data, callback, options) {\n options = options || {};\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const icons = data.icons;\n Object.keys(icons).forEach((name) => {\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n const parseAliases = options.aliases || \"all\";\n if (parseAliases !== \"none\" && typeof data.aliases === \"object\") {\n const aliases = data.aliases;\n Object.keys(aliases).forEach((name) => {\n if (parseAliases === \"variations\" && isVariation(aliases[name])) {\n return;\n }\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n }\n return names;\n}\n\nconst optionalProperties = {\n provider: \"string\",\n aliases: \"object\",\n not_found: \"object\"\n};\nfor (const prop in iconDefaults) {\n optionalProperties[prop] = typeof iconDefaults[prop];\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n for (const prop in optionalProperties) {\n if (obj[prop] !== void 0 && typeof obj[prop] !== optionalProperties[prop]) {\n return null;\n }\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchName) || typeof icon.body !== \"string\") {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n const aliases = data.aliases;\n if (aliases) {\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent]) {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n }\n return data;\n}\n\nconst storageVersion = 1;\nlet storage$1 = /* @__PURE__ */ Object.create(null);\ntry {\n const w = window || self;\n if (w && w._iconifyStorage.version === storageVersion) {\n storage$1 = w._iconifyStorage.storage;\n }\n} catch (err) {\n}\nfunction shareStorage() {\n try {\n const w = window || self;\n if (w && !w._iconifyStorage) {\n w._iconifyStorage = {\n version: storageVersion,\n storage: storage$1\n };\n }\n } catch (err) {\n }\n}\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ Object.create(null)\n };\n}\nfunction getStorage(provider, prefix) {\n if (storage$1[provider] === void 0) {\n storage$1[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage$1[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = newStorage(provider, prefix);\n }\n return providerStorage[prefix];\n}\nfunction addIconSet(storage2, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n const t = Date.now();\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage2.icons[name] = icon;\n } else {\n storage2.missing[name] = t;\n }\n });\n}\nfunction addIconToStorage(storage2, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage2.icons[name] = Object.freeze(fullIcon(icon));\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction getIconFromStorage(storage2, name) {\n const value = storage2.icons[name];\n return value === void 0 ? null : value;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n let providers;\n if (typeof provider === \"string\") {\n providers = [provider];\n } else {\n providers = Object.keys(storage$1);\n }\n providers.forEach((provider2) => {\n let prefixes;\n if (typeof provider2 === \"string\" && typeof prefix === \"string\") {\n prefixes = [prefix];\n } else {\n prefixes = storage$1[provider2] === void 0 ? [] : Object.keys(storage$1[provider2]);\n }\n prefixes.forEach((prefix2) => {\n const storage2 = getStorage(provider2, prefix2);\n const icons = Object.keys(storage2.icons).map((name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name);\n allIcons = allIcons.concat(icons);\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n return icon ? getIconFromStorage(getStorage(icon.provider, icon.prefix), icon.name) : null;\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = typeof data.provider === \"string\" ? data.provider : \"\";\n }\n if (simpleNames && provider === \"\" && (typeof data.prefix !== \"string\" || data.prefix === \"\")) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n if (typeof data.prefix !== \"string\" || !validateIcon({\n provider,\n prefix: data.prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, data.prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return getIconData(name) !== null;\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? { ...result } : null;\n}\n\nconst defaults = Object.freeze({\n inline: false,\n width: null,\n height: null,\n hAlign: \"center\",\n vAlign: \"middle\",\n slice: false,\n hFlip: false,\n vFlip: false,\n rotate: 0\n});\nfunction mergeCustomisations(defaults2, item) {\n const result = {};\n for (const key in defaults2) {\n const attr = key;\n result[attr] = defaults2[attr];\n if (item[attr] === void 0) {\n continue;\n }\n const value = item[attr];\n switch (attr) {\n case \"inline\":\n case \"slice\":\n if (typeof value === \"boolean\") {\n result[attr] = value;\n }\n break;\n case \"hFlip\":\n case \"vFlip\":\n if (value === true) {\n result[attr] = !result[attr];\n }\n break;\n case \"hAlign\":\n case \"vAlign\":\n if (typeof value === \"string\" && value !== \"\") {\n result[attr] = value;\n }\n break;\n case \"width\":\n case \"height\":\n if (typeof value === \"string\" && value !== \"\" || typeof value === \"number\" && value || value === null) {\n result[attr] = value;\n }\n break;\n case \"rotate\":\n if (typeof value === \"number\") {\n result[attr] += value;\n }\n break;\n }\n }\n return result;\n}\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision === void 0 ? 100 : precision;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction preserveAspectRatio(props) {\n let result = \"\";\n switch (props.hAlign) {\n case \"left\":\n result += \"xMin\";\n break;\n case \"right\":\n result += \"xMax\";\n break;\n default:\n result += \"xMid\";\n }\n switch (props.vAlign) {\n case \"top\":\n result += \"YMin\";\n break;\n case \"bottom\":\n result += \"YMax\";\n break;\n default:\n result += \"YMid\";\n }\n result += props.slice ? \" slice\" : \" meet\";\n return result;\n}\nfunction iconToSVG(icon, customisations) {\n const box = {\n left: icon.left,\n top: icon.top,\n width: icon.width,\n height: icon.height\n };\n let body = icon.body;\n [icon, customisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '' + body + \"\";\n }\n });\n let width, height;\n if (customisations.width === null && customisations.height === null) {\n height = \"1em\";\n width = calculateSize(height, box.width / box.height);\n } else if (customisations.width !== null && customisations.height !== null) {\n width = customisations.width;\n height = customisations.height;\n } else if (customisations.height !== null) {\n height = customisations.height;\n width = calculateSize(height, box.width / box.height);\n } else {\n width = customisations.width;\n height = calculateSize(width, box.height / box.width);\n }\n if (width === \"auto\") {\n width = box.width;\n }\n if (height === \"auto\") {\n height = box.height;\n }\n width = typeof width === \"string\" ? width : width.toString() + \"\";\n height = typeof height === \"string\" ? height : height.toString() + \"\";\n const result = {\n attributes: {\n width,\n height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + box.width.toString() + \" \" + box.height.toString()\n },\n body\n };\n if (customisations.inline) {\n result.inline = true;\n }\n return result;\n}\n\nfunction buildIcon(icon, customisations) {\n return iconToSVG(fullIcon(icon), customisations ? mergeCustomisations(defaults, customisations) : defaults);\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"), \"$1\" + newID + \"$3\");\n });\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n resources,\n path: source.path === void 0 ? \"/\" : source.path,\n maxURL: source.maxURL ? source.maxURL : 500,\n rotate: source.rotate ? source.rotate : 750,\n timeout: source.timeout ? source.timeout : 5e3,\n random: source.random === true,\n index: source.index ? source.index : 0,\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst mergeParams = (base, params) => {\n let result = base, hasParams = result.indexOf(\"?\") !== -1;\n function paramToString(value) {\n switch (typeof value) {\n case \"boolean\":\n return value ? \"true\" : \"false\";\n case \"number\":\n return encodeURIComponent(value);\n case \"string\":\n return encodeURIComponent(value);\n default:\n throw new Error(\"Invalid parameter\");\n }\n }\n Object.keys(params).forEach((key) => {\n let value;\n try {\n value = paramToString(params[key]);\n } catch (err) {\n return;\n }\n result += (hasParams ? \"&\" : \"?\") + encodeURIComponent(key) + \"=\" + value;\n hasParams = true;\n });\n return result;\n};\n\nconst maxLengthCache = {};\nconst pathCache = {};\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n return null;\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = mergeParams(prefix + \".json\", {\n icons: \"\"\n });\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n const cacheKey = provider + \":\" + prefix;\n pathCache[provider] = config.path;\n maxLengthCache[cacheKey] = result;\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n let maxLength = maxLengthCache[prefix];\n if (maxLength === void 0) {\n maxLength = calculateMaxLength(provider, prefix);\n }\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n if (pathCache[provider] === void 0) {\n const config = getAPIConfig(provider);\n if (!config) {\n return \"/\";\n }\n pathCache[provider] = config.path;\n }\n return pathCache[provider];\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n path += mergeParams(prefix + \".json\", {\n icons: iconsList\n });\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n callback(\"next\", defaultError);\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n if (storage[provider] === void 0) {\n storage[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = getStorage(provider, prefix);\n }\n const localStorage = providerStorage[prefix];\n let list;\n if (localStorage.icons[name] !== void 0) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing[name] !== void 0) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nconst callbacks = /* @__PURE__ */ Object.create(null);\nconst pendingUpdates = /* @__PURE__ */ Object.create(null);\nfunction removeCallback(sources, id) {\n sources.forEach((source) => {\n const provider = source.provider;\n if (callbacks[provider] === void 0) {\n return;\n }\n const providerCallbacks = callbacks[provider];\n const prefix = source.prefix;\n const items = providerCallbacks[prefix];\n if (items) {\n providerCallbacks[prefix] = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(provider, prefix) {\n if (pendingUpdates[provider] === void 0) {\n pendingUpdates[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingUpdates = pendingUpdates[provider];\n if (!providerPendingUpdates[prefix]) {\n providerPendingUpdates[prefix] = true;\n setTimeout(() => {\n providerPendingUpdates[prefix] = false;\n if (callbacks[provider] === void 0 || callbacks[provider][prefix] === void 0) {\n return;\n }\n const items = callbacks[provider][prefix].slice(0);\n if (!items.length) {\n return;\n }\n const storage = getStorage(provider, prefix);\n let hasPending = false;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name] !== void 0) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing[name] !== void 0) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([\n {\n provider,\n prefix\n }\n ], item.id);\n }\n item.callback(icons.loaded.slice(0), icons.missing.slice(0), icons.pending.slice(0), item.abort);\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (callbacks[provider] === void 0) {\n callbacks[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerCallbacks = callbacks[provider];\n if (providerCallbacks[prefix] === void 0) {\n providerCallbacks[prefix] = [];\n }\n providerCallbacks[prefix].push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, false, simpleNames) : item;\n if (!validate || validateIcon(icon, simpleNames)) {\n result.push({\n provider: icon.provider,\n prefix: icon.prefix,\n name: icon.name\n });\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction setConfig(config) {\n if (typeof config !== \"object\" || typeof config.resources !== \"object\" || !(config.resources instanceof Array) || !config.resources.length) {\n throw new Error(\"Invalid Reduncancy configuration\");\n }\n const newConfig = /* @__PURE__ */ Object.create(null);\n let key;\n for (key in defaultConfig) {\n if (config[key] !== void 0) {\n newConfig[key] = config[key];\n } else {\n newConfig[key] = defaultConfig[key];\n }\n }\n return newConfig;\n}\nfunction initRedundancy(cfg) {\n const config = setConfig(cfg);\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(config, payload, queryCallback, (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n });\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n const result = queries.find((value) => {\n return callback(value);\n });\n return result !== void 0 ? result : null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (redundancyCache[provider] === void 0) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst cache = {};\n\nfunction emptyCallback() {\n}\nconst pendingIcons = /* @__PURE__ */ Object.create(null);\nconst iconsToLoad = /* @__PURE__ */ Object.create(null);\nconst loaderFlags = /* @__PURE__ */ Object.create(null);\nconst queueFlags = /* @__PURE__ */ Object.create(null);\nfunction loadedNewIcons(provider, prefix) {\n if (loaderFlags[provider] === void 0) {\n loaderFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerLoaderFlags = loaderFlags[provider];\n if (!providerLoaderFlags[prefix]) {\n providerLoaderFlags[prefix] = true;\n setTimeout(() => {\n providerLoaderFlags[prefix] = false;\n updateCallbacks(provider, prefix);\n });\n }\n}\nconst errorsCache = /* @__PURE__ */ Object.create(null);\nfunction loadNewIcons(provider, prefix, icons) {\n function err() {\n const key = (provider === \"\" ? \"\" : \"@\" + provider + \":\") + prefix;\n const time = Math.floor(Date.now() / 6e4);\n if (errorsCache[key] < time) {\n errorsCache[key] = time;\n console.error('Unable to retrieve icons for \"' + key + '\" because API is not configured properly.');\n }\n }\n if (iconsToLoad[provider] === void 0) {\n iconsToLoad[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerIconsToLoad = iconsToLoad[provider];\n if (queueFlags[provider] === void 0) {\n queueFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerQueueFlags = queueFlags[provider];\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerIconsToLoad[prefix] === void 0) {\n providerIconsToLoad[prefix] = icons;\n } else {\n providerIconsToLoad[prefix] = providerIconsToLoad[prefix].concat(icons).sort();\n }\n if (!providerQueueFlags[prefix]) {\n providerQueueFlags[prefix] = true;\n setTimeout(() => {\n providerQueueFlags[prefix] = false;\n const icons2 = providerIconsToLoad[prefix];\n delete providerIconsToLoad[prefix];\n const api = getAPIModule(provider);\n if (!api) {\n err();\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data, error) => {\n const storage = getStorage(provider, prefix);\n if (typeof data !== \"object\") {\n if (error !== 404) {\n return;\n }\n const t = Date.now();\n item.icons.forEach((name) => {\n storage.missing[name] = t;\n });\n } else {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n return;\n }\n const pending = providerPendingIcons[prefix];\n parsed.forEach((name) => {\n delete pending[name];\n });\n if (cache.store) {\n cache.store(provider, data);\n }\n } catch (err2) {\n console.error(err2);\n }\n }\n loadedNewIcons(provider, prefix);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(sortedIcons.loaded, sortedIcons.missing, sortedIcons.pending, emptyCallback);\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const provider = icon.provider;\n const prefix = icon.prefix;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push({\n provider,\n prefix\n });\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerPendingIcons[prefix] === void 0) {\n providerPendingIcons[prefix] = /* @__PURE__ */ Object.create(null);\n }\n if (newIcons[provider] === void 0) {\n newIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerNewIcons = newIcons[provider];\n if (providerNewIcons[prefix] === void 0) {\n providerNewIcons[prefix] = [];\n }\n });\n const time = Date.now();\n sortedIcons.pending.forEach((icon) => {\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const pendingQueue = pendingIcons[provider][prefix];\n if (pendingQueue[name] === void 0) {\n pendingQueue[name] = time;\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(provider, prefix, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon) : icon;\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const storage = getStorage(iconObj.provider, iconObj.prefix);\n const data = getIconFromStorage(storage, iconObj.name);\n if (data) {\n fulfill(data);\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nconst cacheVersion = \"iconify2\";\nconst cachePrefix = \"iconify\";\nconst countKey = cachePrefix + \"-count\";\nconst versionKey = cachePrefix + \"-version\";\nconst hour = 36e5;\nconst cacheExpiration = 168;\nconst config = {\n local: true,\n session: true\n};\nlet loaded = false;\nconst count = {\n local: 0,\n session: 0\n};\nconst emptyList = {\n local: [],\n session: []\n};\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getGlobal(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n config[key] = false;\n return null;\n}\nfunction setCount(storage, key, value) {\n try {\n storage.setItem(countKey, value.toString());\n count[key] = value;\n return true;\n } catch (err) {\n return false;\n }\n}\nfunction getCount(storage) {\n const count2 = storage.getItem(countKey);\n if (count2) {\n const total = parseInt(count2);\n return total ? total : 0;\n }\n return 0;\n}\nfunction initCache(storage, key) {\n try {\n storage.setItem(versionKey, cacheVersion);\n } catch (err) {\n }\n setCount(storage, key, 0);\n}\nfunction destroyCache(storage) {\n try {\n const total = getCount(storage);\n for (let i = 0; i < total; i++) {\n storage.removeItem(cachePrefix + i.toString());\n }\n } catch (err) {\n }\n}\nconst loadCache = () => {\n if (loaded) {\n return;\n }\n loaded = true;\n const minTime = Math.floor(Date.now() / hour) - cacheExpiration;\n function load(key) {\n const func = getGlobal(key);\n if (!func) {\n return;\n }\n const getItem = (index) => {\n const name = cachePrefix + index.toString();\n const item = func.getItem(name);\n if (typeof item !== \"string\") {\n return false;\n }\n let valid = true;\n try {\n const data = JSON.parse(item);\n if (typeof data !== \"object\" || typeof data.cached !== \"number\" || data.cached < minTime || typeof data.provider !== \"string\" || typeof data.data !== \"object\" || typeof data.data.prefix !== \"string\") {\n valid = false;\n } else {\n const provider = data.provider;\n const prefix = data.data.prefix;\n const storage = getStorage(provider, prefix);\n valid = addIconSet(storage, data.data).length > 0;\n }\n } catch (err) {\n valid = false;\n }\n if (!valid) {\n func.removeItem(name);\n }\n return valid;\n };\n try {\n const version = func.getItem(versionKey);\n if (version !== cacheVersion) {\n if (version) {\n destroyCache(func);\n }\n initCache(func, key);\n return;\n }\n let total = getCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!getItem(i)) {\n if (i === total - 1) {\n total--;\n } else {\n emptyList[key].push(i);\n }\n }\n }\n setCount(func, key, total);\n } catch (err) {\n }\n }\n for (const key in config) {\n load(key);\n }\n};\nconst storeCache = (provider, data) => {\n if (!loaded) {\n loadCache();\n }\n function store(key) {\n if (!config[key]) {\n return false;\n }\n const func = getGlobal(key);\n if (!func) {\n return false;\n }\n let index = emptyList[key].shift();\n if (index === void 0) {\n index = count[key];\n if (!setCount(func, key, index + 1)) {\n return false;\n }\n }\n try {\n const item = {\n cached: Math.floor(Date.now() / hour),\n provider,\n data\n };\n func.setItem(cachePrefix + index.toString(), JSON.stringify(item));\n } catch (err) {\n return false;\n }\n return true;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n config[storage] = value;\n break;\n case \"all\":\n for (const key in config) {\n config[key] = value;\n }\n break;\n }\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\nfunction alignmentFromString(custom, align) {\n align.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"left\":\n case \"center\":\n case \"right\":\n custom.hAlign = value;\n break;\n case \"top\":\n case \"middle\":\n case \"bottom\":\n custom.vAlign = value;\n break;\n case \"slice\":\n case \"crop\":\n custom.slice = true;\n break;\n case \"meet\":\n custom.slice = false;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n 'style': {}, // Include style if it isn't set to add verticalAlign later\n};\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = { ...defaults, inline: true };\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline ? inlineDefaults : defaults;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Create style\n const style = typeof props.style === 'object' && props.style !== null\n ? props.style\n : {};\n // Create SVG component properties\n const componentProps = { ...svgDefaults, ref, style };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Alignment as string\n case 'align':\n if (typeof value === 'string') {\n alignmentFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact'),\n };\n for (let key in item.attributes) {\n componentProps[key] = item.attributes[key];\n }\n if (item.inline && style.verticalAlign === void 0) {\n style.verticalAlign = '-0.125em';\n }\n return React.createElement('svg', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n cache.store = storeCache;\n loadCache();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: fullIcon(icon),\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (data === null) {\n // Icon needs to be loaded\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render(icon.data, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = { ...props, _ref: ref, _inline: true };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n mergeParams,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs, shareStorage };\n","export var getMainLayoutClassName = function getMainLayoutClassName(layout) {\n switch (layout) {\n case 'stacked':\n return 'rhap_stacked';\n\n case 'stacked-reverse':\n return 'rhap_stacked-reverse';\n\n case 'horizontal':\n return 'rhap_horizontal';\n\n case 'horizontal-reverse':\n return 'rhap_horizontal-reverse';\n\n default:\n return 'rhap_stacked';\n }\n};\nexport var getPosX = function getPosX(event) {\n if (event instanceof MouseEvent) {\n return event.clientX;\n } else {\n return event.touches[0].clientX;\n }\n};\n\nvar addHeadingZero = function addHeadingZero(num) {\n return num > 9 ? num.toString() : \"0\".concat(num);\n};\n\nexport var getDisplayTimeBySeconds = function getDisplayTimeBySeconds(seconds, totalSeconds, timeFormat) {\n if (!isFinite(seconds)) {\n return null;\n }\n\n var min = Math.floor(seconds / 60);\n var minStr = addHeadingZero(min);\n var secStr = addHeadingZero(Math.floor(seconds % 60));\n var minStrForHour = addHeadingZero(Math.floor(min % 60));\n var hourStr = Math.floor(min / 60);\n var mmSs = \"\".concat(minStr, \":\").concat(secStr);\n var hhMmSs = \"\".concat(hourStr, \":\").concat(minStrForHour, \":\").concat(secStr);\n\n if (timeFormat === 'auto') {\n if (totalSeconds >= 3600) {\n return hhMmSs;\n } else {\n return mmSs;\n }\n } else if (timeFormat === 'mm:ss') {\n return mmSs;\n } else if (timeFormat === 'hh:mm:ss') {\n return hhMmSs;\n }\n};\nexport function throttle(func, limit) {\n var inThrottle = false;\n return function (arg) {\n if (!inThrottle) {\n func(arg);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { Component, forwardRef } from 'react';\nimport { getPosX, throttle } from './utils';\n\nvar ProgressBar = function (_Component) {\n _inherits(ProgressBar, _Component);\n\n var _super = _createSuper(ProgressBar);\n\n function ProgressBar() {\n var _this;\n\n _classCallCheck(this, ProgressBar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timeOnMouseMove\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isDraggingProgress: false,\n currentTimePos: '0%',\n hasDownloadProgressAnimation: false,\n downloadProgressArr: [],\n waitingForSeekCallback: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentProgress\", function (event) {\n var _this$props = _this.props,\n audio = _this$props.audio,\n progressBar = _this$props.progressBar;\n var isSingleFileProgressiveDownload = audio.src.indexOf('blob:') !== 0 && typeof _this.props.srcDuration === 'undefined';\n\n if (isSingleFileProgressiveDownload && (!audio.src || !isFinite(audio.currentTime) || !progressBar.current)) {\n return {\n currentTime: 0,\n currentTimePos: '0%'\n };\n }\n\n var progressBarRect = progressBar.current.getBoundingClientRect();\n var maxRelativePos = progressBarRect.width;\n var relativePos = getPosX(event) - progressBarRect.left;\n\n if (relativePos < 0) {\n relativePos = 0;\n } else if (relativePos > maxRelativePos) {\n relativePos = maxRelativePos;\n }\n\n var duration = _this.getDuration();\n\n var currentTime = duration * relativePos / maxRelativePos;\n return {\n currentTime: currentTime,\n currentTimePos: \"\".concat((relativePos / maxRelativePos * 100).toFixed(2), \"%\")\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDownOrTouchStartProgressBar\", function (event) {\n event.stopPropagation();\n\n var _this$getCurrentProgr = _this.getCurrentProgress(event.nativeEvent),\n currentTime = _this$getCurrentProgr.currentTime,\n currentTimePos = _this$getCurrentProgr.currentTimePos;\n\n if (isFinite(currentTime)) {\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n isDraggingProgress: true,\n currentTimePos: currentTimePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n if (event instanceof MouseEvent) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingProgress = _this.state.isDraggingProgress;\n\n if (isDraggingProgress) {\n var _this$getCurrentProgr2 = _this.getCurrentProgress(event),\n currentTime = _this$getCurrentProgr2.currentTime,\n currentTimePos = _this$getCurrentProgr2.currentTimePos;\n\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n currentTimePos: currentTimePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n var newTime = _this.timeOnMouseMove;\n var _this$props2 = _this.props,\n audio = _this$props2.audio,\n onChangeCurrentTimeError = _this$props2.onChangeCurrentTimeError,\n onSeek = _this$props2.onSeek;\n\n if (onSeek) {\n _this.setState({\n isDraggingProgress: false,\n waitingForSeekCallback: true\n }, function () {\n onSeek(audio, newTime).then(function () {\n return _this.setState({\n waitingForSeekCallback: false\n });\n }, function (err) {\n throw new Error(err);\n });\n });\n } else {\n var newProps = {\n isDraggingProgress: false\n };\n\n if (audio.readyState === audio.HAVE_NOTHING || audio.readyState === audio.HAVE_METADATA || !isFinite(newTime)) {\n newProps.currentTimePos = '0%';\n onChangeCurrentTimeError && onChangeCurrentTimeError();\n } else {\n audio.currentTime = newTime;\n }\n\n _this.setState(newProps);\n }\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioTimeUpdate\", throttle(function (e) {\n var isDraggingProgress = _this.state.isDraggingProgress;\n var audio = e.target;\n if (isDraggingProgress || _this.state.waitingForSeekCallback === true) return;\n var currentTime = audio.currentTime;\n\n var duration = _this.getDuration();\n\n _this.setState({\n currentTimePos: \"\".concat((currentTime / duration * 100 || 0).toFixed(2), \"%\")\n });\n }, _this.props.progressUpdateInterval));\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDownloadProgressUpdate\", function (e) {\n var audio = e.target;\n\n var duration = _this.getDuration();\n\n var downloadProgressArr = [];\n\n for (var i = 0; i < audio.buffered.length; i++) {\n var bufferedStart = audio.buffered.start(i);\n var bufferedEnd = audio.buffered.end(i);\n downloadProgressArr.push({\n left: \"\".concat(Math.round(100 / duration * bufferedStart) || 0, \"%\"),\n width: \"\".concat(Math.round(100 / duration * (bufferedEnd - bufferedStart)) || 0, \"%\")\n });\n }\n\n clearTimeout(_this.downloadProgressAnimationTimer);\n\n _this.setState({\n downloadProgressArr: downloadProgressArr,\n hasDownloadProgressAnimation: true\n });\n\n _this.downloadProgressAnimationTimer = setTimeout(function () {\n _this.setState({\n hasDownloadProgressAnimation: false\n });\n }, 200);\n });\n\n return _this;\n }\n\n _createClass(ProgressBar, [{\n key: \"getDuration\",\n value: function getDuration() {\n var _this$props3 = this.props,\n audio = _this$props3.audio,\n srcDuration = _this$props3.srcDuration;\n return typeof srcDuration === 'undefined' ? audio.duration : srcDuration;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', this.handleAudioTimeUpdate);\n audio.addEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioTimeUpdate);\n this.audio.removeEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n\n clearTimeout(this.downloadProgressAnimationTimer);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n showDownloadProgress = _this$props4.showDownloadProgress,\n showFilledProgress = _this$props4.showFilledProgress,\n progressBar = _this$props4.progressBar,\n i18nProgressBar = _this$props4.i18nProgressBar;\n var _this$state = this.state,\n currentTimePos = _this$state.currentTimePos,\n downloadProgressArr = _this$state.downloadProgressArr,\n hasDownloadProgressAnimation = _this$state.hasDownloadProgressAnimation;\n return React.createElement(\"div\", {\n className: \"rhap_progress-container\",\n ref: progressBar,\n \"aria-label\": i18nProgressBar,\n role: \"progressbar\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number(currentTimePos.split('%')[0]),\n tabIndex: 0,\n onMouseDown: this.handleMouseDownOrTouchStartProgressBar,\n onTouchStart: this.handleMouseDownOrTouchStartProgressBar,\n onContextMenu: this.handleContextMenu\n }, React.createElement(\"div\", {\n className: \"rhap_progress-bar \".concat(showDownloadProgress ? 'rhap_progress-bar-show-download' : '')\n }, React.createElement(\"div\", {\n className: \"rhap_progress-indicator\",\n style: {\n left: currentTimePos\n }\n }), showFilledProgress && React.createElement(\"div\", {\n className: \"rhap_progress-filled\",\n style: {\n width: currentTimePos\n }\n }), showDownloadProgress && downloadProgressArr.map(function (_ref, i) {\n var left = _ref.left,\n width = _ref.width;\n return React.createElement(\"div\", {\n key: i,\n className: \"rhap_download-progress\",\n style: {\n left: left,\n width: width,\n transitionDuration: hasDownloadProgressAnimation ? '.2s' : '0s'\n }\n });\n })));\n }\n }]);\n\n return ProgressBar;\n}(Component);\n\nvar ProgressBarForwardRef = function ProgressBarForwardRef(props, ref) {\n return React.createElement(ProgressBar, _extends({}, props, {\n progressBar: ref\n }));\n};\n\nexport default forwardRef(ProgressBarForwardRef);\nexport { ProgressBar, ProgressBarForwardRef };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar CurrentTime = function (_PureComponent) {\n _inherits(CurrentTime, _PureComponent);\n\n var _super = _createSuper(CurrentTime);\n\n function CurrentTime(props) {\n var _this;\n\n _classCallCheck(this, CurrentTime);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentTime: _this.props.defaultCurrentTime\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioCurrentTimeChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n isLeftTime = _this$props.isLeftTime,\n timeFormat = _this$props.timeFormat,\n defaultCurrentTime = _this$props.defaultCurrentTime;\n\n _this.setState({\n currentTime: getDisplayTimeBySeconds(isLeftTime ? audio.duration - audio.currentTime : audio.currentTime, audio.duration, timeFormat) || defaultCurrentTime\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\n\n if (audio && !_this.hasAddedAudioEventListener) {\n _this.audio = audio;\n _this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', _this.handleAudioCurrentTimeChange);\n audio.addEventListener('loadedmetadata', _this.handleAudioCurrentTimeChange);\n }\n });\n\n var _audio = props.audio,\n _defaultCurrentTime = props.defaultCurrentTime,\n _isLeftTime = props.isLeftTime,\n _timeFormat = props.timeFormat;\n var currentTime = _defaultCurrentTime;\n\n if (_audio) {\n currentTime = getDisplayTimeBySeconds(_isLeftTime ? _audio.duration - _audio.currentTime : _audio.currentTime, _audio.duration, _timeFormat);\n }\n\n _this.state = {\n currentTime: currentTime\n };\n return _this;\n }\n\n _createClass(CurrentTime, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioCurrentTimeChange);\n this.audio.removeEventListener('loadedmetadata', this.handleAudioCurrentTimeChange);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.state.currentTime;\n }\n }]);\n\n return CurrentTime;\n}(PureComponent);\n\nexport default CurrentTime;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar Duration = function (_PureComponent) {\n _inherits(Duration, _PureComponent);\n\n var _super = _createSuper(Duration);\n\n function Duration(props) {\n var _this;\n\n _classCallCheck(this, Duration);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n duration: _this.props.audio ? getDisplayTimeBySeconds(_this.props.audio.duration, _this.props.audio.duration, _this.props.timeFormat) : _this.props.defaultDuration\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDurationChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n timeFormat = _this$props.timeFormat,\n defaultDuration = _this$props.defaultDuration;\n\n _this.setState({\n duration: getDisplayTimeBySeconds(audio.duration, audio.duration, timeFormat) || defaultDuration\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\n\n if (audio && !_this.hasAddedAudioEventListener) {\n _this.audio = audio;\n _this.hasAddedAudioEventListener = true;\n audio.addEventListener('durationchange', _this.handleAudioDurationChange);\n audio.addEventListener('abort', _this.handleAudioDurationChange);\n }\n });\n\n var _audio = props.audio,\n _timeFormat = props.timeFormat,\n _defaultDuration = props.defaultDuration;\n _this.state = {\n duration: _audio ? getDisplayTimeBySeconds(_audio.duration, _audio.duration, _timeFormat) : _defaultDuration\n };\n return _this;\n }\n\n _createClass(Duration, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('durationchange', this.handleAudioDurationChange);\n this.audio.removeEventListener('abort', this.handleAudioDurationChange);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.state.duration;\n }\n }]);\n\n return Duration;\n}(PureComponent);\n\nexport default Duration;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { Component, createRef } from 'react';\nimport { getPosX } from './utils';\n\nvar VolumeControls = function (_Component) {\n _inherits(VolumeControls, _Component);\n\n var _super = _createSuper(VolumeControls);\n\n function VolumeControls() {\n var _this;\n\n _classCallCheck(this, VolumeControls);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentVolumePos: \"\".concat((_this.lastVolume / 1 * 100 || 0).toFixed(2), \"%\"),\n hasVolumeAnimation: false,\n isDraggingVolume: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentVolume\", function (event) {\n var audio = _this.props.audio;\n\n if (!_this.volumeBar.current) {\n return {\n currentVolume: audio.volume,\n currentVolumePos: _this.state.currentVolumePos\n };\n }\n\n var volumeBarRect = _this.volumeBar.current.getBoundingClientRect();\n\n var maxRelativePos = volumeBarRect.width;\n var relativePos = getPosX(event) - volumeBarRect.left;\n var currentVolume;\n var currentVolumePos;\n\n if (relativePos < 0) {\n currentVolume = 0;\n currentVolumePos = '0%';\n } else if (relativePos > volumeBarRect.width) {\n currentVolume = 1;\n currentVolumePos = '100%';\n } else {\n currentVolume = relativePos / maxRelativePos;\n currentVolumePos = \"\".concat(relativePos / maxRelativePos * 100, \"%\");\n }\n\n return {\n currentVolume: currentVolume,\n currentVolumePos: currentVolumePos\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.props.audio;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleVolumnControlMouseOrTouchDown\", function (event) {\n event.stopPropagation();\n var audio = _this.props.audio;\n\n var _this$getCurrentVolum = _this.getCurrentVolume(event.nativeEvent),\n currentVolume = _this$getCurrentVolum.currentVolume,\n currentVolumePos = _this$getCurrentVolum.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n isDraggingVolume: true,\n currentVolumePos: currentVolumePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n if (event instanceof MouseEvent) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n var audio = _this.props.audio;\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingVolume = _this.state.isDraggingVolume;\n\n if (isDraggingVolume) {\n var _this$getCurrentVolum2 = _this.getCurrentVolume(event),\n currentVolume = _this$getCurrentVolum2.currentVolume,\n currentVolumePos = _this$getCurrentVolum2.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n currentVolumePos: currentVolumePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n\n _this.setState({\n isDraggingVolume: false\n });\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioVolumeChange\", function (e) {\n var isDraggingVolume = _this.state.isDraggingVolume;\n var _ref = e.target,\n volume = _ref.volume;\n\n if (_this.lastVolume > 0 && volume === 0 || _this.lastVolume === 0 && volume > 0) {\n _this.props.onMuteChange();\n }\n\n _this.lastVolume = volume;\n if (isDraggingVolume) return;\n\n _this.setState({\n hasVolumeAnimation: true,\n currentVolumePos: \"\".concat((volume / 1 * 100 || 0).toFixed(2), \"%\")\n });\n\n clearTimeout(_this.volumeAnimationTimer);\n _this.volumeAnimationTimer = setTimeout(function () {\n _this.setState({\n hasVolumeAnimation: false\n });\n }, 100);\n });\n\n return _this;\n }\n\n _createClass(VolumeControls, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('volumechange', this.handleAudioVolumeChange);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('volumechange', this.handleAudioVolumeChange);\n }\n\n clearTimeout(this.volumeAnimationTimer);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n audio = _this$props.audio,\n showFilledVolume = _this$props.showFilledVolume,\n i18nVolumeControl = _this$props.i18nVolumeControl;\n var _this$state = this.state,\n currentVolumePos = _this$state.currentVolumePos,\n hasVolumeAnimation = _this$state.hasVolumeAnimation;\n\n var _ref2 = audio || {},\n volume = _ref2.volume;\n\n return React.createElement(\"div\", {\n ref: this.volumeBar,\n onMouseDown: this.handleVolumnControlMouseOrTouchDown,\n onTouchStart: this.handleVolumnControlMouseOrTouchDown,\n onContextMenu: this.handleContextMenu,\n role: \"progressbar\",\n \"aria-label\": i18nVolumeControl,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number((volume * 100).toFixed(0)),\n tabIndex: 0,\n className: \"rhap_volume-bar-area\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-bar\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-indicator\",\n style: {\n left: currentVolumePos,\n transitionDuration: hasVolumeAnimation ? '.1s' : '0s'\n }\n }), showFilledVolume && React.createElement(\"div\", {\n className: \"rhap_volume-filled\",\n style: {\n width: currentVolumePos\n }\n })));\n }\n }]);\n\n return VolumeControls;\n}(Component);\n\nexport default VolumeControls;","export var RHAP_UI;\n\n(function (RHAP_UI) {\n RHAP_UI[\"CURRENT_TIME\"] = \"CURRENT_TIME\";\n RHAP_UI[\"CURRENT_LEFT_TIME\"] = \"CURRENT_LEFT_TIME\";\n RHAP_UI[\"PROGRESS_BAR\"] = \"PROGRESS_BAR\";\n RHAP_UI[\"DURATION\"] = \"DURATION\";\n RHAP_UI[\"ADDITIONAL_CONTROLS\"] = \"ADDITIONAL_CONTROLS\";\n RHAP_UI[\"MAIN_CONTROLS\"] = \"MAIN_CONTROLS\";\n RHAP_UI[\"VOLUME_CONTROLS\"] = \"VOLUME_CONTROLS\";\n RHAP_UI[\"LOOP\"] = \"LOOP\";\n RHAP_UI[\"VOLUME\"] = \"VOLUME\";\n})(RHAP_UI || (RHAP_UI = {}));","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { Component, cloneElement, isValidElement, createRef } from 'react';\nimport { Icon } from '@iconify/react';\nimport playCircle from '@iconify/icons-mdi/play-circle';\nimport pauseCircle from '@iconify/icons-mdi/pause-circle';\nimport skipPrevious from '@iconify/icons-mdi/skip-previous';\nimport skipNext from '@iconify/icons-mdi/skip-next';\nimport fastForward from '@iconify/icons-mdi/fast-forward';\nimport rewind from '@iconify/icons-mdi/rewind';\nimport volumeHigh from '@iconify/icons-mdi/volume-high';\nimport volumeMute from '@iconify/icons-mdi/volume-mute';\nimport repeat from '@iconify/icons-mdi/repeat';\nimport repeatOff from '@iconify/icons-mdi/repeat-off';\nimport ProgressBar from './ProgressBar';\nimport CurrentTime from './CurrentTime';\nimport Duration from './Duration';\nimport VolumeBar from './VolumeBar';\nimport { RHAP_UI } from './constants';\nimport { throttle, getMainLayoutClassName, getDisplayTimeBySeconds } from './utils';\n\nvar H5AudioPlayer = function (_Component) {\n _inherits(H5AudioPlayer, _Component);\n\n var _super = _createSuper(H5AudioPlayer);\n\n function H5AudioPlayer() {\n var _this;\n\n _classCallCheck(this, H5AudioPlayer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"progressBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"container\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"listenTracker\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"togglePlay\", function (e) {\n e.stopPropagation();\n var audio = _this.audio.current;\n\n if ((audio.paused || audio.ended) && audio.src) {\n _this.playAudioPromise();\n } else if (!audio.paused) {\n audio.pause();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"playAudioPromise\", function () {\n var playPromise = _this.audio.current.play();\n\n if (playPromise) {\n playPromise.then(null).catch(function (err) {\n var onPlayError = _this.props.onPlayError;\n onPlayError && onPlayError(new Error(err));\n });\n } else {\n _this.forceUpdate();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isPlaying\", function () {\n var audio = _this.audio.current;\n if (!audio) return false;\n return !audio.paused && !audio.ended;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function (e) {\n _this.forceUpdate();\n\n _this.props.onPlay && _this.props.onPlay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n if (!_this.audio) return;\n\n _this.forceUpdate();\n\n _this.props.onPause && _this.props.onPause(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function (e) {\n if (!_this.audio) return;\n\n _this.forceUpdate();\n\n _this.props.onEnded && _this.props.onEnded(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAbort\", function (e) {\n _this.props.onAbort && _this.props.onAbort(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.audio.current;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMuteChange\", function () {\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickLoopButton\", function () {\n _this.audio.current.loop = !_this.audio.current.loop;\n\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickRewind\", function () {\n var _this$props = _this.props,\n progressJumpSteps = _this$props.progressJumpSteps,\n progressJumpStep = _this$props.progressJumpStep;\n var jumpStep = progressJumpSteps.backward || progressJumpStep;\n\n _this.setJumpTime(-jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickForward\", function () {\n var _this$props2 = _this.props,\n progressJumpSteps = _this$props2.progressJumpSteps,\n progressJumpStep = _this$props2.progressJumpStep;\n var jumpStep = progressJumpSteps.forward || progressJumpStep;\n\n _this.setJumpTime(jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpTime\", function (time) {\n var audio = _this.audio.current;\n var duration = audio.duration,\n prevTime = audio.currentTime;\n\n if (audio.readyState === audio.HAVE_NOTHING || audio.readyState === audio.HAVE_METADATA || !isFinite(duration) || !isFinite(prevTime)) {\n return _this.props.onChangeCurrentTimeError && _this.props.onChangeCurrentTimeError();\n }\n\n var currentTime = prevTime + time / 1000;\n\n if (currentTime < 0) {\n audio.currentTime = 0;\n currentTime = 0;\n } else if (currentTime > duration) {\n audio.currentTime = duration;\n currentTime = duration;\n } else {\n audio.currentTime = currentTime;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpVolume\", function (volume) {\n var newVolume = _this.audio.current.volume + volume;\n if (newVolume < 0) newVolume = 0;else if (newVolume > 1) newVolume = 1;\n _this.audio.current.volume = newVolume;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (e) {\n if (_this.props.hasDefaultKeyBindings) {\n switch (e.key) {\n case ' ':\n if (e.target === _this.container.current || e.target === _this.progressBar.current) {\n e.preventDefault();\n\n _this.togglePlay(e);\n }\n\n break;\n\n case 'ArrowLeft':\n _this.handleClickRewind();\n\n break;\n\n case 'ArrowRight':\n _this.handleClickForward();\n\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n\n _this.setJumpVolume(_this.props.volumeJumpStep);\n\n break;\n\n case 'ArrowDown':\n e.preventDefault();\n\n _this.setJumpVolume(-_this.props.volumeJumpStep);\n\n break;\n\n case 'l':\n _this.handleClickLoopButton();\n\n break;\n\n case 'm':\n _this.handleClickVolumeButton();\n\n break;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModules\", function (modules) {\n return modules.map(function (comp, i) {\n return _this.renderUIModule(comp, i);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModule\", function (comp, key) {\n var _this$props3 = _this.props,\n defaultCurrentTime = _this$props3.defaultCurrentTime,\n progressUpdateInterval = _this$props3.progressUpdateInterval,\n showDownloadProgress = _this$props3.showDownloadProgress,\n showFilledProgress = _this$props3.showFilledProgress,\n showFilledVolume = _this$props3.showFilledVolume,\n defaultDuration = _this$props3.defaultDuration,\n customIcons = _this$props3.customIcons,\n showSkipControls = _this$props3.showSkipControls,\n onClickPrevious = _this$props3.onClickPrevious,\n onClickNext = _this$props3.onClickNext,\n onChangeCurrentTimeError = _this$props3.onChangeCurrentTimeError,\n showJumpControls = _this$props3.showJumpControls,\n customAdditionalControls = _this$props3.customAdditionalControls,\n customVolumeControls = _this$props3.customVolumeControls,\n muted = _this$props3.muted,\n timeFormat = _this$props3.timeFormat,\n volumeProp = _this$props3.volume,\n loopProp = _this$props3.loop,\n mse = _this$props3.mse,\n i18nAriaLabels = _this$props3.i18nAriaLabels;\n\n switch (comp) {\n case RHAP_UI.CURRENT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-time\",\n className: \"rhap_time rhap_current-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: false,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.CURRENT_LEFT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-left-time\",\n className: \"rhap_time rhap_current-left-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: true,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.PROGRESS_BAR:\n return React.createElement(ProgressBar, {\n key: key,\n ref: _this.progressBar,\n audio: _this.audio.current,\n progressUpdateInterval: progressUpdateInterval,\n showDownloadProgress: showDownloadProgress,\n showFilledProgress: showFilledProgress,\n onSeek: mse && mse.onSeek,\n onChangeCurrentTimeError: onChangeCurrentTimeError,\n srcDuration: mse && mse.srcDuration,\n i18nProgressBar: i18nAriaLabels.progressControl\n });\n\n case RHAP_UI.DURATION:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_time rhap_total-time\"\n }, mse && mse.srcDuration ? getDisplayTimeBySeconds(mse.srcDuration, mse.srcDuration, _this.props.timeFormat) : React.createElement(Duration, {\n audio: _this.audio.current,\n defaultDuration: defaultDuration,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.ADDITIONAL_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_additional-controls\"\n }, _this.renderUIModules(customAdditionalControls));\n\n case RHAP_UI.MAIN_CONTROLS:\n {\n var isPlaying = _this.isPlaying();\n\n var actionIcon;\n\n if (isPlaying) {\n actionIcon = customIcons.pause ? customIcons.pause : React.createElement(Icon, {\n icon: pauseCircle\n });\n } else {\n actionIcon = customIcons.play ? customIcons.play : React.createElement(Icon, {\n icon: playCircle\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_main-controls\"\n }, showSkipControls && React.createElement(\"button\", {\n \"aria-label\": i18nAriaLabels.previous,\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickPrevious\n }, customIcons.previous ? customIcons.previous : React.createElement(Icon, {\n icon: skipPrevious\n })), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": i18nAriaLabels.rewind,\n className: \"rhap_button-clear rhap_main-controls-button rhap_rewind-button\",\n type: \"button\",\n onClick: _this.handleClickRewind\n }, customIcons.rewind ? customIcons.rewind : React.createElement(Icon, {\n icon: rewind\n })), React.createElement(\"button\", {\n \"aria-label\": isPlaying ? i18nAriaLabels.pause : i18nAriaLabels.play,\n className: \"rhap_button-clear rhap_main-controls-button rhap_play-pause-button\",\n type: \"button\",\n onClick: _this.togglePlay\n }, actionIcon), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": i18nAriaLabels.forward,\n className: \"rhap_button-clear rhap_main-controls-button rhap_forward-button\",\n type: \"button\",\n onClick: _this.handleClickForward\n }, customIcons.forward ? customIcons.forward : React.createElement(Icon, {\n icon: fastForward\n })), showSkipControls && React.createElement(\"button\", {\n \"aria-label\": i18nAriaLabels.next,\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickNext\n }, customIcons.next ? customIcons.next : React.createElement(Icon, {\n icon: skipNext\n })));\n }\n\n case RHAP_UI.VOLUME_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-controls\"\n }, _this.renderUIModules(customVolumeControls));\n\n case RHAP_UI.LOOP:\n {\n var loop = _this.audio.current ? _this.audio.current.loop : loopProp;\n var loopIcon;\n\n if (loop) {\n loopIcon = customIcons.loop ? customIcons.loop : React.createElement(Icon, {\n icon: repeat\n });\n } else {\n loopIcon = customIcons.loopOff ? customIcons.loopOff : React.createElement(Icon, {\n icon: repeatOff\n });\n }\n\n return React.createElement(\"button\", {\n key: key,\n \"aria-label\": loop ? i18nAriaLabels.loop : i18nAriaLabels.loopOff,\n className: \"rhap_button-clear rhap_repeat-button\",\n type: \"button\",\n onClick: _this.handleClickLoopButton\n }, loopIcon);\n }\n\n case RHAP_UI.VOLUME:\n {\n var _ref = _this.audio.current || {},\n _ref$volume = _ref.volume,\n volume = _ref$volume === void 0 ? muted ? 0 : volumeProp : _ref$volume;\n\n var volumeIcon;\n\n if (volume) {\n volumeIcon = customIcons.volume ? customIcons.volume : React.createElement(Icon, {\n icon: volumeHigh\n });\n } else {\n volumeIcon = customIcons.volume ? customIcons.volumeMute : React.createElement(Icon, {\n icon: volumeMute\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-container\"\n }, React.createElement(\"button\", {\n \"aria-label\": volume ? i18nAriaLabels.volume : i18nAriaLabels.volumeMute,\n onClick: _this.handleClickVolumeButton,\n type: \"button\",\n className: \"rhap_button-clear rhap_volume-button\"\n }, volumeIcon), React.createElement(VolumeBar, {\n audio: _this.audio.current,\n volume: volume,\n onMuteChange: _this.handleMuteChange,\n showFilledVolume: showFilledVolume,\n i18nVolumeControl: i18nAriaLabels.volumeControl\n }));\n }\n\n default:\n if (!isValidElement(comp)) {\n return null;\n }\n\n return comp.key ? comp : cloneElement(comp, {\n key: key\n });\n }\n });\n\n return _this;\n }\n\n _createClass(H5AudioPlayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.forceUpdate();\n var audio = this.audio.current;\n\n if (this.props.muted) {\n audio.volume = 0;\n } else {\n audio.volume = this.lastVolume;\n }\n\n audio.addEventListener('error', function (e) {\n _this2.props.onError && _this2.props.onError(e);\n });\n audio.addEventListener('canplay', function (e) {\n _this2.props.onCanPlay && _this2.props.onCanPlay(e);\n });\n audio.addEventListener('canplaythrough', function (e) {\n _this2.props.onCanPlayThrough && _this2.props.onCanPlayThrough(e);\n });\n audio.addEventListener('play', this.handlePlay);\n audio.addEventListener('abort', this.handleAbort);\n audio.addEventListener('ended', this.handleEnded);\n audio.addEventListener('playing', function (e) {\n _this2.props.onPlaying && _this2.props.onPlaying(e);\n });\n audio.addEventListener('seeking', function (e) {\n _this2.props.onSeeking && _this2.props.onSeeking(e);\n });\n audio.addEventListener('seeked', function (e) {\n _this2.props.onSeeked && _this2.props.onSeeked(e);\n });\n audio.addEventListener('waiting', function (e) {\n _this2.props.onWaiting && _this2.props.onWaiting(e);\n });\n audio.addEventListener('emptied', function (e) {\n _this2.props.onEmptied && _this2.props.onEmptied(e);\n });\n audio.addEventListener('stalled', function (e) {\n _this2.props.onStalled && _this2.props.onStalled(e);\n });\n audio.addEventListener('suspend', function (e) {\n _this2.props.onSuspend && _this2.props.onSuspend(e);\n });\n audio.addEventListener('loadstart', function (e) {\n _this2.props.onLoadStart && _this2.props.onLoadStart(e);\n });\n audio.addEventListener('loadedmetadata', function (e) {\n _this2.props.onLoadedMetaData && _this2.props.onLoadedMetaData(e);\n });\n audio.addEventListener('loadeddata', function (e) {\n _this2.props.onLoadedData && _this2.props.onLoadedData(e);\n });\n audio.addEventListener('pause', this.handlePause);\n audio.addEventListener('timeupdate', throttle(function (e) {\n _this2.props.onListen && _this2.props.onListen(e);\n }, this.props.listenInterval));\n audio.addEventListener('volumechange', function (e) {\n _this2.props.onVolumeChange && _this2.props.onVolumeChange(e);\n });\n audio.addEventListener('encrypted', function (e) {\n var mse = _this2.props.mse;\n mse && mse.onEcrypted && mse.onEcrypted(e);\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props4 = this.props,\n src = _this$props4.src,\n autoPlayAfterSrcChange = _this$props4.autoPlayAfterSrcChange;\n\n if (prevProps.src !== src) {\n if (autoPlayAfterSrcChange) {\n this.playAudioPromise();\n } else {\n this.forceUpdate();\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n className = _this$props5.className,\n src = _this$props5.src,\n loopProp = _this$props5.loop,\n preload = _this$props5.preload,\n autoPlay = _this$props5.autoPlay,\n crossOrigin = _this$props5.crossOrigin,\n mediaGroup = _this$props5.mediaGroup,\n header = _this$props5.header,\n footer = _this$props5.footer,\n layout = _this$props5.layout,\n customProgressBarSection = _this$props5.customProgressBarSection,\n customControlsSection = _this$props5.customControlsSection,\n children = _this$props5.children,\n style = _this$props5.style,\n i18nAriaLabels = _this$props5.i18nAriaLabels;\n var loop = this.audio.current ? this.audio.current.loop : loopProp;\n var loopClass = loop ? 'rhap_loop--on' : 'rhap_loop--off';\n var isPlayingClass = this.isPlaying() ? 'rhap_play-status--playing' : 'rhap_play-status--paused';\n return React.createElement(\"div\", {\n role: \"group\",\n tabIndex: 0,\n \"aria-label\": i18nAriaLabels.player,\n className: \"rhap_container \".concat(loopClass, \" \").concat(isPlayingClass, \" \").concat(className),\n onKeyDown: this.handleKeyDown,\n ref: this.container,\n style: style\n }, React.createElement(\"audio\", {\n src: src,\n controls: false,\n loop: loop,\n autoPlay: autoPlay,\n preload: preload,\n crossOrigin: crossOrigin,\n mediaGroup: mediaGroup,\n ref: this.audio\n }, children), header && React.createElement(\"div\", {\n className: \"rhap_header\"\n }, header), React.createElement(\"div\", {\n className: \"rhap_main \".concat(getMainLayoutClassName(layout))\n }, React.createElement(\"div\", {\n className: \"rhap_progress-section\"\n }, this.renderUIModules(customProgressBarSection)), React.createElement(\"div\", {\n className: \"rhap_controls-section\"\n }, this.renderUIModules(customControlsSection))), footer && React.createElement(\"div\", {\n className: \"rhap_footer\"\n }, footer));\n }\n }]);\n\n return H5AudioPlayer;\n}(Component);\n\n_defineProperty(H5AudioPlayer, \"defaultProps\", {\n autoPlay: false,\n autoPlayAfterSrcChange: true,\n listenInterval: 1000,\n progressJumpStep: 5000,\n progressJumpSteps: {},\n volumeJumpStep: 0.1,\n loop: false,\n muted: false,\n preload: 'auto',\n progressUpdateInterval: 20,\n defaultCurrentTime: '--:--',\n defaultDuration: '--:--',\n timeFormat: 'auto',\n volume: 1,\n className: '',\n showJumpControls: true,\n showSkipControls: false,\n showDownloadProgress: true,\n showFilledProgress: true,\n showFilledVolume: false,\n customIcons: {},\n customProgressBarSection: [RHAP_UI.CURRENT_TIME, RHAP_UI.PROGRESS_BAR, RHAP_UI.DURATION],\n customControlsSection: [RHAP_UI.ADDITIONAL_CONTROLS, RHAP_UI.MAIN_CONTROLS, RHAP_UI.VOLUME_CONTROLS],\n customAdditionalControls: [RHAP_UI.LOOP],\n customVolumeControls: [RHAP_UI.VOLUME],\n layout: 'stacked',\n hasDefaultKeyBindings: true,\n i18nAriaLabels: {\n player: 'Audio player',\n progressControl: 'Audio progress control',\n volumeControl: 'Volume control',\n play: 'Play',\n pause: 'Pause',\n rewind: 'Rewind',\n forward: 'Forward',\n previous: 'Previous',\n next: 'Skip',\n loop: 'Disable loop',\n loopOff: 'Enable loop',\n volume: 'Mute',\n volumeMute: 'Unmute'\n }\n});\n\nexport default H5AudioPlayer;\nexport { RHAP_UI };","import AudioPlayer from \"react-h5-audio-player\"\nimport styled from \"styled-components\"\n\nimport \"react-h5-audio-player/lib/styles.css\"\nimport media from \"styles/media\"\n\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\"\n\nimport text from \"styles/text\"\n\ninterface PaginationProps {\n audioFile: string\n image: IGatsbyImageData\n title: string\n subTitle: string\n alt: string\n}\n\nexport default function Podcast({\n audioFile,\n image,\n title,\n subTitle,\n alt,\n}: PaginationProps) {\n return (\n \n \n \n \n \n \n {title}\n {subTitle}\n \n \n \n \n )\n}\n\nconst Wrapper = styled.div`\n position: relative;\n justify-content: center;\n align-items: center;\n display: flex;\n width: 100%;\n ${media.fullWidth} {\n padding-bottom: 30px;\n gap: 10px;\n }\n ${media.desktop} {\n padding-bottom: 2.083vw;\n gap: 0.602vw;\n }\n ${media.tablet} {\n padding-bottom: 0;\n padding-top: 0;\n gap: 3.125vw;\n }\n ${media.mobile} {\n margin-top: 21.333vw;\n padding-bottom: 0;\n justify-content: space-between;\n }\n`\n\nconst MusicPlayer = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: 10px;\n background: #fff;\n box-shadow: rgba(11, 35, 115, 0.075) 1.205vw 2.41vw 2.41vw;\n border-radius: 1.025vw;\n height: 180px;\n`\nconst ImgWrapper = styled.div`\n position: relative;\n width: 20%;\n display: flex;\n justify-content: center;\n align-items: center;\n ${media.tablet} {\n position: initial;\n }\n img {\n height: 180px;\n width: 100%;\n }\n`\n\nconst Info = styled.div`\n /* Your info styles here */\n width: 80%;\n .rhap_container {\n box-shadow: none;\n margin-top: 25px;\n ${media.tablet} {\n margin-top: 10px;\n padding-bottom: 0px;\n }\n ${media.mobile} {\n margin-top: 10px;\n }\n }\n`\nconst Title = styled.h5`\n font-size: 16px;\n font-weight: normal;\n margin-top: 10px;\n margin-bottom: 10px;\n ${media.tablet} {\n font-size: 14px;\n }\n ${media.mobile} {\n font-size: 12px;\n }\n`\nconst SubTitle = styled.h4`\n ${media.tablet} {\n font-size: 16px;\n }\n ${media.mobile} {\n font-size: 14px;\n }\n`\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { forwardRef, memo } from \"react\";\nvar SvgQuoteLeft = function SvgQuoteLeft(props, ref) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 59 52\",\n ref: ref\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M22.4 51.8V29.6H10.6C10.6 27.3333 10.7333 25.0667 11 22.8C11.4 20.4 12.0667 18.2667 13 16.4C13.9333 14.5333 15.1333 13.0667 16.6 12C18.0667 10.8 19.9333 10.2 22.2 10.2V0.199991C18.4667 0.199991 15.2 0.999992 12.4 2.6C9.6 4.19999 7.26667 6.33332 5.4 9C3.66667 11.6667 2.33333 14.8 1.4 18.4C0.6 21.8667 0.2 25.6 0.2 29.6V51.8H22.4ZM59 51.8V29.6H47.2C47.2 27.3333 47.3333 25.0667 47.6 22.8C48 20.4 48.6667 18.2667 49.6 16.4C50.5333 14.5333 51.7333 13.0667 53.2 12C54.6667 10.8 56.5333 10.2 58.8 10.2V0.199991C55.0667 0.199991 51.8 0.999992 49 2.6C46.2 4.19999 43.8667 6.33332 42 9C40.2667 11.6667 38.9333 14.8 38 18.4C37.2 21.8667 36.8 25.6 36.8 29.6V51.8H59Z\",\n fill: \"#991F74\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgQuoteLeft);\nvar Memo = /*#__PURE__*/memo(ForwardRef);\nexport { Memo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTkiIGhlaWdodD0iNTIiIHZpZXdCb3g9IjAgMCA1OSA1MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4yIiBkPSJNMjIuNCA1MS44VjI5LjZIMTAuNkMxMC42IDI3LjMzMzMgMTAuNzMzMyAyNS4wNjY3IDExIDIyLjhDMTEuNCAyMC40IDEyLjA2NjcgMTguMjY2NyAxMyAxNi40QzEzLjkzMzMgMTQuNTMzMyAxNS4xMzMzIDEzLjA2NjcgMTYuNiAxMkMxOC4wNjY3IDEwLjggMTkuOTMzMyAxMC4yIDIyLjIgMTAuMlYwLjE5OTk5MUMxOC40NjY3IDAuMTk5OTkxIDE1LjIgMC45OTk5OTIgMTIuNCAyLjZDOS42IDQuMTk5OTkgNy4yNjY2NyA2LjMzMzMyIDUuNCA5QzMuNjY2NjcgMTEuNjY2NyAyLjMzMzMzIDE0LjggMS40IDE4LjRDMC42IDIxLjg2NjcgMC4yIDI1LjYgMC4yIDI5LjZWNTEuOEgyMi40Wk01OSA1MS44VjI5LjZINDcuMkM0Ny4yIDI3LjMzMzMgNDcuMzMzMyAyNS4wNjY3IDQ3LjYgMjIuOEM0OCAyMC40IDQ4LjY2NjcgMTguMjY2NyA0OS42IDE2LjRDNTAuNTMzMyAxNC41MzMzIDUxLjczMzMgMTMuMDY2NyA1My4yIDEyQzU0LjY2NjcgMTAuOCA1Ni41MzMzIDEwLjIgNTguOCAxMC4yVjAuMTk5OTkxQzU1LjA2NjcgMC4xOTk5OTEgNTEuOCAwLjk5OTk5MiA0OSAyLjZDNDYuMiA0LjE5OTk5IDQzLjg2NjcgNi4zMzMzMiA0MiA5QzQwLjI2NjcgMTEuNjY2NyAzOC45MzMzIDE0LjggMzggMTguNEMzNy4yIDIxLjg2NjcgMzYuOCAyNS42IDM2LjggMjkuNlY1MS44SDU5WiIgZmlsbD0iIzk5MUY3NCIvPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { forwardRef, memo } from \"react\";\nvar SvgQuoteRight = function SvgQuoteRight(props, ref) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 59 52\",\n ref: ref\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M0.2 0.199991V22.4H12C12 24.6667 11.8 27 11.4 29.4C11.1333 31.6667 10.5333 33.7333 9.6 35.6C8.66667 37.4667 7.46667 39 6 40.2C4.53333 41.2667 2.66667 41.8 0.4 41.8V51.8C4.26667 51.8 7.53333 51 10.2 49.4C13 47.8 15.2667 45.6667 17 43C18.8667 40.3333 20.2 37.2667 21 33.8C21.9333 30.2 22.4 26.4 22.4 22.4V0.199991H0.2ZM36.8 0.199991V22.4H48.6C48.6 24.6667 48.4 27 48 29.4C47.7333 31.6667 47.1333 33.7333 46.2 35.6C45.2667 37.4667 44.0667 39 42.6 40.2C41.1333 41.2667 39.2667 41.8 37 41.8V51.8C40.8667 51.8 44.1333 51 46.8 49.4C49.6 47.8 51.8667 45.6667 53.6 43C55.4667 40.3333 56.8 37.2667 57.6 33.8C58.5333 30.2 59 26.4 59 22.4V0.199991H36.8Z\",\n fill: \"#991F74\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgQuoteRight);\nvar Memo = /*#__PURE__*/memo(ForwardRef);\nexport { Memo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTkiIGhlaWdodD0iNTIiIHZpZXdCb3g9IjAgMCA1OSA1MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggb3BhY2l0eT0iMC4yIiBkPSJNMC4yIDAuMTk5OTkxVjIyLjRIMTJDMTIgMjQuNjY2NyAxMS44IDI3IDExLjQgMjkuNEMxMS4xMzMzIDMxLjY2NjcgMTAuNTMzMyAzMy43MzMzIDkuNiAzNS42QzguNjY2NjcgMzcuNDY2NyA3LjQ2NjY3IDM5IDYgNDAuMkM0LjUzMzMzIDQxLjI2NjcgMi42NjY2NyA0MS44IDAuNCA0MS44VjUxLjhDNC4yNjY2NyA1MS44IDcuNTMzMzMgNTEgMTAuMiA0OS40QzEzIDQ3LjggMTUuMjY2NyA0NS42NjY3IDE3IDQzQzE4Ljg2NjcgNDAuMzMzMyAyMC4yIDM3LjI2NjcgMjEgMzMuOEMyMS45MzMzIDMwLjIgMjIuNCAyNi40IDIyLjQgMjIuNFYwLjE5OTk5MUgwLjJaTTM2LjggMC4xOTk5OTFWMjIuNEg0OC42QzQ4LjYgMjQuNjY2NyA0OC40IDI3IDQ4IDI5LjRDNDcuNzMzMyAzMS42NjY3IDQ3LjEzMzMgMzMuNzMzMyA0Ni4yIDM1LjZDNDUuMjY2NyAzNy40NjY3IDQ0LjA2NjcgMzkgNDIuNiA0MC4yQzQxLjEzMzMgNDEuMjY2NyAzOS4yNjY3IDQxLjggMzcgNDEuOFY1MS44QzQwLjg2NjcgNTEuOCA0NC4xMzMzIDUxIDQ2LjggNDkuNEM0OS42IDQ3LjggNTEuODY2NyA0NS42NjY3IDUzLjYgNDNDNTUuNDY2NyA0MC4zMzMzIDU2LjggMzcuMjY2NyA1Ny42IDMzLjhDNTguNTMzMyAzMC4yIDU5IDI2LjQgNTkgMjIuNFYwLjE5OTk5MUgzNi44WiIgZmlsbD0iIzk5MUY3NCIvPgo8L3N2Zz4K\";","/* eslint-disable react/no-unstable-nested-components */\nimport { useContext, useState, useMemo } from \"react\"\n\nimport { Options } from \"@contentful/rich-text-react-renderer\"\nimport { BLOCKS, INLINES } from \"@contentful/rich-text-types\"\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport styled, { css } from \"styled-components\"\n\nimport Modal from \"components/Banners/Modal\"\nimport LinkButton from \"components/buttons/LinkButton\"\nimport RoundButton from \"components/buttons/RoundButton\"\nimport FollowCard from \"components/Cards/FollowCard\"\nimport Podcast from \"components/Podcast/Podcast\"\nimport { ScreenContext, ShowHamburger } from \"components/Providers\"\nimport { ReactComponent as QuoteLSVG } from \"images/article/quoteLeft.svg\"\nimport { ReactComponent as QuoteRSVG } from \"images/article/quoteRight.svg\"\nimport { ReactComponent as LinkedInSVG } from \"images/global/LinkedIn.svg\"\nimport { ReactComponent as TwitterSVG } from \"images/global/Twitter.svg\"\nimport colors from \"styles/colors\"\nimport easing from \"styles/easing\"\nimport media from \"styles/media\"\nimport text from \"styles/text\"\nimport { ColorDictionary } from \"types\"\nimport { LocaleData } from \"types/gatsby-alias\"\nimport { fresponsive } from \"utils/fullyResponsive\"\nimport UniversalLink from \"utils/Loader/UniversalLink\"\nimport renderContent from \"utils/renderContent\"\n\nexport default function BlogDetails({\n colorDictionary,\n post,\n allPostURLs,\n pageType,\n index,\n translations,\n}: {\n colorDictionary: ColorDictionary\n allPostURLs: string[]\n pageType: string\n index: number\n post: Queries.BlogOrNewsQuery[\"post\"]\n translations: LocaleData\n}) {\n const { setShow } = useContext(ShowHamburger)\n\n const { mobile } = useContext(ScreenContext)\n const [location] = useState(\"\")\n const [open, setOpen] = useState(\"\")\n\n const options: Options = useMemo(\n () => ({\n renderNode: {\n [BLOCKS.PARAGRAPH]: (node, children) => {\n return {children}\n },\n [BLOCKS.HR]: () => {\n return \n },\n [BLOCKS.UL_LIST]: (node, children) => {children},\n [BLOCKS.OL_LIST]: (node, children) => {children},\n [BLOCKS.QUOTE]: (node, children) => (\n {children}\n ),\n [INLINES.HYPERLINK]: (node, children) => {\n const {\n data: { uri },\n } = node\n\n if (typeof uri !== \"string\") return null\n\n return (\n \n {children}\n \n )\n },\n [INLINES.EMBEDDED_ENTRY]: node => {\n const {\n data: {\n target: {\n sys: { id },\n },\n },\n } = node\n const entry = post?.references?.references?.filter(\n asset => asset?.contentful_id === id\n )[0]\n if (entry) {\n if (\"type\" in entry && entry.type === \"super\" && entry.text) {\n return {entry.text}\n }\n if (\"type\" in entry && entry.type === \"sub\") {\n return {entry.text}\n }\n\n const authorName = \"authorName\" in entry\n const authorTitle = \"authorTitle\" in entry\n\n const quoteBody = \"quoteBody\" in entry && entry.quoteBody?.quoteBody\n return (\n \n \n \n {quoteBody}\n \n \n \n {authorName}\n \n \n {authorTitle}\n \n \n )\n }\n },\n [BLOCKS.EMBEDDED_ENTRY]: node => {\n const {\n data: {\n target: {\n sys: { id },\n },\n },\n } = node\n const entry =\n post?.references?.references?.filter(\n asset => asset?.contentful_id === id\n )[0] ?? null\n const entryIndex = post?.references?.references?.indexOf(entry)\n if (entry) {\n if (\"type\" in entry && entry.type === \"super\") {\n return {entry.text}\n }\n if (\"type\" in entry && entry.type === \"sub\") {\n return {entry.text}\n }\n if (entry && \"identifier\" in entry) {\n return \n }\n if (\"quoteBody\" in entry && entry.quoteBody) {\n const { authorName, authorTitle } = entry\n const { quoteBody } = entry.quoteBody\n return (\n \n \n \n {quoteBody}\n \n \n \n {authorName}\n \n \n {authorTitle}\n \n \n )\n }\n if (\"destinationUrl\" in entry && entry.destinationUrl) {\n const parsedLink = entry.destinationUrl.includes(\"http\")\n ? entry.destinationUrl\n : `/${entry.destinationUrl}`\n\n return (\n \n {entry.image?.gatsbyImageData && (\n \n )}\n \n )\n }\n if (\n \"images\" in entry &&\n entry.images &&\n typeof id === \"string\" &&\n typeof entryIndex === \"number\"\n ) {\n return (\n <>\n \n \n {entry.images[0]?.gatsbyImageData && (\n \n )}\n {entry.imageOneExpandable && (\n {\n setOpen(`${id}1`)\n setShow(false)\n }}\n />\n )}\n \n \n {entry.images[1]?.gatsbyImageData && (\n \n )}\n {entry.imageTwoExpandable && (\n {\n setOpen(`${id}2`)\n setShow(false)\n }}\n />\n )}\n \n \n \n {entry.images[0]?.gatsbyImageData && (\n \n )}\n \n \n {entry.images[1]?.gatsbyImageData && (\n \n )}\n \n \n )\n }\n if (\"youtubeVideoId\" in entry && entry.youtubeVideoId) {\n return (\n \n {\" \"}\n \n )\n }\n if (\n \"audioUrl\" in entry &&\n entry.audioUrl &&\n entry.image?.gatsbyImageData\n ) {\n return (\n \n )\n }\n if (\n \"universalListTextItems\" in entry &&\n entry.universalListTextItems\n ) {\n if (entry.universalIcon || entry.universalUnicode) {\n return (\n \n {entry.universalListTextItems.map((item, i) => {\n if (entry.universalUnicode) {\n // regex for string that matches hex code\n\n const value = parseInt(entry.universalUnicode, 16)\n\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {String.fromCodePoint(value)}\n {item}\n \n )\n }\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {entry.universalIcon?.gatsbyImageData && (\n \n )}\n\n {item}\n \n )\n\n return null\n })}\n \n )\n }\n }\n if (\"listItems\" in entry && entry.listItems) {\n return (\n \n {entry.listItems.map(item => {\n if (item?.htmlUnicodeCharacter) {\n const value = parseInt(item.htmlUnicodeCharacter, 16)\n\n return (\n \n {String.fromCodePoint(value)}\n\n {item.listText}\n \n )\n }\n return (\n \n {item?.icon?.gatsbyImageData && (\n \n )}\n\n {item?.listText}\n \n )\n })}\n \n )\n }\n }\n },\n [BLOCKS.EMBEDDED_ASSET]: (node, children) => {\n const {\n data: {\n target: {\n sys: { id },\n },\n },\n } = node\n\n const entry = post?.references?.references?.filter(\n asset => asset?.contentful_id === id\n )[0]\n const entryIndex = post?.references?.references?.indexOf(\n entry ?? null\n )\n if (entry) {\n if (\"file\" in entry && entry.file) {\n if (entry.file.contentType === \"video/mp4\") {\n return (\n \n )\n }\n if (\"description\" in entry) {\n return (\n <>\n \n {children}\n\n {entry.gatsbyImageData && (\n \n )}\n {typeof id === \"string\" && (\n {\n setOpen(id)\n setShow(false)\n }}\n />\n )}\n \n {entry.description && (\n {entry.description}\n )}\n \n {entry.gatsbyImageData && (\n \n )}\n \n \n )\n }\n }\n }\n },\n [BLOCKS.HEADING_1]: (node, children) =>

{children}

,\n [BLOCKS.HEADING_2]: (node, children) =>
{children}
,\n [BLOCKS.HEADING_3]: (node, children) => (\n
{children}
\n ),\n [BLOCKS.HEADING_4]: (node, children) =>

{children}

,\n [BLOCKS.HEADING_5]: (node, children) =>
{children}
,\n [BLOCKS.HEADING_6]: (node, children) => (\n
{children}
\n ),\n },\n }),\n [\n colorDictionary,\n setShow,\n index,\n pageType,\n post?.references?.references,\n open,\n ]\n )\n\n const last =\n allPostURLs[index - 1] === \"/\"\n ? allPostURLs[index - 1]?.slice(1)\n : allPostURLs[index - 1]\n\n const next =\n allPostURLs[index + 1] === \"/\"\n ? allPostURLs[index + 1]?.slice(1)\n : allPostURLs[index + 1]\n\n return (\n \n
\n {post?.articleContent && renderContent(post.articleContent, options)}\n
\n \n \n 0}>\n {typeof last === \"string\" && (\n \n {translations.Previous}\n \n )}\n \n \n {translations.Share}\n \n \n \n
\n \n \n \n \n \n index}>\n {typeof next === \"string\" && (\n \n {translations.Next}\n \n )}\n \n \n\n {mobile && }\n \n )\n}\n\nconst Paragraph = styled.p`\n ${text.bodyR}\n b {\n ${text.bodyRBold}\n }\n`\n\nconst EndLine = styled.div<{ $color?: string }>`\n width: 100%;\n ${media.fullWidth} {\n border-bottom: solid 1px ${props => props.$color};\n margin: 40px 0;\n }\n ${media.desktop} {\n border-bottom: solid 0.06vw ${props => props.$color};\n margin: 2.41vw 0;\n }\n ${media.tablet} {\n border-bottom: solid 0.098vw ${props => props.$color};\n margin: 3.906vw 0;\n }\n ${media.mobile} {\n border-bottom: solid 0.267vw ${props => props.$color};\n margin: 10.667vw 0;\n }\n`\nconst Unordered = styled.ul`\n ${text.bodyR}\n ${media.fullWidth} {\n margin-left: 20px;\n }\n ${media.desktop} {\n margin-left: 1.205vw;\n }\n ${media.tablet} {\n margin-left: 1.953vw;\n }\n ${media.mobile} {\n margin-left: 5.333vw;\n }\n`\nconst Ordered = styled.ol`\n ${text.bodyR}\n\n ${media.fullWidth} {\n margin-left: 20px;\n }\n ${media.desktop} {\n margin-left: 1.205vw;\n }\n ${media.tablet} {\n margin-left: 1.953vw;\n }\n ${media.mobile} {\n margin-left: 5.333vw;\n }\n`\n\nconst Quote = styled.blockquote<{ $color: string }>`\n p {\n ${text.bodyL}\n color: ${props => props.$color};\n border-left: 1px solid ${props => props.$color};\n\n ${media.fullWidth} {\n margin: 40px 0;\n margin-bottom: 40px;\n padding-left: 25px;\n border-width: 1px;\n }\n ${media.desktop} {\n margin: 2.41vw 0;\n padding-left: 1.506vw;\n border-width: 0.06vw;\n }\n ${media.tablet} {\n margin: 3.906vw 0;\n padding-left: 2.441vw;\n border-width: 0.098vw;\n }\n ${media.mobile} {\n padding-left: 6.667vw;\n border-width: 0.267vw;\n }\n }\n`\n\nconst Link = styled.a<{ $color: string }>`\n color: ${props => props.$color};\n text-decoration: underline;\n`\n\nconst SuperScript = styled.sup`\n ${text.bodyXS}\n`\n\nconst SubScript = styled.sub`\n ${text.bodyXS}\n`\n\nconst StylizedQuote = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${media.fullWidth} {\n padding: 30px 75px;\n padding-top: 40px;\n margin-bottom: 40px !important;\n }\n ${media.desktop} {\n padding: 1.807vw 4.518vw;\n padding-top: 2.41vw;\n margin-bottom: 2.41vw !important;\n }\n ${media.tablet} {\n padding: 2.93vw 7.324vw;\n padding-top: 3.906vw;\n margin-bottom: 3.906vw !important;\n }\n ${media.mobile} {\n padding: 0;\n\n width: 100%;\n }\n`\n\nconst StylizedQuoteBody = styled.div`\n position: relative;\n ${text.bodyL}\n\n text-align: center;\n ${media.fullWidth} {\n margin: 30px 0;\n }\n ${media.desktop} {\n margin: 1.807vw 0;\n }\n ${media.tablet} {\n }\n ${media.mobile} {\n text-align: left;\n margin-top: 19.2vw;\n width: 89.333vw;\n }\n`\n\nconst QuoteL = styled(QuoteLSVG)<{ $color: string }>`\n position: absolute;\n path {\n fill: ${props => props.$color};\n }\n\n ${media.fullWidth} {\n width: 59px;\n height: 52px;\n left: -37px;\n top: -30px;\n }\n ${media.desktop} {\n width: 3.554vw;\n height: 3.133vw;\n left: -2.229vw;\n top: -1.807vw;\n }\n ${media.tablet} {\n width: 5.762vw;\n height: 5.078vw;\n left: -3.613vw;\n top: -2.93vw;\n }\n ${media.mobile} {\n width: 15.733vw;\n height: 13.867vw;\n left: 0px;\n top: -19.2vw;\n }\n`\n\nconst QuoteR = styled(QuoteRSVG)<{ $color: string }>`\n position: absolute;\n path {\n fill: ${props => props.$color};\n }\n\n ${media.fullWidth} {\n width: 59px;\n height: 52px;\n right: -37px;\n bottom: -30px;\n }\n ${media.desktop} {\n width: 3.554vw;\n height: 3.133vw;\n right: -2.229vw;\n bottom: -1.807vw;\n }\n ${media.tablet} {\n width: 5.762vw;\n height: 5.078vw;\n right: -3.613vw;\n bottom: -2.93vw;\n }\n ${media.mobile} {\n display: none;\n }\n`\n\nconst StylizedQuoteAuthorName = styled.div<{ $color: string }>`\n ${text.buttonL}\n color: ${props => props.$color};\n ${media.fullWidth} {\n margin-top: 30px;\n }\n ${media.desktop} {\n margin-top: 1.807vw;\n }\n ${media.tablet} {\n margin-top: 2.93vw;\n }\n ${media.mobile} {\n margin-top: 8vw;\n margin-right: auto;\n }\n`\n\nconst StylizedQuoteAuthorTitle = styled.div<{ $color: string }>`\n color: ${props => props.$color};\n ${text.captionKicker}\n ${media.fullWidth} {\n margin-top: 10px;\n }\n ${media.desktop} {\n margin-top: 0.602vw;\n }\n ${media.tablet} {\n margin-top: 0.977vw;\n }\n ${media.mobile} {\n margin-top: 2.667vw;\n margin-right: auto;\n }\n`\n\nconst WideImage = styled(GatsbyImage)`\n width: 100%;\n height: auto;\n isolation: isolate;\n ${fresponsive(css`\n border-radius: 20px;\n `)}\n`\n\nconst DoubleImage = styled.div<{ expanded: boolean }>`\n width: 100%;\n height: 26.024vw;\n display: flex;\n justify-content: space-between;\n position: relative;\n opacity: ${({ expanded }) => (expanded ? \"0\" : \"1\")};\n left: ${({ expanded }) => (expanded ? \"0\" : \"unset\")};\n transition: 0.4s;\n ${media.fullWidth} {\n height: 432px;\n }\n ${media.tablet} {\n height: auto;\n }\n ${media.mobile} {\n flex-direction: column;\n height: 184vw;\n }\n`\n\nconst Image = styled.div`\n width: 26.024vw;\n height: 26.024vw;\n z-index: 1;\n overflow: hidden;\n position: relative;\n border-radius: 1.205vw;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 1.205vw;\n overflow: hidden;\n isolation: isolate;\n\n left: 0;\n transition: 0.4s;\n transition-timing-function: ${easing.main};\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n ${media.fullWidth} {\n margin: 40px 0;\n }\n ${media.desktop} {\n margin: 2.41vw 0;\n }\n ${media.tablet} {\n margin: 3.906vw 0;\n width: 42.188vw;\n height: 42.188vw;\n }\n ${media.mobile} {\n margin: 10.667vw 0;\n }\n\n button {\n position: absolute;\n\n right: 1.389vw;\n top: 1.389vw;\n width: 3.012vw;\n height: 3.012vw;\n transition-timing-function: ${easing.button};\n }\n\n ${media.hover} {\n button {\n opacity: 0;\n transition: 0.4s;\n }\n :hover button {\n opacity: 1;\n }\n }\n\n ${media.fullWidth} {\n width: 432px;\n height: 432px;\n border-radius: 20px;\n }\n ${media.tablet} {\n width: 40vw;\n height: 40vw;\n border-radius: 1.953vw;\n left: 0;\n\n button {\n right: 1.953vw;\n top: 1.953vw;\n width: 4.883vw;\n height: 4.883vw;\n }\n }\n ${media.mobile} {\n width: 89.333vw;\n height: 89.333vw;\n border-radius: 1.205vw;\n\n button {\n right: 5.333vw;\n top: 5.333vw;\n width: 13.333vw;\n height: 13.333vw;\n transition: opacity 0.4s;\n transition-timing-function: ${easing.button};\n }\n }\n`\n\nconst ExpandedImage = styled(GatsbyImage)`\n isolation: isolate;\n border-radius: 1.025vw;\n isolation: isolate;\n transition: 0.4s;\n transition-timing-function: ${easing.main};\n width: 48.012vw;\n height: 48.012vw;\n position: relative;\n object-fit: contain;\n max-height: 90%;\n\n ${media.tablet} {\n border-radius: 1.953vw;\n width: 100%;\n height: auto;\n max-height: 70%;\n }\n ${media.mobile} {\n border-radius: 1.025vw;\n transition: 0.4s;\n width: 100%;\n height: auto;\n max-height: 70%;\n }\n`\n\nconst VideoIframe = styled.iframe`\n position: relative;\n aspect-ratio: 16/9;\n\n outline: none;\n border: none;\n overflow: hidden;\n\n ${media.fullWidth} {\n margin: 100px 0;\n border-radius: 20px;\n }\n ${media.desktop} {\n margin: 6.024vw 0;\n border-radius: 1.205vw;\n }\n ${media.tablet} {\n margin: 9.766vw 0;\n border-radius: 1.953vw;\n }\n ${media.mobile} {\n margin: 13.333vw 0;\n border-radius: 2.667vw;\n }\n`\n\nconst BulletWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n ${media.fullWidth} {\n margin-bottom: 20px;\n gap: 10px;\n }\n ${media.desktop} {\n margin-bottom: 1.205vw;\n gap: 0.602vw;\n }\n ${media.tablet} {\n margin-bottom: 1.953vw;\n }\n ${media.mobile} {\n margin-bottom: 5.333vw;\n }\n`\n\nconst CustomBulletPoint = styled.div`\n display: flex;\n align-items: center;\n\n ${text.bodyR}\n\n ${media.fullWidth} {\n gap: 20px;\n }\n ${media.desktop} {\n gap: 1.205vw;\n }\n ${media.tablet} {\n gap: 1.953vw;\n }\n ${media.mobile} {\n gap: 5.333vw;\n }\n`\n\nconst CodeChar = styled.span`\n color: black;\n\n ${media.fullWidth} {\n font-size: 50px;\n }\n ${media.desktop} {\n font-size: 3.012vw;\n }\n ${media.tablet} {\n font-size: 2.441vw;\n }\n ${media.mobile} {\n font-size: 6.667vw;\n }\n`\n\nconst BulletIcon = styled(GatsbyImage)`\n ${media.fullWidth} {\n width: 50px;\n height: 50px;\n }\n ${media.desktop} {\n width: 3.012vw;\n height: 3.012vw;\n }\n ${media.tablet} {\n width: 4.883vw;\n height: 4.883vw;\n }\n ${media.mobile} {\n width: 13.333vw;\n height: 13.333vw;\n }\n`\n\nconst BigImage = styled.div<{ expanded: boolean }>`\n overflow: hidden;\n top: 0;\n left: 0;\n width: 100%;\n max-height: unset;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n object-fit: contain;\n position: relative;\n border-radius: 1.205vw;\n isolation: isolate;\n opacity: ${({ expanded }) => (expanded ? \"0\" : \"1\")};\n transition: 0.4s;\n\n button {\n position: absolute;\n right: 1.389vw;\n top: 1.389vw;\n width: 3.012vw;\n height: 3.012vw;\n transition: opacity 0.4s;\n transition-timing-function: ${easing.button};\n }\n\n ${media.hover} {\n button {\n opacity: 0;\n transition: 0.4s;\n }\n :hover button {\n opacity: 1;\n }\n }\n\n ${media.fullWidth} {\n border-radius: 20px;\n }\n ${media.tablet} {\n border-radius: 1.205vw;\n\n button {\n right: 1.953vw;\n top: 1.953vw;\n width: 4.883vw;\n height: 4.883vw;\n }\n }\n ${media.mobile} {\n border-radius: 1.205vw;\n\n button {\n right: 5.333vw;\n top: 5.333vw;\n width: 13.333vw;\n height: 13.333vw;\n transition: opacity 0.4s;\n transition-timing-function: ${easing.button};\n }\n }\n`\n\nconst CaptionText = styled.p`\n ${text.bodyXS};\n align-self: center;\n`\n\nconst BigImageExpanded = styled(GatsbyImage)`\n position: relative;\n z-index: 1;\n isolation: isolate;\n\n border-radius: 1.205vw;\n position: relative;\n overflow: hidden;\n width: 50.88vw;\n height: auto;\n max-height: 90%;\n object-fit: contain;\n\n ${media.tablet} {\n border-radius: 1.205vw;\n width: 100%;\n }\n ${media.mobile} {\n border-radius: 1.205vw;\n width: 100%;\n }\n`\n\nconst H4 = styled.h4`\n ${text.h4}\n ${media.fullWidth} {\n }\n ${media.desktop} {\n }\n ${media.mobile} {\n ${text.h1Mobile}\n }\n`\n\nconst H5 = styled.h5`\n ${text.h5}\n ${media.mobile} {\n ${text.h1Mobile}\n }\n`\n\nconst H6 = styled.h6<{ $color: string }>`\n ${text.captionKicker}\n background: ${props => props.$color};\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n`\n\nconst ArticleContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n\n ${media.fullWidth} {\n padding-top: 80px;\n padding-bottom: 150px;\n }\n ${media.desktop} {\n padding-top: 4.819vw;\n padding-bottom: 9.036vw;\n }\n ${media.tablet} {\n padding-top: 7.324vw;\n padding-bottom: 14.648vw;\n }\n ${media.mobile} {\n width: 100%;\n padding-bottom: 16vw;\n align-self: center;\n flex-direction: column;\n }\n`\n\nconst Article = styled.div<{ textColor?: string }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n color: ${props => props.textColor};\n\n ${media.fullWidth} {\n gap: 20px;\n }\n ${media.desktop} {\n gap: 1.205vw;\n }\n ${media.tablet} {\n gap: 1.953vw;\n }\n ${media.mobile} {\n width: 100%;\n gap: 5.333vw;\n\n margin-top: 16vw !important;\n }\n`\n\nconst ShareSection = styled.div`\n display: flex;\n\n justify-content: center;\n align-items: center;\n position: relative;\n width: 100%;\n max-width: 884px;\n ${media.fullWidth} {\n height: 53px;\n }\n ${media.desktop} {\n height: 3.193vw;\n }\n ${media.tablet} {\n height: 5.176vw;\n }\n ${media.mobile} {\n height: initial;\n }\n`\n\nconst Previous = styled.div<{ show: boolean }>`\n ${props => (props.show ? null : \"display: none;\")}\n position: absolute;\n left: 0;\n ${media.mobile} {\n bottom: 0;\n }\n`\n\nconst ShareBox = styled.div<{ iconColor?: string }>`\n //color icons\n svg {\n rect {\n fill: ${props => props.iconColor};\n }\n }\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n\n height: 100%;\n ${media.fullWidth} {\n width: 60px;\n }\n ${media.desktop} {\n width: 3.614vw;\n }\n ${media.tablet} {\n width: 9.766vw;\n height: 7.129vw;\n }\n ${media.mobile} {\n width: 26.667vw;\n height: 37.6vw;\n justify-content: flex-start;\n }\n`\n\nconst ShareText = styled.div`\n ${text.buttonL}\n`\n\nconst Socials = styled.div`\n display: flex;\n width: 100%;\n ${media.fullWidth} {\n height: 25px;\n gap: 10px;\n }\n ${media.desktop} {\n height: 1.506vw;\n gap: 0.602vw;\n }\n ${media.tablet} {\n height: 3.906vw;\n justify-content: space-between;\n margin-top: 0.977vw;\n }\n ${media.mobile} {\n height: 10.667vw;\n\n margin-top: 2.667vw;\n gap: 5.333vw;\n }\n`\n\nconst A = styled.a`\n display: block;\n position: relative;\n height: 100%;\n`\n\nconst Twitter = styled(TwitterSVG)`\n height: 100%;\n path {\n fill: ${colors.white};\n }\n\n ${media.hover} {\n :hover {\n cursor: pointer;\n rect {\n fill: ${colors.blue400};\n transition-duration: 0.3s;\n }\n path {\n fill: ${colors.white};\n transition-duration: 0.3s;\n }\n }\n }\n`\n\nconst LinkedIn = styled(LinkedInSVG)`\n height: 100%;\n path {\n fill: ${colors.white};\n }\n\n ${media.hover} {\n :hover {\n cursor: pointer;\n rect {\n fill: ${colors.blue400};\n transition-duration: 0.3s;\n }\n path {\n fill: ${colors.white};\n transition-duration: 0.3s;\n }\n }\n }\n`\n\nconst Next = styled.div<{ show: boolean }>`\n ${props => (props.show ? null : \"display: none;\")}\n position: absolute;\n right: 0;\n ${media.mobile} {\n bottom: 0;\n }\n`\n","import { useContext, useEffect, useMemo } from \"react\"\n\nimport { graphql, PageProps } from \"gatsby\"\nimport styled from \"styled-components\"\n\nimport RecentPosts from \"components/blog/RecentPosts\"\nimport ResourceCard from \"components/Cards/ResourceCard\"\nimport InnerWrapper from \"components/InnerWrapper\"\nimport Layout from \"components/Layout\"\nimport { Lightmode, TranslateURLContext } from \"components/Providers\"\nimport SEO from \"components/Seo\"\nimport defaultBlogImage from \"images/blog/defaultBlogImage.webp\"\nimport Navigation from \"sections/blog-template/0-Navigation\"\nimport Hero from \"sections/blog-template/1-Hero\"\nimport BlogDetails from \"sections/blog-template/2-BlogDetails\"\nimport colors, { colorDictionary } from \"styles/colors\"\nimport { CustomRoundButtonColors, MainImage } from \"types\"\nimport { LocaleData } from \"types/gatsby-alias\"\nimport { isBrowser } from \"utils/functions\"\nimport useGetStaticTranslations from \"utils/hooks/useGetStaticTranslations\"\nimport useMedia from \"utils/useMedia\"\n\nconst blogButtonColors: CustomRoundButtonColors = {\n background: {\n default: colors.blue400,\n hover: colors.white,\n active: colors.blue50,\n disabled: \"transparent\",\n },\n svg: {\n default: colors.white,\n hover: colors.blue400,\n active: colors.blue400,\n disabled: \"transparent\",\n },\n}\n\nconst blogButtonColorsLeft: CustomRoundButtonColors = {\n background: {\n default: colors.blue10,\n hover: colors.blue10,\n active: colors.blue50,\n disabled: \"transparent\",\n },\n svg: {\n default: colors.blue400,\n hover: colors.white,\n active: colors.blue400,\n disabled: \"transparent\",\n },\n}\n\nconst newsButtonColors: CustomRoundButtonColors = {\n background: {\n default: colors.turq400,\n hover: colors.white,\n active: colors.turq50,\n disabled: \"transparent\",\n },\n svg: {\n default: colors.white,\n hover: colors.turq400,\n active: colors.turq400,\n disabled: \"transparent\",\n },\n}\n\nconst newsButtonColorsLeft: CustomRoundButtonColors = {\n background: {\n default: \"transparent\",\n hover: \"transparent\",\n active: colors.turq50,\n disabled: \"transparent\",\n },\n svg: {\n default: colors.turq400,\n hover: colors.white,\n active: colors.turq400,\n disabled: \"transparent\",\n },\n}\n\nexport default function BlogNewsPostTemplate({\n data: { post, allPosts, defaultImage },\n location,\n}: PageProps) {\n const unset = useMedia(false, false, false, false)\n const innerWidth = useMedia(\"884px\", \"53.253vw\", \"81.445vw\", \"89.333vw\")\n const type = post?.type?.[0]\n const postPublishDate = post?.overwritePublishDate\n ? post.overwritePublishDate\n : post?.updatedAt\n const numericDate = new Date(postPublishDate ?? 0).getTime()\n const postPublishLocaleDate = new Intl.DateTimeFormat(post?.node_locale, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: \"UTC\",\n }).format(numericDate)\n\n const defaultImageData = defaultImage?.childImageSharp?.gatsbyImageData\n const recentPosts = allPosts.nodes\n .filter(\n allPost =>\n allPost.type?.[0] === type && allPost.node_locale === post?.node_locale\n )\n .slice(0, 6)\n\n const { setActiveContentfulID } = useContext(TranslateURLContext);\n const localeDataJS: LocaleData = useGetStaticTranslations(\n type === 'News' ? \"news\" : \"blog\",\n post?.node_locale\n )\n\n const currentIndex = useMemo(() => {\n const postIndex = allPosts.nodes\n .filter(allPost => allPost.type?.[0] === type && allPost.node_locale === post?.node_locale)\n .findIndex(node => node.urlSlug === post?.urlSlug)\n return postIndex\n }, [allPosts.nodes, post?.urlSlug, type, post?.node_locale])\n\n useEffect(() => {\n if (isBrowser() && post) {\n setActiveContentfulID(post.contentful_id)\n const date = post.overwritePublishDate\n ? post.overwritePublishDate\n : post.updatedAt\n\n window.dataLayer.push({\n post_creation_date: `${post.title ?? \"title\"}: ${\n date ?? \"Aug 31 1982\"\n }`,\n })\n }\n }, [post, setActiveContentfulID])\n\n const urls = useMemo(() => {\n\n return allPosts.nodes\n .filter(allPost => allPost.type?.[0] === type && allPost.node_locale === post?.node_locale)\n .map(slugs => {\n const slugType = slugs.type?.[0]?.toLowerCase()\n const slugUrl = slugs.urlSlug\n const addedLang = slugs.node_locale === \"en\" ? \"\" : `/${slugs.node_locale}`\n\n return `${addedLang}/${slugType ?? \"error\"}/${slugUrl ?? \"error\"}`\n })\n }, [allPosts.nodes, type, post?.node_locale])\n\n const allRecentPosts = useMemo(() => {\n if (!type) return null\n\n const alteredRecentPosts = recentPosts\n\n .map((recentPost:any) => {\n const hasCategory =\n recentPost.category && recentPost.category !== \"None\"\n const date = recentPost.overwritePublishDate\n ? recentPost.overwritePublishDate\n : recentPost.updatedAt ?? \"Aug 31, 2018\"\n const sortDate = new Date(date).getTime()\n \n const localeDate = new Intl.DateTimeFormat(post.node_locale, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: \"UTC\",\n }).format(sortDate)\n \n const addedLang =\n recentPost.node_locale === \"en\" ? \"\" : `/${recentPost.node_locale}`\n const slugName = recentPost.type?.[0]?.toLowerCase()\n const uRLSlug = recentPost.urlSlug\n\n const slug = `${addedLang}/${slugName ?? \"error\"}/${uRLSlug ?? \"error\"}`\n return {\n image: recentPost.mainImage?.gatsbyImageData ?? defaultImageData,\n alt: recentPost.mainImage?.description,\n category: type === 'News' ? localeDataJS[recentPost?.newsCategory] : hasCategory && localeDataJS[recentPost.category],\n date: localeDate,\n sortDate,\n urlSlug: slug,\n title: recentPost.title,\n summary: recentPost.summary?.summary,\n linkText: recentPost.linkText,\n }\n })\n .sort((a, b) => {\n return b.sortDate - a.sortDate\n })\n\n return alteredRecentPosts.map(posting => {\n return (\n \n )\n })\n }, [defaultImageData, recentPosts, type, post?.node_locale])\n\n const { setLightmode } = useContext(Lightmode)\n\n useEffect(() => {\n if (isBrowser()) {\n setLightmode(true)\n }\n }, [setLightmode])\n\n const defaultImageInfo: MainImage = {\n description: \"blue default\",\n title: \"Blue image\",\n gatsbyImageData: defaultImageData,\n }\n\n\n \n\n return (\n \n {type && (\n \n \n\n \n \n \n \n {allRecentPosts && (\n 6 ? 6 : recentPosts.length - 1\n )}\n translations={localeDataJS}\n />\n )}\n \n )}\n \n )\n}\n\nexport function Head({\n location,\n data: { post },\n}: PageProps) {\n let schemaMarkup = null\n if(post?.schemaMarkup?.schemaMarkup){\n schemaMarkup = JSON.parse(post.schemaMarkup.schemaMarkup)\n }\n return (\n \n )\n}\n\nconst Wrapper = styled.div<{ defaultTextColor?: string }>`\n width: 100%;\n background-color: ${colors.lightMode};\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n color: ${props => props.defaultTextColor};\n`\n\nexport const query = graphql`\n query BlogOrNews($id: String, $language: String!) {\n post: contentfulBlogOrNewsPost(id: { eq: $id }) {\n articleContent {\n raw\n }\n references: articleContent {\n references {\n ... on ContentfulAsset {\n contentful_id\n id\n description\n title\n file {\n url\n contentType\n }\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n ... on ContentfulStylizedQuote {\n id\n authorName\n authorTitle\n quoteBody {\n quoteBody\n id\n }\n contentful_id\n }\n ... on ContentfulSubscript {\n id\n text\n type\n contentful_id\n parent {\n id\n }\n }\n ... on ContentfulImageWithLink {\n contentful_id\n destinationUrl\n image {\n file {\n url\n }\n description\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n }\n ... on ContentfulJumpLink {\n contentful_id\n identifier\n }\n ... on ContentfulSuperscript {\n id\n text\n type\n contentful_id\n parent {\n id\n }\n }\n ... on ContentfulDoubleImage {\n id\n images {\n file {\n url\n }\n description\n title\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n imageOneExpandable\n imageTwoExpandable\n contentful_id\n }\n ... on ContentfulEmbeddedYoutubeVideo {\n id\n contentful_id\n videoName\n youtubeVideoId\n }\n ... on ContentfulEmbeddedPodcast {\n title\n contentful_id\n subTitle\n audioUrl\n image {\n file {\n url\n }\n description\n title\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n }\n ... on ContentfulBulletedListWithCustomIcons {\n id\n contentful_id\n universalIcon {\n file {\n url\n contentType\n }\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n title\n universalUnicode\n universalListTextItems\n listItems {\n htmlUnicodeCharacter\n contentful_id\n listText\n id\n icon {\n file {\n url\n }\n contentful_id\n gatsbyImageData(\n formats: WEBP\n placeholder: BLURRED\n quality: 90\n )\n }\n }\n }\n }\n }\n category\n newsCategory\n linkText\n summary {\n summary\n }\n title\n contentful_id\n node_locale\n urlSlug\n overwritePublishDate(locale: $language)\n updatedAt(locale: $language)\n type\n schemaMarkup {\n schemaMarkup\n }\n mainImage {\n file {\n contentType\n url\n }\n title\n description\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n }\n defaultImage: file(relativePath: { eq: \"blog/defaultBlogImage.webp\" }) {\n ...LocalImageQuery\n }\n allPosts: allContentfulBlogOrNewsPost(sort: { updatedAt: DESC }) {\n nodes {\n category\n newsCategory\n linkText\n node_locale\n summary {\n summary\n }\n title\n urlSlug\n overwritePublishDate\n updatedAt\n type\n mainImage {\n title\n description\n gatsbyImageData(formats: WEBP, placeholder: BLURRED, quality: 90)\n }\n }\n }\n }\n`\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nimport { forwardRef, memo } from \"react\";\nvar SvgBreadChevron = function SvgBreadChevron(props, ref) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 8 13\",\n ref: ref\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 0.5L7 6.5L1 12.5\",\n stroke: \"#0B1673\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgBreadChevron);\nvar Memo = /*#__PURE__*/memo(ForwardRef);\nexport { Memo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDggMTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xIDAuNUw3IDYuNUwxIDEyLjUiIHN0cm9rZT0iIzBCMTY3MyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=\";","import styled from \"styled-components\"\n\nimport HeroLogo from \"components/header/HeroLogo\"\nimport InnerWrapper from \"components/InnerWrapper\"\nimport { ReactComponent as ChevronSVG } from \"images/article/breadChevron.svg\"\nimport media from \"styles/media\"\nimport text from \"styles/text\"\nimport { ColorDictionary } from \"types\"\nimport { LocaleData } from \"types/gatsby-alias\"\nimport UniversalLink from \"utils/Loader/UniversalLink\"\nimport useMedia from \"utils/useMedia\"\n\nexport default function Navigation({\n title,\n type,\n colorDictionary,\n language,\n translations,\n}: {\n title: string\n type: string\n colorDictionary: ColorDictionary\n language: string\n translations: LocaleData\n}) {\n const innerWidth = useMedia(\"1440px\", \"86.747vw\", \"81.445vw\", \"\")\n const languagePath = language === \"en\" ? \"\" : `/${language}`\n \n const parseType = (passedType: string) => {\n if (passedType === \"Event\") {\n return \"events\"\n }\n if (passedType === \"Podcast\") {\n return \"podcast\"\n }\n if (passedType === \"People\") {\n return \"blog\"\n }\n return passedType.toLocaleLowerCase()\n }\n\n return (\n \n \n \n \n \n \n \n \n {translations.HOME}\n \n \n \n {type === \"Event\"\n ? \"EVENTS\"\n : parseType(type).toLocaleUpperCase()}\n \n \n \n {title.toUpperCase()}\n \n \n \n )\n}\n\nconst Wrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${media.fullWidth} {\n margin-top: 90px;\n padding-bottom: 20px;\n }\n ${media.desktop} {\n margin-top: 5.422vw;\n padding-bottom: 1.205vw;\n }\n ${media.tablet} {\n margin-top: 7.324vw;\n flex-direction: column;\n\n padding: 0;\n }\n ${media.mobile} {\n flex-direction: column;\n margin-top: 6.667vw;\n\n padding: 0;\n }\n`\n\nconst Logo = styled.div`\n ${media.fullWidth} {\n height: 30px;\n margin-right: 133px;\n }\n ${media.desktop} {\n height: 1.807vw;\n margin-right: 8.012vw;\n }\n ${media.tablet} {\n height: 2.93vw;\n margin-right: 12.988vw;\n }\n ${media.mobile} {\n height: 6.667vw;\n margin-right: 0;\n margin: 2vw 0;\n }\n`\n\nconst Breadcrumb = styled.div<{ $color: string }>`\n display: flex;\n align-items: center;\n align-self: center;\n\n ${text.captionKicker}\n color: ${props => props.$color};\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${props => props.$color};\n }\n ${media.tablet} {\n margin-top: 3.906vw;\n flex-wrap: wrap;\n line-height: 2.383vw;\n }\n ${media.mobile} {\n margin-top: 5.333vw;\n flex-direction: column;\n align-items: flex-start;\n\n line-height: 6.507vw;\n }\n`\n\nconst Row = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst SVGChev = styled(ChevronSVG)<{ $color: string }>`\n path {\n stroke: ${props => props.$color};\n }\n ${media.fullWidth} {\n height: 12px;\n\n margin-right: 13px;\n margin-left: 16px;\n }\n ${media.desktop} {\n height: 0.723vw;\n margin-right: 0.783vw;\n margin-left: 0.964vw;\n }\n ${media.tablet} {\n height: 1.172vw;\n margin-right: 1.27vw;\n margin-left: 1.563vw;\n }\n ${media.mobile} {\n height: 3.2vw;\n margin-right: 3.467vw;\n margin-left: 4.267vw;\n }\n`\n\nconst Location = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n ${media.fullWidth} {\n max-width: 700px;\n }\n ${media.desktop} {\n max-width: 42.169vw;\n }\n ${media.tablet} {\n max-width: 75.977vw;\n }\n ${media.mobile} {\n max-width: 72vw;\n }\n`\n","import { useContext } from \"react\"\n\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport { useI18next } from \"gatsby-plugin-react-i18next\"\nimport styled from \"styled-components\"\n\nimport FollowCard from \"components/Cards/FollowCard\"\nimport { ScreenContext } from \"components/Providers\"\nimport colors from \"styles/colors\"\nimport media from \"styles/media\"\nimport shadows from \"styles/shadows\"\nimport text from \"styles/text\"\nimport { MainImage } from \"types\"\nimport { LocaleData } from \"types/gatsby-alias\"\n\nexport default function Hero({\n title,\n publishDate,\n category,\n col10,\n col200,\n col400,\n img,\n pageType,\n translations,\n}: {\n title: string\n publishDate: string\n category: string\n col10: string\n col200: string\n col400: string\n pageType: string\n img: MainImage\n translations: LocaleData\n}) {\n const { mobile } = useContext(ScreenContext)\n\n return (\n \n {title}\n
\n {category && category.toLowerCase() !== \"none\" && (\n <>\n {translations[category]}\n \n \n )}\n {publishDate}\n
\n \n {img?.gatsbyImageData && (\n {img.description\n )}\n {!mobile && (\n \n )}\n \n
\n )\n}\n\nconst Wrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n ${media.fullWidth} {\n }\n ${media.desktop} {\n }\n ${media.tablet} {\n padding: 4.883vw 0;\n }\n ${media.mobile} {\n padding-top: 10.667vw;\n }\n`\n\nconst Title = styled.h3`\n ${text.h3}\n /* color: ${colors.blue800}; */\n\n ${media.tablet} {\n ${text.h4}\n }\n ${media.mobile} {\n ${text.h5}\n }\n`\nconst Details = styled.div`\n display: flex;\n ${media.fullWidth} {\n gap: 0 10px;\n margin-top: 20px;\n }\n ${media.desktop} {\n gap: 0 0.602vw;\n margin-top: 1.205vw;\n }\n ${media.tablet} {\n gap: 0 0.977vw;\n margin-top: 2.93vw;\n }\n ${media.mobile} {\n gap: 0 2.667vw;\n margin-top: 2.667vw;\n }\n`\nconst Category = styled.h3<{ $color: string }>`\n ${text.bodyS}\n color: ${props => props.$color};\n`\nconst Pipe = styled.div<{ $color: string }>`\n border-left: 1px solid ${props => props.$color};\n ${media.fullWidth} {\n border-width: 1px;\n }\n ${media.desktop} {\n border-width: 0.06vw;\n }\n ${media.tablet} {\n border-width: 0.098vw;\n }\n ${media.mobile} {\n border-width: 0.267vw;\n }\n`\nconst PublishDate = styled.h3<{ $color: string }>`\n ${text.bodyS}\n color: ${props => props.$color};\n`\n\nconst ImgWrapper = styled.div`\n position: relative;\n width: 100%;\n\n ${media.fullWidth} {\n margin-top: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n ${media.desktop} {\n height: 29.88vw;\n width: 53.253vw;\n margin-top: 2.41vw;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n ${media.tablet} {\n position: initial;\n display: flex;\n align-items: center;\n margin-top: 3.906vw;\n gap: 0 1.953vw;\n }\n ${media.mobile} {\n margin-top: 5.333vw;\n }\n`\n\nconst Image = styled(GatsbyImage)`\n ${shadows.lightModeSurfaceShadow}\n\n height: auto;\n\n ${media.fullWidth} {\n width: 884px;\n border-radius: 20px;\n }\n ${media.desktop} {\n width: 53.253vw;\n border-radius: 1.205vw;\n }\n ${media.tablet} {\n border-radius: 1.953vw;\n width: 58.008vw;\n object-fit: unset;\n }\n ${media.mobile} {\n border-radius: 3.008vw;\n width: auto;\n object-fit: unset;\n }\n\n isolation: isolate;\n`\n"],"names":["exports","FollowCard","_ref","pageType","translations","dividerColor","setDividerColor","useState","colors","blue800","useEffect","blue10","turq50","magenta10","_jsxs","Wrapper","children","SocialContainer","FollowDiv","_jsx","FollowHeader","Row","SocialLink","href","Twitter","Youtube","LinkedIn","NavSignup","styled","div","withConfig","displayName","componentId","white","media","fullWidth","tablet","mobile","_ref2","text","buttonR","bodyS","buttonS","a","Twit","black","hover","blue400","YT","LI","RecentPosts","recentPosts","buttonColors","buttonColorsLeft","bGColor","activeCard","setActiveCard","buttonIndex","useMedia","t","useI18next","Content","Buttons","RoundButton","onClick","moveCardsBack","card","disabled","length","customColors","left","moveCardsForward","right","Kicker","textColor","Title","RecentPostsWrapper","position","slice","p","h5","_ref3","h6","bodyR","h4","h2","h3","_ref4","easing","main","_ref5","_ref6","matchName","iconDefaults","Object","freeze","top","width","height","rotate","vFlip","hFlip","fullIcon","data","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","split","shift","name2","pop","prefix","result","name","validateIcon","dashSeparated","join","icon","match","getIconData$1","full","getIcon","iteration","icons","assign","aliases","item","result2","parent","alias","key","prop","mergeIconData","chars","parseIconSet","callback","options","names","not_found","Array","forEach","push","keys","iconData","parseAliases","isVariation","optionalProperties","quicklyValidateIconSet","obj","body","storage$1","create","w","window","self","_iconifyStorage","version","storage","err","getStorage","providerStorage","missing","newStorage","addIconSet","storage2","Date","now","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addIconToStorage","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","attr","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","preserveAspectRatio","props","iconToSVG","customisations","box","transformations","tempValue","rotation","toString","floor","unshift","attributes","viewBox","regex","randomPrefix","random","counter","replaceIDs","ids","exec","id","newID","escapedID","replace","RegExp","setAPIModule","getAPIModule","createAPIConfig","source","resources","path","maxURL","timeout","index","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","concat","mergeParams","base","params","hasParams","indexOf","encodeURIComponent","Error","paramToString","maxLengthCache","pathCache","fetchModule","fetch","detectFetch","fetchAPIModule","prepare","results","maxLength","maxHostLength","host","max","url","cacheKey","calculateMaxLength","type","send","getPath","iconsList","uri","defaultError","then","response","status","json","setTimeout","shouldAbort","catch","callbacks","pendingUpdates","removeCallback","sources","providerCallbacks","items","filter","row","idCounter","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","list","nextIndex","startTime","lastError","queriesSent","timer","queue","doneCallbacks","resetTimer","clearTimeout","abort","subscribe","overwrite","failQuery","clearQueue","execNext","resource","status2","isError","queued","moduleResponse","queriesPending","initRedundancy","cfg","newConfig","setConfig","queries","cleanup","queryCallback","doneCallback","query2","error","find","setIndex","getIndex","emptyCallback$1","redundancyCache","sendAPIQuery","target","redundancy","api","cached","cachedReundancy","getRedundancyCache","cache","emptyCallback","pendingIcons","iconsToLoad","loaderFlags","queueFlags","loadedNewIcons","providerLoaderFlags","providerPendingUpdates","hasPending","oldLength","pending","loaded","updateCallbacks","errorsCache","loadNewIcons","providerIconsToLoad","providerQueueFlags","providerPendingIcons","sort","icons2","time","console","parsed","store","err2","loadIcons","cleanedIcons","listToIcons","sortedIcons","b","localeCompare","lastIcon","localStorage","sortIcons","callCallback","newIcons","lastProvider","lastPrefix","providerNewIcons","pendingQueue","pendingSources","bind","storeCallback","cacheVersion","cachePrefix","countKey","versionKey","hour","local","session","count","emptyList","_window","getGlobal","setCount","setItem","getCount","count2","getItem","total","parseInt","loadCache","minTime","load","func","valid","JSON","parse","removeItem","i","destroyCache","initCache","storeCache","stringify","separator","flipFromString","custom","flip","str","trim","alignmentFromString","align","rotateFromString","defaultValue","units","value2","svgDefaults","inlineDefaults","document","IconifyPreload","preload","added","addCollection","e","IconifyProviders","providers","IconComponent","constructor","super","this","state","_abortLoading","_loading","_setData","setState","_checkIcon","changed","_icon","iconName","classes","onLoad","componentDidMount","componentDidUpdate","oldProps","componentWillUnmount","render","newProps","className","ref","defaultProps","style","componentProps","color","localCounter","dangerouslySetInnerHTML","__html","verticalAlign","_inline","Icon","getMainLayoutClassName","layout","getPosX","event","MouseEvent","clientX","touches","addHeadingZero","getDisplayTimeBySeconds","seconds","totalSeconds","timeFormat","isFinite","min","minStr","secStr","minStrForHour","hourStr","mmSs","hhMmSs","throttle","limit","inThrottle","arg","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","prototype","valueOf","call","_isNativeReflectConstruct","Super","NewTarget","arguments","apply","ProgressBar","_Component","_super","_this","_len","args","_key","isDraggingProgress","currentTimePos","hasDownloadProgressAnimation","downloadProgressArr","waitingForSeekCallback","_this$props","audio","progressBar","src","srcDuration","currentTime","current","progressBarRect","getBoundingClientRect","maxRelativePos","relativePos","getDuration","toFixed","preventDefault","stopPropagation","_this$getCurrentProgr","getCurrentProgress","nativeEvent","timeOnMouseMove","addEventListener","handleWindowMouseOrTouchMove","handleWindowMouseOrTouchUp","windowSelection","getSelection","empty","_this$getCurrentProgr2","newTime","_this$props2","onChangeCurrentTimeError","onSeek","readyState","HAVE_NOTHING","HAVE_METADATA","removeEventListener","duration","progressUpdateInterval","buffered","bufferedStart","start","bufferedEnd","end","round","downloadProgressAnimationTimer","_this$props3","hasAddedAudioEventListener","handleAudioTimeUpdate","handleAudioDownloadProgressUpdate","_this$props4","showDownloadProgress","showFilledProgress","i18nProgressBar","_this$state","role","Number","tabIndex","onMouseDown","handleMouseDownOrTouchStartProgressBar","onTouchStart","onContextMenu","handleContextMenu","map","transitionDuration","Component","forwardRef","_PureComponent","CurrentTime","defaultCurrentTime","isLeftTime","handleAudioCurrentTimeChange","_audio","_defaultCurrentTime","_isLeftTime","_timeFormat","addAudioEventListeners","PureComponent","Duration","defaultDuration","handleAudioDurationChange","_defaultDuration","RHAP_UI","VolumeControls","createRef","volume","currentVolumePos","lastVolume","hasVolumeAnimation","isDraggingVolume","volumeBar","currentVolume","volumeBarRect","_this$getCurrentVolum","getCurrentVolume","_this$getCurrentVolum2","onMuteChange","volumeAnimationTimer","handleAudioVolumeChange","showFilledVolume","i18nVolumeControl","handleVolumnControlMouseOrTouchDown","H5AudioPlayer","paused","ended","playAudioPromise","pause","playPromise","play","onPlayError","forceUpdate","onPlay","onPause","onEnded","onAbort","loop","progressJumpSteps","progressJumpStep","jumpStep","backward","setJumpTime","forward","prevTime","newVolume","hasDefaultKeyBindings","container","togglePlay","handleClickRewind","handleClickForward","setJumpVolume","volumeJumpStep","handleClickLoopButton","handleClickVolumeButton","modules","comp","renderUIModule","customIcons","showSkipControls","onClickPrevious","onClickNext","showJumpControls","customAdditionalControls","customVolumeControls","muted","volumeProp","loopProp","mse","i18nAriaLabels","CURRENT_TIME","CURRENT_LEFT_TIME","PROGRESS_BAR","progressControl","DURATION","ADDITIONAL_CONTROLS","renderUIModules","MAIN_CONTROLS","actionIcon","isPlaying","previous","rewind","next","VOLUME_CONTROLS","LOOP","loopIcon","repeat","loopOff","VOLUME","volumeIcon","_ref$volume","volumeMute","VolumeBar","handleMuteChange","volumeControl","isValidElement","cloneElement","_this2","onError","onCanPlay","onCanPlayThrough","handlePlay","handleAbort","handleEnded","onPlaying","onSeeking","onSeeked","onWaiting","onEmptied","onStalled","onSuspend","onLoadStart","onLoadedMetaData","onLoadedData","handlePause","onListen","listenInterval","onVolumeChange","onEcrypted","prevProps","autoPlayAfterSrcChange","_this$props5","autoPlay","crossOrigin","mediaGroup","header","footer","customProgressBarSection","customControlsSection","loopClass","isPlayingClass","player","onKeyDown","handleKeyDown","controls","Podcast","audioFile","image","title","subTitle","alt","MusicPlayer","ImgWrapper","GatsbyImage","loading","Info","SubTitle","AudioPlayer","desktop","_path","_extends","hasOwnProperty","SvgQuoteLeft","fill","xmlns","opacity","d","ForwardRef","Memo","memo","SvgQuoteRight","BlogDetails","_post$references6","_allPostURLs","_allPostURLs2","_post$summary$summary","_post$summary","_post$title","_post$summary$summary2","_post$summary2","colorDictionary","post","allPostURLs","setShow","useContext","ShowHamburger","ScreenContext","location","open","setOpen","useMemo","renderNode","BLOCKS","PARAGRAPH","node","Paragraph","HR","EndLine","$color","UL_LIST","Unordered","OL_LIST","Ordered","QUOTE","Quote","INLINES","HYPERLINK","Link","includes","EMBEDDED_ENTRY","_post$references","_post$references$refe","sys","entry","references","asset","contentful_id","_entry$quoteBody","SuperScript","SubScript","authorName","authorTitle","quoteBody","StylizedQuote","StylizedQuoteBody","QuoteL","QuoteR","StylizedQuoteAuthorName","StylizedQuoteAuthorTitle","_post$references$refe2","_post$references2","_post$references2$ref","_post$references3","_post$references3$ref","entryIndex","_entry$image2","_entry$images$","_entry$images$2","_entry$images$0$title","_entry$images$3","_entry$images$4","_entry$images$5","_entry$images$1$title","_entry$images$6","_entry$images$7","_entry$images$8","_entry$images$0$title2","_entry$images$9","_entry$images$10","_entry$images$11","_entry$images$1$title2","_entry$images$12","_entry$videoName","_entry$title","_entry$subTitle","_entry$image$title","identifier","destinationUrl","_entry$image","_entry$image$descript","parsedLink","UniversalLink","to","gatsbyImageData","WideImage","description","images","_Fragment","DoubleImage","expanded","Image","imageOneExpandable","expand","blue","imageTwoExpandable","Modal","ExpandedImage","youtubeVideoId","VideoIframe","videoName","audioUrl","universalListTextItems","universalIcon","universalUnicode","BulletWrapper","_entry$universalIcon","CustomBulletPoint","CodeChar","String","fromCodePoint","BulletIcon","listItems","_item$icon","htmlUnicodeCharacter","listText","EMBEDDED_ASSET","_post$references4","_post$references4$ref","_post$references5","_post$references5$ref","file","_entry$file$url","_entry$title2","_entry$title3","contentType","BigImage","CaptionText","BigImageExpanded","HEADING_1","H4","HEADING_2","H5","HEADING_3","H6","gradient","HEADING_4","HEADING_5","HEADING_6","last","ArticleContainer","Article","articleContent","renderContent","ShareSection","Previous","show","LinkButton","gradientBlue","gradientMagenta","gradientTurq","link","ShareBox","iconColor","ShareText","Share","Socials","A","summary","Next","bodyRBold","ul","ol","blockquote","bodyL","sup","bodyXS","sub","QuoteLSVG","QuoteRSVG","buttonL","captionKicker","fresponsive","css","button","iframe","span","h1Mobile","TwitterSVG","LinkedInSVG","blogButtonColors","background","default","active","blue50","svg","blogButtonColorsLeft","newsButtonColors","turq400","newsButtonColorsLeft","BlogNewsPostTemplate","_post$type","_defaultImage$childIm","_post$title2","_post$title3","allPosts","defaultImage","unset","innerWidth","postPublishDate","overwritePublishDate","updatedAt","numericDate","getTime","postPublishLocaleDate","Intl","DateTimeFormat","node_locale","year","month","day","timeZone","format","defaultImageData","childImageSharp","nodes","allPost","_allPost$type","setActiveContentfulID","TranslateURLContext","localeDataJS","useGetStaticTranslations","currentIndex","_allPost$type2","findIndex","urlSlug","isBrowser","date","dataLayer","post_creation_date","urls","_allPost$type3","slugs","_slugs$type","_slugs$type$","slugType","toLowerCase","slugUrl","allRecentPosts","recentPost","_recentPost$updatedAt","_recentPost$type","_recentPost$type$","_recentPost$mainImage","_recentPost$mainImage2","_recentPost$mainImage3","_recentPost$summary","hasCategory","category","sortDate","localeDate","addedLang","slugName","uRLSlug","slug","mainImage","newsCategory","linkText","posting","_posting$title","ResourceCard","feature","buttonColor","categoryColor","dateColor","summaryColor","setLightmode","Lightmode","defaultImageInfo","Layout","waveBottomColor","blue700","hideOverflow","pathname","languageOverride","defaultTextColor","Navigation","language","InnerWrapper","center","column","setWidth","Hero","publishDate","col10","col200","col400","img","Head","_post$schemaMarkup","_post$title4","_post$mainImage$file$","_post$mainImage","_post$mainImage$file","schemaMarkup","SEO","pageAttributes","defaultBlogImage","lang","originalPath","lightMode","SvgBreadChevron","stroke","strokeLinecap","strokeLinejoin","languagePath","parseType","passedType","toLocaleLowerCase","flex","Logo","HeroLogo","lightmode","Breadcrumb","HOME","SVGChev","toLocaleUpperCase","Location","toUpperCase","ChevronSVG","_img$description","Details","Category","Pipe","PublishDate","shadows","lightModeSurfaceShadow"],"sourceRoot":""}